将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的精度一致。
  • 指定负数的精度将被解释为引用小数点左边的数字。
    说明 例如prec_x = -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)