vue中计算两个经纬度坐标之间的距离
时间: 2023-11-09 22:07:02 浏览: 207
可以使用 Haversine 公式来计算两个经纬度坐标之间的距离。Haversine 公式基于球面三角形的一些性质,可以近似计算地球上两点之间的直线距离。
以下是使用 Haversine 公式计算两个经纬度坐标之间距离的 Vue 代码示例:
```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 d = R * c; // 距离,单位为公里
return d;
}
// 将角度转换为弧度
function deg2rad(deg) {
return deg * (Math.PI / 180);
}
// 示例:计算北京和上海之间的距离
const distance = getDistance(39.9042, 116.4074, 31.2304, 121.4737);
console.log(distance); // 输出结果:1068.3100608591576
```
在上面的代码中,`getDistance` 函数接受四个参数:`lat1`、`lon1`、`lat2` 和 `lon2`,分别代表两个经纬度坐标的纬度和经度。该函数先将两个经纬度坐标转换为弧度,然后根据 Haversine 公式计算两点之间的距离。最后,函数返回距离,单位为公里。
可以将上面的代码用于 Vue 项目中,例如在组件的方法中调用 `getDistance` 函数来计算两个经纬度坐标之间的距离。
阅读全文