名称

ST_ReducePrecision — 返回一个有效的几何图形,其点被四舍五入到网格容差。

概要

geometry ST_ReducePrecision(geometry g, float8 gridsize);

描述

返回一个有效的几何图形,所有点都四舍五入到提供的网格容差,并且低于容差的要素将被移除。

ST_SnapToGrid 不同,返回的几何图形将是有效的,没有环自相交或折叠的组件。

精度降低可用于

  • 将坐标精度与数据精度匹配

  • 减少表示几何图形所需的坐标数量

  • 确保将有效的几何图形输出到使用较低精度的格式(例如,当输出小数位数有限时,WKT、GeoJSON 或 KML 等文本格式)。

  • 将有效的几何图形导出到使用较低或有限精度的系统(例如,SDE、Oracle 容差值)。

可用性:3.1.0。

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

精度降低可以减少顶点数

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)

精度降低在需要时会分割多边形以确保有效性

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

另请参阅

ST_SnapToGrid, ST_Simplify, ST_SimplifyVW