ST_ReducePrecision
Prev | 8.14. Geometry Processing | Next

## Name

ST_ReducePrecision — Returns a valid geometry with points rounded to a grid tolerance.

## Synopsis

`geometry ST_ReducePrecision(`geometry g, float8 gridsize`)`;

## Description

Returns a valid geometry with all points rounded to the provided grid tolerance, and features below the tolerance removed.

Unlike ST_SnapToGrid the returned geometry will be valid, with no ring self-intersections or collapsed components.

Precision reduction can be used to:

- match coordinate precision to the data accuracy

- reduce the number of coordinates needed to represent a geometry

- ensure valid geometry output to formats which use lower precision (e.g. text formats such as WKT, GeoJSON or KML when the number of output decimal places is limited).

- export valid geometry to systems which use lower or limited precision (e.g. SDE, Oracle tolerance value)

Availability: 3.1.0 - requires GEOS >= 3.9.0.

## Examples

    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)

Precision reduction can reduce number of vertices

    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)

Precision reduction splits polygons if needed to ensure validity

    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)))

## See Also

ST_SnapToGrid, ST_Simplify, ST_SimplifyVW

Prev | Up | Next
ST_Polygonize | Home | ST_SharedPaths