2017-04-21 140 views
3

我有一个计算函数和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; 
+0

您的文章需要更多的信息来回答。你在寻找两点之间的直线距离(如乌鸦)? – Tom

+0

是的,空中距离,没关系我得到它的工作,无论如何谢谢你先生 – dbzabuse

回答

1

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

尝试在你的计算功能如下

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

的console.log(距离);

注:

距离的默认值是米。

+0

非常感谢,作品像一个魅力! – dbzabuse

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)) 
}