Name

ST_CoverageUnion — Berechnet die Vereinigung einer Menge von Polygonen, die eine Abdeckung bilden, indem gemeinsame Kanten entfernt werden.

Synopsis

geometry ST_CoverageUnion(geometry set geom);

Beschreibung

Eine Aggregatfunktion, die einen Satz von Polygonen zu einer polygonalen Abdeckung zusammenfügt. Das Ergebnis ist eine polygonale Geometrie, die denselben Bereich wie die Abdeckung abdeckt. Diese Funktion liefert das gleiche Ergebnis wie ST_Union, nutzt aber die Struktur der Abdeckung, um die Vereinigung viel schneller zu berechnen.

[Note]

Wenn die Eingabe keine gültige Abdeckung ist, kann es zu unerwarteten Artefakten in der Ausgabe kommen (z. B. nicht verschmolzene oder überlappende Polygone). Verwenden Sie ST_CoverageInvalidEdges, um festzustellen, ob eine Abdeckung gültig ist.

Verfügbarkeit: 3.4.0 - erfordert GEOS >= 3.8.0

Beispiele

Eingangsabdeckung

Unionsergebnis

WITH coverage(id, geom) AS (VALUES
  (1, 'POLYGON ((10 10, 10 150, 80 190, 110 150, 90 110, 40 110, 50 60, 10 10))'::geometry),
  (2, 'POLYGON ((120 10, 10 10, 50 60, 100 70, 120 10))'::geometry),
  (3, 'POLYGON ((140 80, 120 10, 100 70, 40 110, 90 110, 110 150, 140 80))'::geometry),
  (4, 'POLYGON ((140 190, 120 170, 140 130, 160 150, 140 190))'::geometry),
  (5, 'POLYGON ((180 160, 170 140, 140 130, 160 150, 140 190, 180 160))'::geometry)
)
SELECT ST_AsText(ST_CoverageUnion(geom))
  FROM coverage;

--------------------------------------
MULTIPOLYGON (((10 150, 80 190, 110 150, 140 80, 120 10, 10 10, 10 150), (50 60, 100 70, 40 110, 50 60)), ((120 170, 140 190, 180 160, 170 140, 140 130, 120 170)))