ST_CoverageUnion — 計算構成覆蓋範圍的一組多邊形的聯集,方法是移除共享邊緣。
geometry ST_CoverageUnion(
geometry set geom)
;
一個彙總函式,用於聯集構成多邊形覆蓋範圍的一組多邊形。結果是一個多邊形幾何,覆蓋與覆蓋範圍相同的區域。此函式產生與 ST_Union 相同的結果,但使用覆蓋範圍結構來更快地計算聯集。
![]() |
|
如果輸入不是有效的覆蓋範圍,則輸出中可能會出現意想不到的瑕疵(例如未合併或重疊的多邊形)。使用 ST_CoverageInvalidEdges 來確定覆蓋範圍是否有效。 |
可用性:3.4.0 - 需要 GEOS >= 3.8.0
![]() 輸入覆蓋範圍
|
![]() 聯集結果
|
WITH coverage(id, geom) AS (VALUES (1, 'POLYGON ((10 10, 10 150, 80 190, 110 150, 90 110, 40 110, 50 60, 10 10))'::geometry), (2, 'POLYGON ((120 10, 10 10, 50 60, 100 70, 120 10))'::geometry), (3, 'POLYGON ((140 80, 120 10, 100 70, 40 110, 90 110, 110 150, 140 80))'::geometry), (4, 'POLYGON ((140 190, 120 170, 140 130, 160 150, 140 190))'::geometry), (5, 'POLYGON ((180 160, 170 140, 140 130, 160 150, 140 190, 180 160))'::geometry) ) SELECT ST_AsText(ST_CoverageUnion(geom)) FROM coverage; -------------------------------------- MULTIPOLYGON (((10 150, 80 190, 110 150, 140 80, 120 10, 10 10, 10 150), (50 60, 100 70, 40 110, 50 60)), ((120 170, 140 190, 180 160, 170 140, 140 130, 120 170)))