首页 / Turf.js / API 文档
bezierSpline
先看结论
在不移动端点的前提下把折线变成顺滑曲线。
turf.bezierSpline(line, options) → Feature
参数
| 参数 | 类型 | 说明 |
|---|---|---|
line | LineString / Feature | 原始折线 |
options.resolution | number | 每段插值点数,默认 10000 |
options.sharpness | number | 0 到 1,越大越贴近原线 |
options.mutate | boolean | 原地修改 |
返回值
顶点数量大幅增加的 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)。