Nom

ST_ReducePrecision — Renvoie une géométrie valide dont les points sont arrondis en fonction de la tolérance de la grille.

Synopsis

geometry ST_ReducePrecision(geometry g, float8 gridsize);

Description

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.

Exemples

Code
SELECT ST_ReducePrecision('POINT(1.412 19.323)', 0.1);
Export de raster
POINT(1.4 19.3)
Figure
Geometry figure for visual-st-reduceprecision-01
Code
SELECT ST_ReducePrecision('POINT(1.412 19.323)', 1.0);
Export de raster
POINT(1 19)
Figure
Geometry figure for visual-st-reduceprecision-02
Code
SELECT ST_ReducePrecision('POINT(1.412 19.323)', 10);
Export de raster
POINT(0 20)
Figure
Geometry figure for visual-st-reduceprecision-03

La réduction de la précision permet de réduire le nombre de sommets

Code
SELECT ST_ReducePrecision('LINESTRING (10 10,19.6 30.1,20 30,20.3 30,40 40)', 1);
Export de raster
LINESTRING (10 10, 20 30, 40 40)
Figure
Geometry figure for visual-st-reduceprecision-04

La réduction de la précision divise les polygones si nécessaire pour garantir la validité

Code
WITH data(geom) AS (
  VALUES ('POLYGON ((10 10,60 60.1,70 30,40 40,50 10,10 10))'::geometry)
)
SELECT geom AS input,
       ST_ReducePrecision(geom, 10) AS reduced
FROM data;
Export de raster
-[ RECORD 1 ]------------------------------------------------
input   | POLYGON((10 10,60 60.1,70 30,40 40,50 10,10 10))
reduced | MULTIPOLYGON(((10 10,40 40,50 10,10 10)),((40 40,60 60,70 30,40 40)))
Figure
Geometry figure for visual-st-reduceprecision-05