Name

ST_Simplify — Renvoie une version simplifiée d'une géométrie, en utilisant l'algorithme de Douglas-Peucker.

Synopsis

geometry ST_Simplify(geometry geomA, float tolerance);

geometry ST_Simplify(geometry geomA, float tolerance, boolean preserveCollapsed);

Description

Renvoie une version "simplifiée" de la géométrie donnée en utilisant l'algorithme de Douglas-Peucker. Cette fonction ne fonctionne qu'avec les (multi)lignes et les (multi)polygones, mais vous pouvez l'appeler en toute sécurité avec n'importe quel type de géométrie. Comme la simplification se fait objet par objet, vous pouvez également utiliser une collection de géométries dans cette fonction.

L'option "preserve collapsed" permet de conserver les objets qui seraient autrement trop petits compte tenu de la tolérance. Par exemple, une ligne de 1 m de long simplifiée avec une tolérance de 10 m. Si l'argument preserveCollapsed est spécifié comme true, la ligne ne disparaîtra pas. Cet indicateur est utile pour les moteurs de rendu, afin d'éviter qu'un grand nombre d'objets très petits ne disparaissent d'une carte en laissant des vides surprenants.

[Note]

Notez que la géométrie retournée peut perdre sa simplicité (voir ST_IsSimple)

[Note]

Notez que la topologie peut ne pas être préservée et donner lieu à des géométries non valides. Utilisez (voir ST_SimplifyPreserveTopology) pour préserver la topologie.

Disponibilité : 1.2.2

Exemples

Un cercle trop simplifié devient un triangle, moyennement un octogone,

SELECT ST_Npoints(geom) AS np_before,
       ST_NPoints(ST_Simplify(geom,0.1)) AS np01_notbadcircle,
       ST_NPoints(ST_Simplify(geom,0.5)) AS np05_notquitecircle,
       ST_NPoints(ST_Simplify(geom,1)) AS np1_octagon,
       ST_NPoints(ST_Simplify(geom,10)) AS np10_triangle,
       (ST_Simplify(geom,100) is null) AS  np100_geometrygoesaway
  FROM
    (SELECT ST_Buffer('POINT(1 3)', 10,12) As geom) AS foo;

 np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | np10_triangle | np100_geometrygoesaway
-----------+-------------------+---------------------+-------------+---------------+------------------------
        49 |                33 |                  17 |           9 |             4 | t
      

Voir aussi

ST_IsSimple, ST_SimplifyPreserveTopology, ST_SimplifyVW, Topologie ST_Simplify