Nom

ST_LineMerge — Renvoie les lignes formées par la couture d'une MultiLineString.

Synopsis

geometry ST_LineMerge(geometry amultilinestring);

geometry ST_LineMerge(geometry amultilinestring, boolean directed);

Description

Renvoie une LineString ou une MultiLineString formée par l'assemblage des éléments de ligne d'une MultiLineString. Les lignes sont jointes à leurs extrémités aux intersections à 2 voies. Les lignes ne sont pas jointes aux intersections à 3 voies ou plus.

Si directed est TRUE, ST_LineMerge ne modifiera pas l'ordre des points dans les LineStrings, de sorte que les lignes ayant des directions opposées ne seront pas fusionnées

[Note]

A n'utiliser qu'avec les MultiLineString/LineStrings. Les autres types de géométrie renvoient une GeometryCollection vide

Effectué par le module GEOS.

Amélioration : 3.3.0 accepte un paramètre direct.

GEOS >= 3.11.0 est nécessaire pour utiliser le paramètre direct.

Disponibilité : 1.1.0

[Avertissement]

Cette fonction supprime la dimension M.

Exemples

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))'
);
Export de raster
LINESTRING(10 160,60 120,120 140,180 120)
Figure
Geometry figure for visual-st-linemerge-01

Cardinality 3 or More

Les lignes ne sont pas fusionnées aux intersections de degré > 2.

Code
SELECT ST_LineMerge('MULTILINESTRING((10 160,60 120),(120 140,60 120),(120 140,180 120),(100 180,120 140))'
);
Export de raster
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

Si la fusion n'est pas possible en raison de lignes qui ne se touchent pas, la MultiLineString d'origine est renvoyée.

Code
SELECT ST_LineMerge('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 -33.2,-46 -32))'
);
Export de raster
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);
Export de raster
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))'
        );
Export de raster
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