经纬志
首页 / OpenLayers / 使用示例

Chaikin 曲线平滑

把折线的每个折角切掉一点,重复几次就得到顺滑曲线。

OpenLayers 10.3.1 · 更新 2026-10-28
源码与运行效果
运行效果

说明

Chaikin 是一种割角平滑:每段取 1/4、3/4 两个分割点连成新折线,重复若干次后折角被磨圆。OpenLayers 不内置该算法,直接对坐标数组迭代即可。

红线是原始折线,蓝线是平滑结果,红点是原始顶点。滑杆控制迭代次数,每轮顶点数大约翻倍,平滑越彻底偏离原始折线也越多。

要点

  • 端点固定不动,只处理中间线段。
  • 迭代超过四次视觉收益很小,顶点数却会翻十几倍。
  • lineString.setCoordinates() 自动触发重绘,不需要手动 changed()。

闭合环要连同首尾段一起处理,否则接缝处会留下一个尖角。