g2 が g1 から distance の距離内に完全に含まれる場合、つまり g2 上のすべてのポイントが g1 の周囲の距離バッファー内に収まる場合に true を返します。g2 上のいずれかのポイントがそのバッファーの外側にある場合は false を返します。
構文
boolean ST_DFullyWithin(geometry g1, geometry g2, double precision distance);パラメーター
| パラメーター | 型 | 説明 |
|---|---|---|
g1 | geometry | リファレンスジオメトリオブジェクト。 |
g2 | geometry | g1 に対してテストするジオメトリオブジェクト。 |
distance | double precision | 距離のしきい値。 単位は、ジオメトリオブジェクトの空間参照系 (SRS) によって決まります。 |
注意事項
g1とg2は、同じ投影を使用し、同じ空間参照系識別子 (SRID) を持つ必要があります。この関数は、パフォーマンスを最適化するために、バウンディングボックス比較と、ジオメトリオブジェクトで利用可能なすべてのインデックスを自動的に使用します。
ST_DFullyWithin と ST_DWithin の比較
ST_DFullyWithin は、g2 上の すべての点 が distance の距離内に g1 にあることを要求します。ST_DWithin は、2 つのジオメトリが互いに distance の距離内に 少なくとも 1 つの点 を持つことのみを要求します。ST_DFullyWithin は、この 2 つの中でより厳密な関数です。
次の例では、distance = 2 で同じジオメトリに両方の関数を適用します。
SELECT
ST_DFullyWithin(g1, g2, 2) AS dfullywithin2,
ST_DWithin(g1, g2, 2) AS dwithin2
FROM (
VALUES (
'LINESTRING(0 1,1 1)'::geometry,
'LINESTRING(0 0,0 -1)'::geometry
)
) AS t(g1, g2);
dfullywithin2 | dwithin2
---------------+----------
f | t
(1 row)g2 には g1 の距離 2 のバッファーを超えるポイントがあるため、ST_DFullyWithin は f を返します。2 つのラインストリングの最も近いポイントは互いに距離 2 の範囲内にあるため、ST_DWithin は t を返します。
関連項目
ST_DWithin — 2 つのジオメトリが、指定された距離内にポイントを持つかどうかをテストします。