ST_CollectionHomogenize — Gibt die einfachste Darstellung einer Geometriesammlung zurück.
geometry ST_CollectionHomogenize(
geometry collection)
;
Gibt bei einer Geometriesammlung die "einfachste" Darstellung des Inhalts zurück.
Homogene (einheitliche) Sammlungen werden als die entsprechende Multi-Geometrie zurückgegeben.
Heterogene (gemischte) Sammlungen werden zu einer einzigen GeometryCollection zusammengeführt.
Sammlungen, die ein einzelnes atomares Element enthalten, werden als dieses Element zurückgegeben.
Atomare Geometrien werden unverändert zurückgegeben. Bei Bedarf können diese mit ST_Multi in eine Multi-Geometrie umgewandelt werden.
Diese Funktion stellt nicht sicher, dass das Ergebnis gültig ist. Insbesondere wird eine Sammlung, die benachbarte oder überlappende Polygone enthält, ein ungültiges MultiPolygon erzeugen. Diese Situation kann mit ST_IsValid überprüft und mit ST_MakeValid behoben werden. |
Verfügbarkeit: 2.0.0
In eine atomare Geometrie umgewandelte Einzelelementsammlung
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))')); st_astext ------------ POINT(0 0)
Verschachtelte Einzelelementsammlung, die in eine atomare Geometrie umgewandelt wurde:
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(MULTIPOINT((0 0)))')); st_astext ------------ POINT(0 0)
Sammlung in eine Multi-Geometrie umgewandelt:
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),POINT(1 1))')); st_astext --------------------- MULTIPOINT((0 0),(1 1))
Verschachtelte heterogene Sammlung, die zu einer GeometryCollection abgeflacht wurde:
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))
Sammlung von Polygonen, die in ein (ungültiges) MultiPolygon umgewandelt wurden:
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)))