ST_CollectionHomogenize — Renvoie la représentation la plus simple d'une collection de géométries.
geometry ST_CollectionHomogenize(
geometry collection)
;
Pour une collection de géométries spécifiée, renvoie la représentation la plus simple du contenu.
Les collections homogènes (uniformes) sont renvoyées sous la forme de la multi-géométrie appropriée.
Les collections hétérogènes (mixtes) sont écrasées en une seule GeometryCollection.
Les collections contenant un seul élément atomique sont renvoyées sous la forme de cet élément.
Les géométries atomiques sont renvoyées telles quelles. Si nécessaire, elles peuvent être converties en une géométrie multiple en utilisant ST_Multi.
Cette fonction ne garantit pas la validité du résultat. En particulier, une collection contenant des polygones adjacents ou se chevauchant créera un MultiPolygon invalide. Cette situation peut être vérifiée avec ST_IsValid et réparée avec ST_MakeValid. |
Disponibilité : 2.0.0
Collection d'un seul élément convertie en géométrie atomique
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))')); st_astext ------------ POINT(0 0)
Collection imbriquée d'éléments simples convertie en géométrie atomique :
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(MULTIPOINT((0 0)))')); st_astext ------------ POINT(0 0)
Collection convertie en une géométrie multiple :
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),POINT(1 1))')); st_astext --------------------- MULTIPOINT((0 0),(1 1))
Collection hétérogène imbriquée écrasée en une 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))
Collection de polygones convertis en un MultiPolygon (non valide) :
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)))