Namn

ST_CollectionHomogenize — Returnerar den enklaste representationen av en geometrisamling.

Synopsis

geometry ST_CollectionHomogenize(geometry collection);

Beskrivning

Ger en geometrisamling och returnerar den "enklaste" representationen av innehållet.

  • Homogena (enhetliga) samlingar returneras som lämplig multigeometri.

  • Heterogena (blandade) samlingar plattas ut till en enda GeometryCollection.

  • Samlingar som innehåller ett enda atomärt element returneras som det elementet.

  • Atomgeometrier returneras oförändrade. Om så krävs kan dessa konverteras till en multigeometri med hjälp av ST_Multi.

[Varning]

Denna funktion garanterar inte att resultatet är giltigt. I synnerhet kommer en samling som innehåller intilliggande eller överlappande polygoner att skapa en ogiltig MultiPolygon. Denna situation kan kontrolleras med ST_IsValid och repareras med ST_MakeValid.

Tillgänglighet: 2.0.0

Exempel

Samling med ett enda element omvandlad till en atomär geometri

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))');
Rasterutdata
PUNKT(0 0)
Figure
Geometry figure for visual-st-collectionhomogenize-01

Nästlad samling av enskilda element konverterad till en atomär geometri:

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(MULTIPOINT((0 0)))');
Rasterutdata
PUNKT(0 0)
Figure
Geometry figure for visual-st-collectionhomogenize-02

Samling omvandlad till en multigeometri:

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1))');
Rasterutdata
MULTIPOINT((0 0),(1 1))
Figure
Geometry figure for visual-st-collectionhomogenize-03

Nästlad heterogen samling som plattats ut till en GeometryCollection:

Code
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), GEOMETRYCOLLECTION( LINESTRING(1 1,2 2)))');
Rasterutdata
GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))
Figure
Geometry figure for visual-st-collectionhomogenize-04

Samling av polygoner som konverterats till en (ogiltig) MultiPolygon:

Code
SELECT 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)))');
Rasterutdata
MULTIPOLYGON(((10 50,50 50,50 10,10 10,10 50)),((90 50,90 10,50 10,50 50,90 50)))
Figure
Geometry figure for visual-st-collectionhomogenize-05