Name

ST_CoverageUnion — Calcule l'union d'un ensemble de polygones formant une couverture en supprimant les arêtes communes.

Synopsis

geometry ST_CoverageUnion(geometry set geom);

Description

Une fonction agrégée qui réunit un ensemble de polygones formant une couverture polygonale. Le résultat est une géométrie polygonale couvrant la même zone que la couverture. Cette fonction produit le même résultat que ST_Union, mais utilise la structure de la couverture pour calculer l'union beaucoup plus rapidement.

[Note]

Si l'entrée n'est pas une couverture valide, il peut y avoir des artefacts inattendus dans la sortie (tels que des polygones non fusionnés ou se chevauchant). Utilisez ST_CoverageInvalidEdges pour déterminer si une couverture est valide.

Disponibilité : 3.4.0 - nécessite GEOS >= 3.8.0

Exemples

Couverture d'entrée

Résultat de l'union

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