Name

ST_ReducePrecision — Restituisce una geometria valida con punti arrotondati alla tolleranza della griglia.

Synopsis

geometry ST_ReducePrecision(geometry g, float8 gridsize);

Descrizione

Restituisce una geometria valida con tutti i punti arrotondati alla tolleranza della griglia fornita e gli elementi al di sotto della tolleranza rimossi.

A differenza di ST_SnapToGrid, la geometria restituita sarà valida, senza autointersecazioni di anelli o componenti collassati.

La riduzione di precisione può essere utilizzata per:

  • abbinare la precisione delle coordinate all'accuratezza dei dati

  • ridurre il numero di coordinate necessarie per rappresentare una geometria

  • garantire un output geometrico valido in formati che utilizzano una precisione inferiore (ad esempio, formati di testo come WKT, GeoJSON o KML quando il numero di cifre decimali in uscita è limitato).

  • esportare geometrie valide in sistemi che utilizzano una precisione inferiore o limitata (ad es. SDE, valore di tolleranza Oracle)

Availability: 3.1.0.

Requires GEOS >= 3.9.0.

Esempi

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 riduzione della precisione può ridurre il numero di vertici

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 riduzione di precisione divide i poligoni, se necessario, per garantire 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)))