微信小程序 已知两个坐标,计算距离算法
已知两个坐标,计算距离算法:
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); // 输出距离