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)))