ST_QuantizeCoordinates

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

语法

geometry  ST_QuantizeCoordinates (geometry  g , int  precX , int  precY , int  precZ , int  precM);

参数

参数名称

描述

g

目标Geometry对象。

precX

X的精度(小数点后的指定位数)。

precY

Y的精度(小数点后的指定位数)。

precZ

Z的精度(小数点后的指定位数)。

precM

Z的精度(小数点后的指定位数)。

描述

  • ST_QuantizeCoordinates将小数点后除N个最高有效位以外的所有位数都设置为零。

    • 所得的坐标值仍将取整为原始值,但可压缩性得到改善。如果几何列使用的是可压缩存储类型,则可以大大减少磁盘使用。

    • 在内存中的Geometry对象的大小不受影响。

  • 未指定的精度将假定与X的精度一致。

  • 指定负数的精度将被解释为引用小数点左边的数字。

    说明

    例如precX = -2会将坐标值保留到最接近的100。

  • 此功能不影响Geometry对象之间现有的拓扑关系。

  • 当函数以比源对象固有精度低的位数调用时,可能会产生无效的Geometry对象。

示例

SELECT ST_AsEWKT(ST_QuantizeCoordinates(ST_GeomFromText('POINT(1.123456 1.123456)'),4));
                st_asewkt
------------------------------------------
 POINT(1.12345123291016 1.12345123291016)
(1 row)