名前

ST_Node — ラインストリングの集合にノードを作成します。

概要

geometry ST_Node(geometry geom);

説明

ラインストリングのコレクションに完全にノードが加えられたものを表現する(マルチ)ラインストリングを返します。全ての入力ノードを保存したうえで、可能な最低の数だけノードを加えています。結果の線はディゾルブされています (重複線が削除されます)。

これはST_Polygonizeへの入力に適した、完全にノードを加えた線を生成する良い方法です。

ST_UnaryUnion も、ラインのノード追加とディゾルブに使うことができます。gridSizeを指定する任意引数を与えると、より単純かつよりロバストな出力が得られます。集約関数版についてはST_Unionをご覧下さい。

この関数は3次元に対応し、Z値を削除しません。

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

Availability: 2.0.0

Changed: 2.4.0 この関数は内部でGEOSUnaryUnionの替わりにGEOSNodeを使用しています。ラインストリングの並び順と方向がPostGIS 2.4より前のものと違うことになるかも知れません。

自己交差する3次元ラインストリグにノードを加えます。

SELECT ST_AsText(
        ST_Node('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'::geometry)
    ) As  output;
output
-----------
MULTILINESTRING Z ((0 0 0,5 5 4.5),(5 5 4.5,10 10 10,0 10 5,5 5 4.5),(5 5 4.5,10 0 3))
        

線を共有する二つのラインストリングにノードを加えます。結果の線はディゾルブされます。

SELECT ST_AsText(
        ST_Node('MULTILINESTRING ((2 5, 2 1, 7 1), (6 1, 4 1, 2 3, 2 5))'::geometry)
    ) As  output;
output
-----------
MULTILINESTRING((2 5,2 3),(2 3,2 1,4 1),(4 1,2 3),(4 1,6 1),(6 1,7 1))
        

関連情報

ST_UnaryUnion, ST_Union