Name

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

Synopsis

geometry ST_CollectionHomogenize(geometry collection);

描述

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

  • 同构(统一)集合作为适当的多重几何体返回。

  • 异类(混合)集合被展平为单个GeometryCollection。

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

  • 原子几何图形返回时不变。如果需要,可以使用将这些几何转换为多几何 ST_Multi

[Warning]

此函数不能确保结果有效。特别是,包含相邻或重叠的多边形的集合将创建无效的多重多边形。这种情况可以通过以下方式进行核实 ST_IsValid 并用其修复 ST_MakeValid

可用性:2.0.0

示例

转换为原子几何体的单元素集合

SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))'));

        st_astext
        ------------
        POINT(0 0)

转换为原子几何体的嵌套单元素集合:

SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(MULTIPOINT((0 0)))'));

        st_astext
        ------------
        POINT(0 0)

转换为多几何图形的集合:

SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),POINT(1 1))'));

        st_astext
        ---------------------
        MULTIPOINT((0 0),(1 1))

嵌套的异类集合展平为GeometryCollection:

SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), GEOMETRYCOLLECTION( LINESTRING(1 1, 2 2)))'));

        st_astext
        ---------------------
        GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1,2 2))

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

SELECT ST_AsText(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)))'));

        st_astext
        ---------------------
        MULTIPOLYGON(((10 50,50 50,50 10,10 10,10 50)),((90 50,90 10,50 10,50 50,90 50)))

另请参阅

ST_CollectionExtract, ST_Multi, ST_IsValid, ST_MakeValid