Js 根据两个坐标点计算出两点的距离千米
时间: 2024-11-04 07:11:09 浏览: 27
在JavaScript中,如果你有两个经纬度坐标点,通常是以度数表示的,你可以使用Haversine公式来计算这两个点之间的大圆距离,进而转换成公里。这个公式考虑了地球并非完美的球体形状,它是一个椭球体。
以下是计算两个经纬度点之间距离的一个通用函数示例:
```javascript
function getDistanceInKm(lat1, lon1, lat2, lon2) {
const R = 6371; // 地球平均半径,单位是公里
const dLat = (lat2 - lat1) * Math.PI / 180;
const dLon = (lon2 - lon1) * Math.PI / 180;
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R * c;
}
// 使用示例:
const distanceKm = getDistanceInKm(39.9042, 116.4074, // 北京的纬度和经度
51.5074, -0.1278); // 伦敦的纬度和经度
console.log(distanceKm);
```
这里的参数`lat1`, `lon1`, `lat2`, `lon2`分别代表第一个点和第二个点的纬度和经度。注意,结果会直接给出千米值。
阅读全文