Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_3DDISTANCE

📄字数 879
👁️阅读量 加载中...

功能描述

返回两个几何图形之间的 3D 最小笛卡尔距离(单位:空间参考单位表示)。

语法格式

sql
DOUBLE ST_3DDISTANCE(GEOMETRY geom1, GEOMETRY geom2);

参数说明

  • geom1:第一个目标 GEOMETRY 对象。
  • geom2:第二个目标 GEOMETRY 对象。
  • geog1:第一个目标 GEOGRAPHY 对象。
  • geog2:第二个目标 GEOGRAPHY 对象。
  • use_spheroid:距离测量是否使用椭球体,可选。
    • TRUE:使用椭球体。
    • FALSE:在球面上进行测量,计算更快。

函数返回类型

DOUBLE 类型

使用说明

  1. 3D 最短线的第一个点。 3D最短线的3D长度是3D距离。
  2. 该函数支持 3d 并且不会丢失 z-index。
  3. 该函数支持多面体曲面。

示例

sql
SQL> SELECT ST_3DDISTANCE(
                    ST_TRANSFORM('SRID=4326;POINT(-72.1235 42.3521 4)'::GEOMETRY,2163),
                    ST_TRANSFORM('SRID=4326;LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'::GEOMETRY,2163)
            ) As dist_3d,
            ST_DISTANCE(
                    ST_TRANSFORM('SRID=4326;POINT(-72.1235 42.3521)'::GEOMETRY,2163),
                    ST_TRANSFORM('SRID=4326;LINESTRING(-72.1260 42.45, -72.123 42.1546)'::GEOMETRY,2163)
            ) As dist_2d;

+--------------+--------------+
|   DIST_3D    |   DIST_2D    |
+--------------+--------------+
| 1.272951e+02 | 1.266643e+02 |
+--------------+--------------+

(1 row)

SQL> SELECT ST_3DDISTANCE(poly, mline) As dist3d,
         ST_DISTANCE(poly, mline) As dist2d
             FROM (SELECT  'POLYGON((175 150 5, 20 40 5, 35 45 5, 50 60 5, 100 100 5, 175 150 5))'::GEOMETRY as poly,
                    'MULTILINESTRING((175 155 2, 20 40 20, 50 60 -2, 125 100 1, 175 155 1), (1 10 2, 5 20 1))'::GEOMETRY as mline) as foo;

+--------------+--------------+
|    DIST3D    |    DIST2D    |
+--------------+--------------+
| 0.000000e+00 | 0.000000e+00 |
+--------------+--------------+

(1 row)