如何计算两点之间的距离?

时间:2017-04-21 16:57:35

标签: javascript api maps

我有一个计算函数和latlng值,但我如何计算第一个和最后一个之间的距离?

 function calculate() {
         //poo abbreviation for point of origin not poo=shit
         var poolat = locations[0].lat;
         var poolng = locations[0].lng;
         var destlat = locations[locations.length - 1].lat;
         var destlng = locations[locations.length - 1].lng;

3 个答案:

答案 0 :(得分:3)

此问题已在此处得到解答:Calculate distance between two latitude-longitude points? (Haversine formula)

请注意,Haversine公式假设一个完美的球体,而不是地球的球体。

答案 1 :(得分:1)

有两种方法,你可以使用Haversine公式,这需要更多的输入,或者你可以使用API​​。

在计算功能中尝试以下操作

var distance = google.maps.geometry.spherical.computeDistanceBetween(
    new google.maps.LatLng(poolat, poolng), 
    new google.maps.LatLng(destlat, destlng)
);

的console.log(距离);

注意:

距离的默认值以米为单位。

答案 2 :(得分:0)

试试这个。内置的数学函数使其更容易

function calculate() {
     //poo abbreviation for shit
     var poolat = locations[0].lat;
     var poolng = locations[0].lng;
     var destlat = locations[locations.length - 1].lat;
     var destlng = locations[locations.length - 1].lng;

     return Math.sqrt(Math.pow((destlat - poolat),2) + Math.pow((destlng - poolng),2))
}