使用Chaikin算法返回给定Geometry对象的平滑版本。

语法

geometry  ST_ChaikinSmoothing(geometry  geom , integer  nIterations , boolean  preserveEndPoints);

参数

参数名称 描述
geom 目标Geometry对象。
nIterations 迭代次数。最大值为5,默认为1。
preserveEndPoints 标志位,是否保留端点,默认为false。只对多边形有意义。

描述

  • 每次迭代顶点数将增加一倍。
    • 该函数在每个点之前和之后的线的1/4处放置新的顶点,并删除原始点。
    • 新点将为所有包含的维度(也包括z和m)插值。
  • 返回的Geometry对象将比原始对象具有更多的点。要减少点数,请对结果使用ST_SimplifyST_SimplifyVW等简化函数。

示例

不同迭代次数的效果对比:
select g,ST_ChaikinSmoothing(g,1),
             ST_ChaikinSmoothing(g,5)
       from (select 'LINESTRING(0 0,2 2,3 1,3.5 1.5,5 0,5.25 0.25,5.5 0)'::geometry as g) as t;
123