Name

ST_ReducePrecision — Gibt eine gültige Geometrie mit auf eine Rastertoleranz gerundeten Punkten zurück.

Übersicht

geometry ST_ReducePrecision(geometry g, float8 gridsize);

Beschreibung

Gibt eine gültige Geometrie zurück, bei der alle Punkte auf die angegebene Rastertoleranz gerundet und Features unterhalb der Toleranz entfernt wurden.

Im Gegensatz zu ST_SnapToGrid ist die zurückgegebene Geometrie gültig, ohne Ringselbstschnittpunkte oder kollabierte Komponenten.

Die Präzisionsreduzierung kann verwendet werden, um:

  • Anpassung der Koordinatengenauigkeit an die Datengenauigkeit

  • die Anzahl der für die Darstellung einer Geometrie erforderlichen Koordinaten zu verringern

  • Gewährleistung einer gültigen Geometrieausgabe in Formaten, die eine geringere Genauigkeit verwenden (z. B. Textformate wie WKT, GeoJSON oder KML, wenn die Zahl der ausgegebenen Dezimalstellen begrenzt ist).

  • Export gültiger Geometrie in Systeme, die eine geringere oder begrenzte Genauigkeit verwenden (z. B. SDE, Oracle-Toleranzwert)

Verfügbarkeit: 3.1.0.

Erfordert GEOS >= 3.9.0.

Beispiele

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

Präzisionsreduzierung kann die Anzahl der Scheitelpunkte reduzieren

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

Präzisionsreduzierung teilt Polygone bei Bedarf auf, um die Gültigkeit zu gewährleisten

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;
Ausgabe von Rastern
-[ 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