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

两点测距

点击图上两个位置,得到两点间的球面距离。 同一个结果同时以公里和米输出,便于确认单位换算没有出错。

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

说明

画布是 SVG,坐标用等距圆柱近似映射,只负责显示位置; 距离本身由 Turf 在球面上计算,与画布比例无关。 点击产生的屏幕坐标要先反算回经纬度,再交给 turf.point。第三次点击开始重新取点。

环节处理方式
取点点击位置按画布缩放反投影,再限制在演示范围内
测距turf.distance(a, b, { units: 'kilometers' })
展示公里保留两位,米取整,两者来自同一次调用

反投影得到的经纬度可能因画布留白而落到范围之外, 所以点击后要按边界裁剪。裁剪不是地理问题,而是交互健壮性问题: 没有它,点一下页面边缘就可能算出距离为零或 NaN。