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