名称

ST_CoverageUnion — 通过删除共享边来计算形成覆盖范围的一组多边形的并集。

大纲

geometry ST_CoverageUnion(geometry set geom);

描述

将一组多边形联合起来形成多边形覆盖范围的聚合函数。 结果是覆盖与覆盖范围相同的区域的多边形几何体。 该函数产生与 ST_Union相同的结果,但使用覆盖结构来更快地计算并集。

[注意]

如果输入不是有效的覆盖范围,则输出中可能会出现意外的伪影(例如未合并或重叠的多边形)。 使用 ST_CoverageInvalidEdges确定覆盖范围是否有效。

可用性:3.4.0-需要 GEOS >= 3.8.0

示例

Union a polygonal coverage.

Code
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_CoverageUnion(geom) AS wkt
  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)))
Figure
Geometry figure for visual-st-coverageunion-01