Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_QUANTIZECOORDINATES

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

功能描述

将 GEOMETRY 对象中的点的坐标值保留指定位数的有效数字。

语法格式

sql
GEOMETRY ST_QUANTIZECOORDINATES ( GEOMETRY g , INTEGER prec_x );
GEOMETRY ST_QUANTIZECOORDINATES ( GEOMETRY g , INTEGER prec_x , INTEGER prec_y);
GEOMETRY ST_QUANTIZECOORDINATES ( GEOMETRY g , INTEGER prec_x , INTEGER prec_y, INTEGER prec_z);
GEOMETRY ST_QUANTIZECOORDINATES ( GEOMETRY g , INTEGER prec_x , INTEGER prec_y, INTEGER prec_z, INTEGER prec_m );

参数说明

  • g:目标 GEOMETRY 对象。
  • prec_x: X 的精度(小数点后指定位数)。
  • prec_y: Y 的精度(小数点后指定位数)。
  • prec_z: Z 的精度(小数点后指定位数)。
  • prec_m: M 的精度(小数点后指定位数)。

函数返回类型

GEOMETRY 类型

使用说明

  1. 确定表示小数点后具有指定位数的坐标值所需的位数 (N),然后将除 N 个最高有效位之外的所有位设置为零。
  2. 生成的坐标值仍将舍入为原始值,但会提高可压缩性。 如果几何列使用 可压缩存储类型,这可能会导致磁盘使用量显著减少。
  3. 该功能允许在每个维度中指定不同的小数点后位数;未指定的尺寸假定具有 x 维度的精度。
  4. 精度指定为负数时,被解释为指小数点左边的数字,例如:prec_x=-2, 将保留最接近 100 的坐标值。
  5. 此函数不影响几何图形之间现有的拓扑关系。
  6. 当使用低于几何的固有精度的位数调用该函数时,该函数可能会产生无效的几何对象。

示例

X 的精度保留小数点后4位:

sql

SQL> SELECT TO_CHAR(ST_ASTEXT(ST_QUANTIZECOORDINATES('POINT (123.456789123456 123.456789123456)'::GEOMETRY, 4)));

+------------------------------------------+
|                  EXPR1                   |
+------------------------------------------+
| POINT(123.456787109375 123.456787109375) |
+------------------------------------------+

X 的精度为负数 -2,保留最接近100:

sql

SQL> SELECT TO_CHAR(ST_ASTEXT(ST_QUANTIZECOORDINATES('POINT (123.456789123456 123.456789123456)'::GEOMETRY, -2)));

+--------------+
|    EXPR1     |
+--------------+
| POINT(96 96) |
+--------------+