微信小程序 已知两个坐标,计算距离算法
已知两个坐标,计算距离算法:
function getDistance(lat1, lon1, lat2, lon2) {
const rad = (angle) => angle * Math.PI / 180.0;
const earthRadius = 6371; // 地球半径,单位公里
const dLat = rad(lat2 - lat1);
const dLon = rad(lon2 - lon1);
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(rad(lat1)) * Math.cos(rad(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return earthRadius * c; // 返回距离,单位公里
}
// 示例:计算两点距离
const distance = getDistance(39.9042, 116.4074, 31.2304, 121.4737);
console.log(distance); // 输出距离