0

可能重复:
如何计算两个经纬度点之间的距离?

如何计算 JavaScript 中地理位置之间的距离(以米为单位)?我找到了这个答案,但它是用 Java 实现的,我并没有真正理解发生了什么。

我正在使用 HTML 5 的地理位置功能并使用 JavaScript 来计算距离。直到现在我有这个功能:

    function calculateDistance(lat1, lat2, lng1, lng2)
    {
        return Math.sqrt(((lat1 + lat2)*(lat1 + lat2)) + ((lng1  + lng2)*(lng1  + lng2)));
    }

显然这不是我需要的值。有人可以帮我吗?

4

2 回答 2

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 查看链接了解详情。

于 2013-01-23T17:10:20.357 回答
0

也许会有所帮助,这个答案也可能会有所帮助。

于 2013-01-23T17:11:28.003 回答