Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_COVERAGEUNION

📄字数 815
👁️阅读量 加载中...

功能描述

将一组多边形联合起来形成多边形覆盖范围的聚合函数。

语法格式

sql
GEOMETRY ST_COVERAGEUNION(GEOMETRY geom);

参数说明

  • geom:目标 GEOMETRY 对象。

函数返回类型

GEOMETRY 类型

使用说明

  1. 结果是覆盖与覆盖范围相同的区域的多边形几何体。
  2. 该函数产生与 ST_UNION 相同的结果,但使用覆盖结构来更快地计算并集。
  3. 如果输入不是有效的覆盖范围,则输出中可能会出现意外的伪影(例如未合并或重叠的多边形)。
  4. 使用 ST_CoverageInvalidEdges 确定覆盖范围是否有效。

示例

coverage_input.pngcoverage_union_result.png
覆盖范围输入联合结果输出
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)