使用js如何计算两个经纬度之间的距离
时间: 2024-01-31 18:04:01 浏览: 140
可以使用 Haversine 公式来计算两个经纬度之间的距离。
以下是使用 JavaScript 实现 Haversine 公式的示例代码:
```javascript
function getDistance(lat1, lon1, lat2, lon2) {
const R = 6371; // 地球半径(单位:千米)
const dLat = deg2rad(lat2 - lat1);
const dLon = deg2rad(lon2 - lon1);
const a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(deg2rad(lat1)) *
Math.cos(deg2rad(lat2)) *
Math.sin(dLon / 2) *
Math.sin(dLon / 2);
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
const distance = R * c; // 距离(单位:千米)
return distance;
}
function deg2rad(deg) {
return deg * (Math.PI / 180);
}
const distance = getDistance(31.2304, 121.4737, 39.9042, 116.4074);
console.log(distance); // 输出:1068.4991233222723 千米
```
上述代码中,`getDistance` 函数接收四个参数,分别表示两个经纬度的纬度和经度。函数内部通过 Haversine 公式计算出两个经纬度之间的距离,并返回距离值(单位为千米)。`deg2rad` 函数用于将角度转换为弧度。
在示例代码中,我们计算了上海和北京之间的距离,结果为 1068.5 千米。
阅读全文