2011-11-08 134 views
1

我需要根據距離某個特定點的距離對一組地址進行排序。我有所有這些地址的經緯度,我正在找到與下面的Java代碼的距離。緯度經度對之間的距離精度

Double theDistance = (Math.sin(Math.toRadians(latA)) * 
       Math.sin(Math.toRadians(latB)) + 
       Math.cos(Math.toRadians(latA)) * 
       Math.cos(Math.toRadians(latB)) * 
       Math.cos(Math.toRadians(longA - longB)));  
      theDistance = (Math.toDegrees(Math.acos(theDistance))) * 69.09;\ 

但是,當我比較結果(我指的是排序順序(而不是實際的距離))與實際的谷歌地圖,它們不匹配。情況總是如此嗎?或者我不正確嗎?

我們發現對於谷歌/雅虎地圖Web服務有一些限制,因此我們不能在我們的應用程序中使用。

鑑於您有經度和緯度,找到兩個地址之間的距離的最佳方法是什麼?

+0

你比較直(井,彎曲)線距?或者當你查看它時,你正在尋找駕駛距離? :) – corsiKa

+0

我比較從我提到的公式得到的距離,我相信它給出直線距離,但我不知道。 – Greg

+0

當你轉換爲Radians時總會有精度損失,乘以69.09也無助於精確度。有幾個Stack Overflow問題完全一樣,其中大部分都顯示示例代碼。按照我的愚見,你會以最好的態度看待這些人。 – Ewald

回答

相關問題