ST_SetEffectiveArea — Définit la surface effective de chaque sommet, en utilisant l'algorithme Visvalingam-Whyatt.
geometry ST_SetEffectiveArea(
geometry geom, float threshold = 0, integer set_area = 1)
;
Définit la surface effective de chaque sommet, en utilisant l'algorithme Visvalingam-Whyatt. La surface effective est stockée comme la valeur M du sommet. Si le paramètre optionnel "threshold" est utilisé, une géométrie simplifiée sera renvoyée, contenant uniquement les sommets dont la surface effective est supérieure ou égale à la valeur seuil.
Cette fonction peut être utilisée pour la simplification côté serveur lorsqu'un seuil est spécifié. Une autre option consiste à utiliser une valeur seuil de zéro. Dans ce cas, la géométrie complète sera renvoyée avec les surfaces effectives sous forme de valeurs M, qui peuvent être utilisées par le client pour simplifier très rapidement.
Cette fonction n'agit qu'avec des (multi)lignes et des (multi)polygones, mais vous pouvez l'appeler en toute sécurité avec n'importe quel type de géométrie. Comme la simplification se produit objet par objet, vous pouvez également utiliser une collection de géométries dans cette fonction.
Notez que la géométrie retournée peut perdre sa simplicité (voir ST_IsSimple) |
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. |
La géométrie de sortie perdra toutes les informations précédentes concernant les valeurs M |
Cette fonction gère la 3D et la troisième dimension affecte la surface effective |
Disponibilité : 2.2.0
Calcul de la surface effective d'une LineString. Comme nous utilisons une valeur seuil de zéro, tous les sommets de la géométrie d'entrée sont renvoyés.
select ST_AsText(ST_SetEffectiveArea(geom)) all_pts, ST_AsText(ST_SetEffectiveArea(geom,30) ) thrshld_30 FROM (SELECT 'LINESTRING(5 2, 3 8, 6 20, 7 25, 10 10)'::geometry geom) As foo; -result all_pts | thrshld_30 -----------+-------------------+ LINESTRING M (5 2 3.40282346638529e+38,3 8 29,6 20 1.5,7 25 49.5,10 10 3.40282346638529e+38) | LINESTRING M (5 2 3.40282346638529e+38,7 25 49.5,10 10 3.40282346638529e+38)