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