ST_3DLongestLine — Gibt die größte 3-dimensionale Distanz zwischen zwei geometrischen Objekten als Linie zurück
geometry ST_3DLongestLine(
geometry g1, geometry g2)
;
Gibt den größten 3-dimensionalen Abstand zwischen zwei geometrischen Objekten als Linie zurück. Wenn es mehr als einen größten Abstand gibt, dann wird nur die erste zurückgegeben. Die zurückgegebene Linie fängt immer mit "g1" an und endet mit "g2". Die Länge der 3D-Linie die von dieser Funktion zurückgegeben wird ist immer ident mit der von ST_3DMaxDistance für "g1" und "g2" zurückgegebenen Distanz.
Verfügbarkeit: 2.0.0
Änderung: 2.2.0 - Wenn 2 geometrische Objekte in 2D übergegeben werden, wird ein 2D-Punkt zurückgegeben (anstelle wie früher 0 für ein fehlendes Z). Im Falle von 2D und 3D, wird für fehlende Z nicht länger 0 angenommen.
This function supports 3d and will not drop the z-index.
This function supports Polyhedral surfaces.
Linienstück und Punkt -- größter Abstand in 3D und in 2D SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt FROM (SELECT 'POINT(100 100 30)'::geometry As pt, 'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 1000)'::geometry As line ) As foo; lol3d_line_pt | lol2d_line_pt -----------------------------------+---------------------------- LINESTRING(50 75 1000,100 100 30) | LINESTRING(98 190,100 100)
|
Linienstück und Mehrfachpunkt -- größter Abstand in 3D und in 2D SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, 'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 900)'::geometry As line ) As foo; lol3d_line_pt | lol2d_line_pt ---------------------------------+-------------------------- LINESTRING(98 190 1,50 74 1000) | LINESTRING(98 190,50 74)
|
Mehrfachlinie und Polygon - größter Abstand in 3D und in 2D SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d, ST_AsEWKT(ST_LongestLine(poly, mline)) As lol2d FROM (SELECT ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, 50 60 5, 100 100 5, 175 150 5))') As poly, ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 -2, 125 100 1, 175 155 1), (1 10 2, 5 20 1))') As mline ) As foo; lol3d | lol2d ------------------------------+-------------------------- LINESTRING(175 150 5,1 10 2) | LINESTRING(175 150,1 10)
|