首页 / Turf.js / 使用示例
计算长度
一条带四个拐点的巡查路线。总里程与逐段里程分别给出, 两者相加应当一致,这是最省事的自检方式。
源码与运行效果
说明
总长直接用 turf.length,逐段长度对相邻两点调
turf.distance。图中标注的数字是公里,
底部按段列出保留三位小数的结果。
var total = turf.length(route, { units: 'kilometers' });
var segs = route.geometry.coordinates.slice(1).map(function (c, i) {
var prev = route.geometry.coordinates[i];
return turf.distance(turf.point(prev), turf.point(c), { units: 'kilometers' });
});
折线越长、拐点越多,length 与逐段求和之间的浮点误差越明显,
但通常在小数点后十位以外,展示层可以忽略。
| 项目 | 数值 | 说明 |
|---|---|---|
| 总里程 | 约 21 km | 球面距离逐段累加 |
| 段数 | 4 | 五个拐点之间的四段 |
| 最长段 | P3 → P4 | 约 6 km,跨度最大 |
地图上直接量出的长度通常比这里的结果长几公里, 因为量测工具在 Web 墨卡托平面内计算,长度随纬度被放大。 对账前先确认双方用的是球面还是平面距离。