如果兩個對象之間的距離在指定范圍之內,則返回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。
示例
對比ST_DFullyWithin:
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)