经纬志
首页 / Turf.js / API 文档

bezierSpline

先看结论

在不移动端点的前提下把折线变成顺滑曲线。

最后验证 2026-11-03 · Turf.js 7.x · 更新 2026-10-27 · 引用本文
turf.bezierSpline(line, options) → Feature

参数

参数类型说明
lineLineString / Feature原始折线
options.resolutionnumber每段插值点数,默认 10000
options.sharpnessnumber0 到 1,越大越贴近原线
options.mutateboolean原地修改

返回值

顶点数量大幅增加的 LineString,端点位置保持不变。

示例

var road = turf.lineString([
  [116.30, 39.90], [116.36, 39.93], [116.41, 39.90], [116.48, 39.94]
]);

var smooth = turf.bezierSpline(road, { resolution: 400, sharpness: 0.85 });
console.log(smooth.geometry.coordinates.length);

参数取舍

resolution 是每段的总点数,不是每公里点数。 折线顶点少时调高它才有意义;顶点已经很密时,插值只会让数据更重。

长度变化

曲线比折线略长,差值随 sharpness 降低而增大。 用于里程计算前,先确认是按几何长度还是按原始里程。

平滑不修正拓扑。折线自相交时,曲线仍然自相交, 只是交点位置变了。需要去掉自相交,走另一套拓扑修复流程。

引用本文

经纬志(2026)。《bezierSpline》。https://www.jingweizhi.com/turf/api/bezier-spline.html(访问日期 2026-11-03)。