Name

ST_CollectionHomogenize — Gibt die einfachste Darstellung einer Geometriesammlung zurück.

Synopsis

geometry ST_CollectionHomogenize(geometry collection);

Beschreibung

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.

[Warning]

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

Beispiele

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