经纬志
首页 / Turf.js / 使用示例

计算长度

一条带四个拐点的巡查路线。总里程与逐段里程分别给出, 两者相加应当一致,这是最省事的自检方式。

Turf.js 7.x · 更新 2026-10-27
源码与运行效果
运行效果

说明

总长直接用 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 墨卡托平面内计算,长度随纬度被放大。 对账前先确认双方用的是球面还是平面距离。