ST_LineMerge — Returnerar de linjer som bildas genom att sy ihop en MultiLineString.
geometry ST_LineMerge(
geometry amultilinestring)
;
geometry ST_LineMerge(
geometry amultilinestring, boolean directed)
;
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
![]() |
|
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
![]() |
|
Denna funktion tar bort M-dimensionen. |
Sammanfogning av linjer med olika inriktning.
SELECT ST_AsText(ST_LineMerge( 'MULTILINESTRING((10 160, 60 120), (120 140, 60 120), (120 140, 180 120))' )); -------------------------------------------- LINESTRING(10 160,60 120,120 140,180 120)
Linjerna är inte sammanfogade över korsningar med grad > 2.
SELECT ST_AsText(ST_LineMerge( 'MULTILINESTRING((10 160, 60 120), (120 140, 60 120), (120 140, 180 120), (100 180, 120 140))' )); -------------------------------------------- MULTILINESTRING((10 160,60 120,120 140),(100 180,120 140),(120 140,180 120))
Om sammanslagning inte är möjlig på grund av linjer som inte berör varandra returneras den ursprungliga MultiLineString.
SELECT ST_AsText(ST_LineMerge( 'MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 -33.2,-46 -32))' )); ---------------- MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))
Linjer med motsatt riktning slås inte samman om directed = TRUE.
SELECT ST_AsText(ST_LineMerge( 'MULTILINESTRING((60 30, 10 70), (120 50, 60 30), (120 50, 180 30))', TRUE)); ------------------------------------------------------- MULTILINESTRING((120 50,60 30,10 70),(120 50,180 30))
Exempel på hantering av Z-dimension.
SELECT ST_AsText(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))' )); -------------------------------------------------------------------------------------------------- LINESTRING Z (-30 -29.7 5,-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 1,-46 -32 11)