Name

ST_LineMerge — Gibt die Linien zurück, die durch das Zusammenfügen eines MultiLineString gebildet werden.

Übersicht

geometry ST_LineMerge(geometry amultilinestring);

geometry ST_LineMerge(geometry amultilinestring, boolean directed);

Beschreibung

Gibt einen LineString oder MultiLineString zurück, der durch Zusammenfügen der Linienelemente eines MultiLineString gebildet wird. Linien werden an ihren Endpunkten an 2-Wege-Kreuzungen verbunden. Linien werden nicht über Schnittpunkte mit 3 oder mehr Richtungen verbunden.

Wenn directed TRUE ist, dann ändert ST_LineMerge nicht die Reihenfolge der Punkte innerhalb von LineStrings, so dass Linien mit entgegengesetzten Richtungen nicht zusammengeführt werden

[Anmerkung]

Nur mit MultiLineString/LineStrings verwenden. Andere Geometrietypen geben eine leere GeometryCollection zurück

Wird vom GEOS Modul ausgeführt

Verbessert: 3.3.0 akzeptiert einen gerichteten Parameter.

Erfordert GEOS >= 3.11.0 zur Verwendung des gerichteten Parameters.

Verfügbarkeit: 1.1.0

[Warnung]

Diese Funktion entfernt die Dimension M.

Beispiele

Cardinality 2

Nodes with cardinality 2 are merged away.

Code
SELECT ST_LineMerge('MULTILINESTRING((10 160,60 120),(120 140,60 120),(120 140,180 120))'
);
Ausgabe von Rastern
LINESTRING(10 160,60 120,120 140,180 120)
Figure
Geometry figure for visual-st-linemerge-01

Cardinality 3 or More

Linien werden nicht über Schnittpunkte mit dem Grad > 2 zusammengeführt.

Code
SELECT ST_LineMerge('MULTILINESTRING((10 160,60 120),(120 140,60 120),(120 140,180 120),(100 180,120 140))'
);
Ausgabe von Rastern
MULTILINESTRING((10 160,60 120,120 140),(100 180,120 140),(120 140,180 120))
Figure
Geometry figure for visual-st-linemerge-02

Non-Touching Lines

Ist das Zusammenführen aufgrund von sich nicht berührenden Zeilen nicht möglich, wird der ursprüngliche MultiLineString zurückgegeben.

Code
SELECT ST_LineMerge('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 -33.2,-46 -32))'
);
Ausgabe von Rastern
MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))
Figure
Geometry figure for visual-st-linemerge-03

Directed Parameter

Lines with opposite directions are not merged if directed is TRUE.

Code
SELECT ST_LineMerge('MULTILINESTRING((60 30,10 70),(120 50,60 30),(120 50,180 30))',
TRUE);
Ausgabe von Rastern
MULTILINESTRING((120 50,60 30,10 70),(120 50,180 30))
Figure
Geometry figure for visual-st-linemerge-04

Z-dimension Handling

Code
SELECT ST_LineMerge('MULTILINESTRING((-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 6),(-29 -27 12,-30 -29.7 5),(-45 -33 1,-46 -32 11))'
        );
Ausgabe von Rastern
LINESTRING Z (-30 -29.7 5,-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 1,-46 -32 11)
Figure
Geometry figure for visual-st-linemerge-05