2017-04-21 111 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)) 
} 
相關問題