ST_3DDWITHIN
📄字数 814
👁️阅读量 加载中...
功能描述
如果两个几何值之间的 3D 距离不大于距离 distance_of_srid,则返回 TRUE。
语法格式
sql
BOOLEAN ST_3DDWITHIN(GEOMETRY geomA, GEOMETRY geomB, DOUBLE distance_of_srid);参数说明
- geomA:第一个目标 GEOMETRY 对象。
- geomB:第二个目标 GEOMETRY 对象。
- distance_of_srid:3D 距离,以几何空间参考系统定义的单位指定。
函数返回类型
BOOLEAN 类型
使用说明
- 源几何图形必须具有相同的坐标投影,并具有相同的 SRID。
- 此功能自动包括利用几何上可用的任何空间索引的边界框比较。
- 该函数支持 3d 并且不会丢失 z-index。
- 该函数支持多面体曲面(POLYHEDRALSURFACE)。
示例
3D 和 2D 的对比
sql
-- 单位:米 (SRID: 2163 US National Atlas Equal area)
-- Note: currently no vertical datum support so Z is not transformed and assumed to be same units as final.
SQL> 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 |
+----------------+----------------+
(1 row)