如果兩個對象之間的距離在指定範圍之內,則返回True。
文法
boolean ST_DWithin(geometry g1 , geometry g2 , double precision distanceOfSrid);
boolean ST_DWithin(geography gg1 , geography gg2 , double precision distanceMeters);
boolean ST_DWithin(geography gg1 , geography gg2 , double precision distanceMeters , boolean useSpheroid);
參數
參數名稱 | 描述 |
g1 | 第一個Geometry對象。 |
g2 | 第二個Geometry對象。 |
distanceOfSrid | 在來源資料SRID下的距離。 |
gg1 | 第一個Geography對象。 |
gg2 | 第二個Geography對象。 |
distanceMeters | 單位為米的距離值。 |
useSpheroid | 是否使用橢球參考系。使用橢球參考系會使得結果更精確但稍慢。 |
描述
對於Geometry對象,兩個對象的SRID必須一致才使得函數有意義。
對於Geography對象,預設使用米為單位。
該函數調用時將自動包括外包框比較,該比較將利用Geometry對象上可用的任何索引。
對於3D對象,需要使用ST_3DDWithin。
樣本
SELECT ST_DFullyWithin(g1,g2,2), ST_DWithin(g1,g2,2) from (SELECT 'LINESTRING(0 1,1 1)'::geometry as g1,
'LINESTRING(0 0,0 -1)'::geometry as g2) as test;
st_dfullywithin | st_dwithin
-----------------+------------
f | t
(1 row)