名前

ST_LineMerge — MULTILINESTRINGを縫い合わせて形成したラインを返します。

概要

geometry ST_LineMerge(geometry amultilinestring);

説明

MULTILINESTRINGを構成するラインを結合して形成されたLINESTRINGまたはMULTILINESTRINGを返します。ラインは2方向交点の終端で結合します。ラインは3方向以上の交点では結合しません。

[注記]

MULTILINESTRING/LINESTRINGでのみ使います。POLYGONまたはGEOMETRYCOLLECTIONをこの関数に渡した場合には、EMPTY GEOMETRYCOLLECTIONが返ります。

GEOSモジュールで実現しています。

Availability: 1.1.0

[警告]

この関数はM値を取り除きます。

SELECT ST_AsText(ST_LineMerge(
'MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 -33,-46 -32))'
                ));
st_astext
--------------------------------------------------------------------------------------------------
LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33,-46 -32)

接触するラインが無くマージができない場合には、元のMULTILINESTRINGが返されます。

SELECT ST_AsText(ST_LineMerge(
'MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 -33.2,-46 -32))'
));
st_astext
----------------
MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))

Z値処理を示す例。

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))'
        ));
st_astext
--------------------------------------------------------------------------------------------------
LINESTRING Z (-30 -29.7 5,-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 1,-46 -32 11)

関連情報

ST_Segmentize, ST_LineSubstring