名称

ST_CollectionHomogenize — 返回几何集合的最简单表示。

大纲

geometry ST_CollectionHomogenize(geometry collection);

描述

给定几何集合,它返回“最简单”的表示形式。

  • 同质集合将以适当的多几何体形式返回。

  • 混合类型集合将转换为单个平面几何集合。

  • 包含单个基本元素的集合将作为该元素返回。

  • 基本几何形状返回不变。如果需要,可以使用ST_Multi将它们转换为多几何图形。

[警告]

该函数不保证结果有效。特别是,包含相邻或重叠多边形的集合将创建无效的多多边形。这种情况可以使用ST_IsValid检查并使用ST_MakeValid修复。

可用性: 2.0.0

示例

单个元素集合转为基本集合

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))');
栅格输出
POINT(0 0)
Figure
Geometry figure for visual-st-collectionhomogenize-01

将嵌套的单元素集合转换为基本几何:

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(MULTIPOINT((0 0)))');
栅格输出
POINT(0 0)
Figure
Geometry figure for visual-st-collectionhomogenize-02

集合转换为多几何图形:

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1))');
栅格输出
MULTIPOINT((0 0),(1 1))
Figure
Geometry figure for visual-st-collectionhomogenize-03

将嵌套混合类型集合转换为平面几何集合:

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), GEOMETRYCOLLECTION( LINESTRING(1 1,2 2)))');
栅格输出
GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))
Figure
Geometry figure for visual-st-collectionhomogenize-04

将多边形集合转换为(无效的)多多边形:

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION (POLYGON ((10 50,50 50,50 10,10 10,10 50)),POLYGON ((90 50,90 10,50 10,50 50,90 50)))');
栅格输出
MULTIPOLYGON(((10 50,50 50,50 10,10 10,10 50)),((90 50,90 10,50 10,50 50,90 50)))
Figure
Geometry figure for visual-st-collectionhomogenize-05