ST_CoverageSimplify — Fonction window qui simplifie les bords d'une couverture polygonale.
geometry ST_CoverageSimplify(geometry winset geom, float8 tolerance, boolean simplifyBoundary = true);
Une fonction window qui simplifie les bords des polygones dans une couverture polygonale. La simplification préserve la topologie de la couverture. Cela signifie que les polygones de sortie simplifiés sont cohérents le long des arêtes communes et forment toujours une couverture valide.
La simplification utilise une variante de l'algorithme Visvalingam-Whyatt. Le paramètre tolérance a des unités de distance et est approximativement égal à la racine carrée des zones triangulaires à simplifier.
Pour simplifier uniquement les bords "internes" de la couverture (ceux qui sont partagés par deux polygones), définissez le paramètre simplifyBoundary à false.
Use this function to simplify adjacent polygon layers when shared boundaries must remain edge-matched. For a single geometry where only self-intersection and ring validity matter, see ST_SimplifyPreserveTopology.
|
|
|
Si l'entrée n'est pas une couverture valide, il peut y avoir des artefacts inattendus dans la sortie (tels que des intersections de frontières, ou des frontières séparées qui semblaient être partagées). Utilisez ST_CoverageInvalidEdges pour déterminer si une couverture est valide. |
Disponibilité : 3.4.0
Nécessite GEOS >= 3.12.0
Simplify a polygonal coverage while preserving shared boundaries.
WITH coverage(id, geom) AS (VALUES (1, 'POLYGON ((160 150,110 130,90 100,90 70,60 60,50 10,30 30,40 50,25 40,10 60,30 100,30 120,20 170,60 180,90 190,130 180,130 160,160 150),(40 160,50 140,66 125,60 100,80 140,90 170,60 160,40 160))'::geometry), (2, 'POLYGON ((40 160,60 160,90 170,80 140,60 100,66 125,50 140,40 160))'::geometry), (3, 'POLYGON ((110 130,160 50,140 50,120 33,90 30,50 10,60 60,90 70,90 100,110 130))'::geometry), (4, 'POLYGON ((160 150,150 120,160 90,160 50,110 130,160 150))'::geometry) ) SELECT id, ST_CoverageSimplify(geom, 30) OVER () FROM coverage;
id | st_astext ----+--------------------------------------- 1 | POLYGON ((160 150, 110 130, 50 10, 10 60, 20 170, 90 190, 160 150), (40 160, 66 125, 90 170, 40 160)) 2 | POLYGON ((40 160, 66 125, 90 170, 40 160)) 3 | POLYGON ((110 130, 160 50, 50 10, 110 130)) 4 | POLYGON ((160 150, 160 50, 110 130, 160 150))