ST_COVERAGEUNION
📄字数 815
👁️阅读量 加载中...
功能描述
将一组多边形联合起来形成多边形覆盖范围的聚合函数。
语法格式
sql
GEOMETRY ST_COVERAGEUNION(GEOMETRY geom);参数说明
- geom:目标 GEOMETRY 对象。
函数返回类型
GEOMETRY 类型
使用说明
- 结果是覆盖与覆盖范围相同的区域的多边形几何体。
- 该函数产生与 ST_UNION 相同的结果,但使用覆盖结构来更快地计算并集。
- 如果输入不是有效的覆盖范围,则输出中可能会出现意外的伪影(例如未合并或重叠的多边形)。
- 使用 ST_CoverageInvalidEdges 确定覆盖范围是否有效。
示例
![]() | ![]() |
|---|---|
| 覆盖范围输入 | 联合结果输出 |
sql
SQL> WITH coverage AS (
SELECT 'POLYGON ((10 10, 10 150, 80 190, 110 150, 90 110, 40 110, 50 60, 10 10))'::geometry AS geom union all
SELECT 'POLYGON ((120 10, 10 10, 50 60, 100 70, 120 10))'::geometry AS geom union all
SELECT 'POLYGON ((140 80, 120 10, 100 70, 40 110, 90 110, 110 150, 140 80))'::geometry AS geom union all
SELECT 'POLYGON ((140 190, 120 170, 140 130, 160 150, 140 190))'::geometry AS geom union all
SELECT 'POLYGON ((180 160, 170 140, 140 130, 160 150, 140 190, 180 160))'::geometry AS geom
)
SELECT ST_AsText(ST_CoverageUnion(geom)) FROM coverage;
+----------------------------------------------------------------------------------------------------------------------------------------------------+
| EXPR1 |
+----------------------------------------------------------------------------------------------------------------------------------------------------+
| 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))) |
+----------------------------------------------------------------------------------------------------------------------------------------------------+
(1 row)

