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)))