Name

ST_LongestLine — Gibt die größte 3-dimensionale Distanz zwischen zwei geometrischen Objekten als Linie zurück

Synopsis

geometry ST_LongestLine(geometry g1, geometry g2);

Beschreibung

Liefert die 2-dimensionale längste Linie zwischen den Punkten zweier Geometrien. Die zurückgegebene Linie beginnt auf g1 und endet auf g2.

Die längste Linie liegt immer zwischen zwei Scheitelpunkten. Die Funktion gibt die erste längste Linie zurück, wenn mehr als eine gefunden wird. Die Länge der Linie ist gleich dem von ST_MaxDistance zurückgegebenen Abstand.

Wenn g1 und g2 dieselbe Geometrie sind, wird die Linie zwischen den beiden am weitesten voneinander entfernten Scheitelpunkten der Geometrie zurückgegeben. Die Endpunkte der Linie liegen auf dem von ST_MinimumBoundingCircle berechneten Kreis.

Verfügbarkeit: 1.5.0

Beispiele

Längste Strecke zwischen Punkt und Linie

SELECT ST_AsText( ST_LongestLine(
        'POINT (160 40)',
        'LINESTRING (10 30, 50 50, 30 110, 70 90, 180 140, 130 190)' )
        ) AS lline;
-----------------
LINESTRING(160 40,130 190)

Längste Strecke zwischen Polygon und Polygon

SELECT ST_AsText( ST_LongestLine(
        'POLYGON ((190 150, 20 10, 160 70, 190 150))',
        ST_Buffer('POINT(80 160)', 30)
            ) ) AS llinewkt;
-----------------
LINESTRING(20 10,105.3073372946034 186.95518130045156)

Längste Linie durch eine einzelne Geometrie. Die Länge der Linie ist gleich dem Maximalen Abstand. Die Endpunkte der Linie liegen auf dem Minimalen Begrenzungskreis.

SELECT ST_AsText( ST_LongestLine( geom, geom)) AS llinewkt,
                  ST_MaxDistance( geom, geom) AS max_dist,
                  ST_Length( ST_LongestLine(geom, geom)) AS lenll
FROM (SELECT 'POLYGON ((40 180, 110 160, 180 180, 180 120, 140 90, 160 40, 80 10, 70 40, 20 50, 40 180),
              (60 140, 99 77.5, 90 140, 60 140))'::geometry AS geom) AS t;

         llinewkt          |      max_dist      |       lenll
---------------------------+--------------------+--------------------
 LINESTRING(20 50,180 180) | 206.15528128088303 | 206.15528128088303