在JavaScript中计算两个地理坐标之间的距离

时间:2013-01-23 17:07:39

标签: javascript

  

可能重复:
  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)));
    }

显然这不是我要求的价值。请有人帮帮我吗?

2 个答案:

答案 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)

也许this可以提供帮助,此answer也很有帮助。