返回分别在两个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)