Name

ST_DFullyWithin — ジオメトリが完全に他のジオメトリの指定距離内にあるかどうかをテストします

Synopsis

boolean ST_DFullyWithin(geometry g1, geometry g2, double precision distance);

説明

g2が完全にg1distanceで指定した距離内にある場合にTRUEを返します。見た目で言うと、g2g1distanceぶん膨らませたバッファに含まれる場合にTRUEを返します。

[Note]

この関数の呼び出しによって、ジオメトリで使用可能なインデックスを使用するバウンディングボックスの比較が自動的に行われます。

Availability: 1.5.0

Changed: 3.5.0 : この関数のロジックとしては、今のところ、バッファ内に包含するかどうかのテストを使っています。ST_MaxDistanceアルゴリズムではありません。前の版と結果が異なる可能性がありますが、ユーザの期待に近づくはずです。

SELECT
    ST_DFullyWithin(geom_a, geom_b, 10) AS DFullyWithin10,
    ST_DWithin(geom_a, geom_b, 10) AS DWithin10,
    ST_DFullyWithin(geom_a, geom_b, 20) AS DFullyWithin20
FROM (VALUES
    ('POINT(1 1)', 'LINESTRING(1 5, 2 7, 1 9, 14 12)')
    ) AS v(geom_a, geom_b)

 dfullywithin10 | dwithin10 | dfullywithin20
----------------+-----------+----------------
 f              | t         | t