ST_3DMaxDistance — 返回两个几何图形之间的 3D 笛卡尔最大距离(基于空间参考)(以投影单位表示)。
float ST_3DMaxDistance(geometry g1, geometry g2);
返回两个几何图形之间的 3 维最大笛卡尔距离(以投影单位(空间参考单位)表示)。
该函数支持 3d 并且不会丢失 z-index。
该函数支持多面体曲面。
可用性: 2.0.0
更改:2.2.0 - 在 2D 和 3D 的情况下,对于缺失的 Z,Z 不再被假定为 0。
-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal area) (3D point and line compared 2D point and line)
-- Note: currently no vertical datum support so Z is not transformed and assumed to be same units as final.
SELECT ST_3DMaxDistance(
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 10000)'),2163),
ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)
) As dist_3d,
ST_MaxDistance(
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 10000)'),2163),
ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)
) As dist_2d;
dist_3d | dist_2d
------------------+------------------
24383.7467488441 | 22247.8472107251