2010-11-14 165 views
1

假設這4個值:如何使用緯度和經度計算距離和方位?

 double lat1 = ToRadians(53.14722222222222); 
     double lon1 = ToRadians(-1.8494444444444447); 
     double lat2 = ToRadians(52.20444444444445); 
     double lon2 = ToRadians(-0.14055555555555554); 

我在谷歌地圖獲取路線計算,我得到了181公里,但在這個網站(http://www.movable-type.co.uk/scripts/latlong .html)它大約有170公里。

在我的源代碼中,我使用java和c#來實現這個功能,當我計算它時,我得到了大約155公里。

他們爲什麼不相等?

你有任何可以準確計算出這2個值的函數嗎?

回答

1

網站上的Haversine公式是合理準確的,就像「烏鴉飛」一樣。你不會說你如何使用谷歌地圖來計算距離,但是如果你只是簡單地輸入數值並要求它計算一條路線,那麼它將使用更長的駕駛距離(跟隨道路)。如果您的Haversine公式的實現出現與網站不同的答案,那麼您或他們實施的方式不正確。你可能會發現another web site檢查你的答案,看看哪個。

您可以在C#here中找到實現。

0

在Google地球上,值爲155.92km。 所以它同意你的結果。

Google地球使用Great Circle Distance計算,該計算考慮到地球是球體的事實。 雖然我不知道其他兩個來源。

我會保持你目前的實施。

相關問題