ST_UNION
📄字数 925
👁️阅读量 加载中...
功能描述
联合输入几何图形,合并几何图形以生成没有重叠的结果几何图形。
语法格式
sql
GEOMETRY ST_UNION(GEOMETRY g1, GEOMETRY g2);
GEOMETRY ST_UNION(GEOMETRY g1, geometry g2, DOUBLE gridSize);
GEOMETRY ST_UNION(GEOMETRY SET g1field);
GEOMETRY ST_UNION(GEOMETRY SET g1field, DOUBLE gridSize);参数说明
- g1:第一个目标 GEOMETRY 对象。
- g2:第二个目标 GEOMETRY 对象。
- g1field:GEOMETRY 对象在数据集中的字段。
- gridSize:指定网格的大小。捕捉输入到给定大小的网格,同一网格内的顶点直接合并。
函数返回类型
GEOMETRY 类型
使用说明
- 输出可以是原子几何、多几何或几何集合。此函数有多种格式:
- 双输入格式: 返回一个几何图形,该几何图形是两个输入几何图形的并集。 如果任一输入为 NULL,则返回 NULL。
- 聚合函数格式: 聚合函数功能。返回一个几何图形,该几何图形是几何图形集合的并集。
- 如果不要求结果不重合,可以使用 ST_COLLECT。T_COLLECT 不对收集的几何图形执行任何处理,比 ST_Union 更快。
- 该函数支持 3d 并且不会丢失 z-index。 但是,结果仅使用 XY 计算。 结果 Z 值被复制、平均或插值。
示例
双输入格式:
sql
SQL> select ST_AsText(ST_Union('POINT(1 2)' :: geometry, 'POINT(-2 3)' :: geometry));
+--------------------------+
| EXPR1 |
+--------------------------+
| MULTIPOINT((1 2),(-2 3)) |
+--------------------------+
(1 row)sql
SQL> select ST_AsEWKT(ST_Union(geom))
from (
select 'POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2, -7 4.2 2))'::geometry geom
union all
select 'POINT(5 5 5)'::geometry geom
union all
select 'POINT(-2 3 1)'::geometry geom
union all
select 'LINESTRING(5 5 5, 10 10 10)'::geometry geom
) as foo;
+-----------------------------------------------------------------------------------------------------------------+
| EXPR1 |
+-----------------------------------------------------------------------------------------------------------------+
| GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2,-7 4.2 2))) |
+-----------------------------------------------------------------------------------------------------------------+
(1 row)