ST_CollectionHomogenize — 返回几何集合的最简单表示形式。
geometry ST_CollectionHomogenize(
geometry collection)
;
给定一个几何集合,返回其内容最“简单”的表示形式。
同质(统一)集合将作为相应的多几何体返回。
异质(混合)集合将被展平为单个 GeometryCollection。
包含单个原子元素的集合将作为该元素返回。
原子几何体将保持不变返回。 如果需要,可以使用 ST_Multi 将它们转换为多几何体。
此函数不保证结果的有效性。特别是,包含相邻或重叠多边形的集合将创建一个无效的 MultiPolygon。可以使用 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))
多边形集合转换为(无效的)MultiPolygon
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)))