ST_ReducePrecision — Gibt eine gültige Geometrie mit auf eine Rastertoleranz gerundeten Punkten zurück.
geometry ST_ReducePrecision(
geometry g, float8 gridsize)
;
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.
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)
Präzisionsreduzierung kann die Anzahl der Scheitelpunkte reduzieren
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)
Präzisionsreduzierung teilt Polygone bei Bedarf auf, um die Gültigkeit zu gewährleisten
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)))