ST_LineMerge — 返回透過縫合 MultiLineString 而形成的線條。
geometry ST_LineMerge(
geometry amultilinestring)
;
geometry ST_LineMerge(
geometry amultilinestring, boolean directed)
;
返回一個 LineString 或 MultiLineString,該線條或多線條是通過連接 MultiLineString 的線元素而形成的。線條在其端點以雙向交點連接。線條不會在三向或更高次數的交點處連接。
如果 directed 為 TRUE,則 ST_LineMerge 不會更改 LineString 內的點順序,因此方向相反的線條不會合併。
![]() |
|
僅適用於 MultiLineString/LineStrings。其他幾何類型會返回空的 GeometryCollection。 |
由 GEOS 模組執行。
增強功能:3.3.0 接受 directed 參數。
需要 GEOS >= 3.11.0 才能使用 directed 參數。
可用性:1.1.0
![]() |
|
此函數會去除 M 維度。 |
合併方向不同的線條。
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)
線條不會在次數 > 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))
如果由於線條不接觸而無法合併,則返回原始的 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))
如果 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))
顯示 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))' )); -------------------------------------------------------------------------------------------------- LINESTRING Z (-30 -29.7 5,-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 1,-46 -32 11)