可能重复:
How do I calculate distance between two latitude-longitude points?
如何计算JavaScript中地理位置之间的距离(以米为单位)?我发现了这个answer,但它是用Java实现的,我真的不明白发生了什么。
我正在使用HTML 5的地理位置功能并使用JavaScript来计算距离。直到现在我有这个功能:
function calculateDistance(lat1, lat2, lng1, lng2)
{
return Math.sqrt(((lat1 + lat2)*(lat1 + lat2)) + ((lng1 + lng2)*(lng1 + lng2)));
}
显然这不是我要求的价值。请有人帮帮我吗?
答案 0 :(得分:1)
var R = 6371; // Earth radius in km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
这不是我的代码。它来自:http://www.movable-type.co.uk/scripts/latlong.html 请查看链接以获取详细信息。
答案 1 :(得分:0)