返回分别在两个Geometry对象上的点在三维空间中能构成的最短线段。

语法

geometry  ST_3DShortestLine(geometry  g1 , geometry  g2);

参数

参数名称 描述
g1 第一个Geometry对象。
g2 第二个Geometry对象。

描述

  • 如果存在多条可选项,该函数将仅返回第一条最短的Line对象。
  • 如果g1和g2仅在一个点处相交,则该函数将返回在该相交点处具有起点和终点的Line对象。
  • 如果g1和g2与一个以上的点相交,则该函数将返回一条以相同的点为起点和终点的Line对象,这个点可以是任何相交的点。
  • 返回的Line对象将始终从g1指向g2。
  • 该函数返回的Line对象的3D长度将始终与g1和g2在函数ST_3DMaxDistance中返回的值相同。
  • 该函数支持3D对象,并且不会删除Z坐标。
  • 该函数支持Polyhedral Surface类型对象。

示例

对比ST_3DLongestLine与ST_3DShortestLine:
SELECT ST_AsText(ST_3DLongestLine(g1,g2)) as lonest,
             ST_AsText(ST_3DShortestLine(g1,g2)) as shortest
       from (SELECT 'POINT(0 0 0)'::geometry as g1,
             'LINESTRING(0 0 1,1 1 0)'::geometry as g2) as test;
          lonest          |              shortest
--------------------------+------------------------------------
 LINESTRING Z (0 0 0,1 1 .| LINESTRING Z (0 0 0,0.333333333333.
.0)                       |.333 0.333333333333333 0.6666666666.
                          |.66667)
(1 row)