2010-07-20 32 views
1

我一直在問我是否可以創建一個網站,像這樣的距離:如何計算2個地方

我很好奇,到我將如何計算地點之間的距離。例如,如果我要以明尼阿波利斯的系統形式輸入美元賬單,然後該賬單由洛杉磯的另一個用戶輸入,那麼我將如何計算多少英里?

我已經看了一下谷歌地圖API,但是我沒有看到關於計算距離的任何信息。

+0

您想要像烏鴉或路由距離嗎? – CrazyEnigma 2010-07-21 14:30:20

回答

1

谷歌地圖API具有功能找到這個。

GLatLng.distanceFrom() 
1

取兩個位置的GPS座標,然後使用球面上兩點之間的formula for finding distance?那將是那種與烏鴉蒼蠅的距離。如果你想要最短的駕駛距離,那就不一樣了。

+0

那麼地球是一個扁球體而不是球體。它壓在兩極。因此,要獲得更準確的結果,您需要使用Vincenty公式計算兩個緯度/經度點之間的距離。 – 2013-12-23 23:21:28

1

你想要的是兩個緯度/經度點之間距離的Vincenty公式的JavaScript實現。

http://www.movable-type.co.uk/scripts/latlong-vincenty.html

這是很簡單的,然後在谷歌地圖實現,如果需要,取兩個經緯度座標作爲參數。

例如,爲了獲得距離點擊地圖上的最後兩個點之間:

// requires distVincenty method from www.movable-type.co.uk/scripts/latlong-vincenty.html 
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
lastClickLatLng = false; 
google.maps.event.addListener(map, 'click', function (event) { 
    if (lastClickLatLng) { 
     var myDistance = distVincenty(lastClickLatLng.lat(), lastClickLatLng.lng(), event.latLng.lat(), event.latLng.lng()); 
     // Do something with myDistance! 
    } 
    lastClickLatLng = event.latLng; 
}); 
1

偉業東的響應是完美的一個‘直線距離’計算。 但是,如果您想通過步行或駕車知道距離,請使用Google的路線API - http://code.google.com/apis/maps/documentation/directions/

+0

我剛纔看到你正在尋找「像烏鴉一樣飛快」的董先生走的路。 – 2010-07-23 01:56:01