Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_REDUCEPRECISION

📄字数 760
👁️阅读量 加载中...

功能描述

返回有效的几何图形,其中所有点均舍入到提供的网格公差,并删除低于公差的要素。

语法格式

sql
GEOMETRY ST_REDUCEPRECISION(GEOMETRY g, DOUBLE gridsize);

参数说明

  • g:目标 GEOMETRY 对象。
  • gridsize:网格公差

函数返回类型

GEOMETRY 类型

使用说明

  1. 返回的几何图形将是有效的,没有环自相交或折叠组件。
  2. 精度降低可用于:
  • 将坐标精度与数据精度相匹配。
  • 减少表示几何图形所需的坐标数量。
  • 确保有效的几何输出为使用较低精度的格式(例如,当输出小数位数有限时,WKT、GeoJSON 或 KML 等文本格式)。
  • 将有效几何图形导出到使用较低或有限精度的系统。

示例

sql
SQL> SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 0.1));

+-----------------+
|      EXPR1      |
+-----------------+
| POINT(1.4 19.3) |
+-----------------+

(1 row)

SQL> SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 1.0));

+-------------+
|    EXPR1    |
+-------------+
| POINT(1 19) |
+-------------+

(1 row)

SQL> SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 10));

+-------------+
|    EXPR1    |
+-------------+
| POINT(0 20) |
+-------------+

(1 row)

降低精度可以减少顶点数量:

sql
SQL> SELECT ST_AsText(ST_ReducePrecision('LINESTRING (10 10, 19.6 30.1, 20 30, 20.3 30, 40 40)', 1));

+-------------------------------+
|             EXPR1             |
+-------------------------------+
| LINESTRING(10 10,20 30,40 40) |
+-------------------------------+

(1 row)

精度降低会分割多边形以确保有效性:

sql
SQL> SELECT ST_AsText(ST_ReducePrecision('POLYGON ((10 10, 60 60.1, 70 30, 40 40, 50 10, 10 10))', 10));

+-----------------------------------------------------------------------+
|                                 EXPR1                                 |
+-----------------------------------------------------------------------+
| MULTIPOLYGON(((40 40,50 10,10 10,40 40)),((60 60,70 30,40 40,60 60))) |
+-----------------------------------------------------------------------+

(1 row)