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 类型
使用说明
- 3D 最短线的第一个点。 3D最短线的3D长度是3D距离。
- 该函数支持 3d 并且不会丢失 z-index。
- 该函数支持多面体曲面。
示例
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)