2 つの 3D ジオメトリオブジェクト上のすべてのポイントが、互いに指定された距離内にあるかどうかをテストします。
構文
boolean ST_3DDFullyWithin(geometry g1, geometry g2, double precision distance)パラメーター
| パラメーター | 型 | 説明 |
|---|---|---|
g1 | geometry | 1 つ目のジオメトリオブジェクト。 |
g2 | geometry | 2 つ目のジオメトリオブジェクト。 |
distance | double precision | 許容される最大距離。単位は、ジオメトリオブジェクトの空間参照系 (SRS) によって決まります。 |
説明
ST_3DDFullyWithin は、g1 と g2 上のすべてのポイントペア間の 3D 距離が distance 未満である場合に true を返します。いずれかの 2 つのポイントが distance よりも離れている場合、この関数は false を返します。
両方のジオメトリオブジェクトは、同じ座標投影を使用し、同じ空間参照 ID (SRID) を持つ必要があります。距離の単位は、それらの空間参照系によって定義されます。
この関数は、2 つのジオメトリオブジェクトのバウンディングボックスを比較する際に、利用可能なすべてのインデックスを自動的に使用します。z 座標を保持し、多面体サーフェスをサポートします。
例
次の例では、意味的な違いを説明するために、同じジオメトリペアに対して ST_3DDWithin と ST_3DDFullyWithin を比較します。ST_3DDWithin は、2 つの線分上の最も近いポイントが距離 2 以内にあるため true を返します。ST_3DDFullyWithin は、すべてのポイントペアが距離 2 以内にあるわけではないため false を返します。
-- 最小距離内 (ST_3DDWithin) と完全内 (ST_3DDFullyWithin) の比較
SELECT
ST_3DDWithin(g1, g2, 2) AS within,
ST_3DDFullyWithin(g1, g2, 2) AS fully_within
FROM (
SELECT
'LINESTRING(0 1 0, 1 1 0)'::geometry AS g1,
'LINESTRING(0 0 0, 0 -1 0)'::geometry AS g2
) AS test;出力:
within | fully_within
--------+--------------
t | f
(1 row)関連項目
ST_3DDWithin — 2 つのジオメトリ間の最小 3D 距離がしきい値を超えない場合に
trueを返します。