首页 / Turf.js / 使用示例
两点测距
点击图上两个位置,得到两点间的球面距离。 同一个结果同时以公里和米输出,便于确认单位换算没有出错。
源码与运行效果
说明
画布是 SVG,坐标用等距圆柱近似映射,只负责显示位置;
距离本身由 Turf 在球面上计算,与画布比例无关。
点击产生的屏幕坐标要先反算回经纬度,再交给
turf.point。第三次点击开始重新取点。
| 环节 | 处理方式 |
|---|---|
| 取点 | 点击位置按画布缩放反投影,再限制在演示范围内 |
| 测距 | turf.distance(a, b, { units: 'kilometers' }) |
| 展示 | 公里保留两位,米取整,两者来自同一次调用 |
反投影得到的经纬度可能因画布留白而落到范围之外,
所以点击后要按边界裁剪。裁剪不是地理问题,而是交互健壮性问题:
没有它,点一下页面边缘就可能算出距离为零或 NaN。