ST_ReducePrecision — Renvoie une géométrie valide dont les points sont arrondis en fonction de la tolérance de la grille.
geometry ST_ReducePrecision(
geometry g, float8 gridsize)
;
Renvoie une géométrie valide dont tous les points sont arrondis à la tolérance de grille fournie, et dont les caractéristiques inférieures à la tolérance sont supprimées.
Contrairement à ST_SnapToGrid, la géométrie renvoyée sera valide, sans auto-intersections d'anneaux ni composants réduits.
La réduction de précision peut être utilisée pour :
faire correspondre la précision des coordonnées à la précision des données
réduire le nombre de coordonnées nécessaires pour représenter une géométrie
garantir une sortie géométrique valide vers des formats qui utilisent une précision moindre (par exemple, des formats de texte tels que WKT, GeoJSON ou KML lorsque le nombre de décimales de sortie est limité).
exporter une géométrie valide vers des systèmes qui utilisent une précision plus faible ou limitée (par exemple, SDE, valeur de tolérance Oracle)
Disponibilité : 3.1.0.
Nécessite GEOS >= 3.9.0.
SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 0.1)); st_astext ----------------- POINT(1.4 19.3) SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 1.0)); st_astext ------------- POINT(1 19) SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 10)); st_astext ------------- POINT(0 20)
La réduction de la précision permet de réduire le nombre de sommets
SELECT ST_AsText(ST_ReducePrecision('LINESTRING (10 10, 19.6 30.1, 20 30, 20.3 30, 40 40)', 1)); st_astext ------------- LINESTRING (10 10, 20 30, 40 40)
La réduction de la précision divise les polygones si nécessaire pour garantir la validité
SELECT ST_AsText(ST_ReducePrecision('POLYGON ((10 10, 60 60.1, 70 30, 40 40, 50 10, 10 10))', 10)); st_astext ------------- MULTIPOLYGON (((60 60, 70 30, 40 40, 60 60)), ((40 40, 50 10, 10 10, 40 40)))