ST_3DShortestLine

返回分别在两个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 longest,
             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;
          longest          |              shortest
--------------------------+------------------------------------
 LINESTRING Z (0 0 0,1 1 .| LINESTRING Z (0 0 0,0.333333333333.
.0)                       |.333 0.333333333333333 0.6666666666.
                          |.66667)
(1 row)