ST_3DDistance — Für den geometrischen Datentyp. Es wird der geringste 3-dimensionale kartesische Abstand (basierend auf dem Koordinatenreferenzsystem) zwischen zwei geometrischen Objekten in projizierten Einheiten zurückgegeben.
float ST_3DDistance(
geometry g1, geometry g2)
;
Für den geometrischen Datentyp. Es wird der geringste 3-dimensionale kartesische Abstand zwischen zwei geometrischen Objekten in projizierten Einheiten (Einheiten des Koordinatenreferenzsystem) zurückgegeben.
Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.
Diese Funktion unterstützt polyedrische Flächen.
Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM ISO/IEC 13249-3
Verfügbarkeit: 2.0.0
Änderung: 2.2.0 - Im Falle von 2D und 3D wird für ein fehlendes Z nicht mehr 0 angenommen.
Geändert: 3.0.0 - SFCGAL-Version entfernt
-- 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_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 ------------------+----------------- 127.295059324629 | 126.66425605671
-- Multilinestring and polygon both 3d and 2d distance -- Same example as 3D closest point example 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.716635696066337 | 0