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