Namn

ST_LineMerge — Returnerar de linjer som bildas genom att sy ihop en MultiLineString.

Synopsis

geometry ST_LineMerge(geometry amultilinestring);

geometry ST_LineMerge(geometry amultilinestring, boolean directed);

Beskrivning

Returnerar en LineString eller MultiLineString som bildats genom att sammanfoga linjeelementen i en MultiLineString. Linjer sammanfogas vid sina ändpunkter i 2-vägs korsningar. Linjer sammanfogas inte över korsningar med 3-vägs eller högre grad.

Om directed är TRUE kommer ST_LineMerge inte att ändra punktordningen inom LineStrings, så linjer med motsatta riktningar kommer inte att slås samman

[Notera]

Används endast med MultiLineString/LineStrings. Andra geometrityper returnerar en tom GeometryCollection

Utförs av GEOS-modulen.

Förbättrad: 3.3.0 acceptera en riktad parameter.

Kräver GEOS >= 3.11.0 för att använda den riktade parametern.

Tillgänglighet: 1.1.0

[Varning]

Denna funktion tar bort M-dimensionen.

Exempel

Kardinalitet 2

Noder med kardinalitet 2 slås samman.

Kod
SELECT ST_LineMerge('MULTILINESTRING((10 160,60 120),(120 140,60 120),(120 140,180 120))'
);
Utdata
LINESTRING(10 160,60 120,120 140,180 120)
Figur
Geometry figure for visual-st-linemerge-01

Kardinalitet 3 eller fler

Linjerna är inte sammanfogade över korsningar med grad > 2.

Kod
SELECT ST_LineMerge('MULTILINESTRING((10 160,60 120),(120 140,60 120),(120 140,180 120),(100 180,120 140))'
);
Utdata
MULTILINESTRING((10 160,60 120,120 140),(100 180,120 140),(120 140,180 120))
Figur
Geometry figure for visual-st-linemerge-02

Linjer som inte berör varandra

Om sammanslagning inte är möjlig på grund av linjer som inte berör varandra returneras den ursprungliga MultiLineString.

Kod
SELECT ST_LineMerge('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 -33.2,-46 -32))'
);
Utdata
MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))
Figur
Geometry figure for visual-st-linemerge-03

Riktningsparameter

Linjer med motsatta riktningar slås inte samman om directed är TRUE.

Kod
SELECT ST_LineMerge('MULTILINESTRING((60 30,10 70),(120 50,60 30),(120 50,180 30))',
TRUE);
Utdata
MULTILINESTRING((120 50,60 30,10 70),(120 50,180 30))
Figur
Geometry figure for visual-st-linemerge-04

Hantering av Z-dimension

Kod
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))'
        );
Utdata
LINESTRING Z (-30 -29.7 5,-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 1,-46 -32 11)
Figur
Geometry figure for visual-st-linemerge-05