ST_3DDWithin — 测试两个 3D 几何体是否在给定的 3D 距离内
boolean ST_3DDWithin(
geometry g1, geometry g2, double precision distance_of_srid)
;
如果两个几何体值之间的 3D 距离不大于距离 distance_of_srid
,则返回 true。距离以几何体的空间参考系统定义的单位指定。为了使此函数有意义,源几何体必须位于相同的坐标系中(具有相同的 SRID)。
此函数会自动包含一个边界框比较,该比较会利用几何体上可用的任何空间索引。 |
此函数支持 3d 并且不会删除 z 索引。
此函数支持多面体表面。
此方法实现了 SQL/MM 规范。
SQL-MM ?
可用性:2.0.0
-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal area) (3D point and line compared 2D point and line) -- Note: currently no vertical datum support so Z is not transformed and assumed to be same units as final. SELECT ST_3DDWithin( ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'),2163), ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163), 126.8 ) As within_dist_3d, ST_DWithin( ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'),2163), ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163), 126.8 ) As within_dist_2d; within_dist_3d | within_dist_2d ----------------+---------------- f | t