2011-08-05 24 views

回答

1

不幸的是沒有這樣簡單的常數。當你往北走時,經線之間的「步行距離」變得越來越小。如果你恰好在北極旁邊,你可以繞着它走一圈,幾乎沒有任何距離,但你仍然會觸摸到每一個長長的線。

你需要的是球體上兩點之間的great-circle distance

1

不知道你在做什麼。你想創建一個基於距離點的邊界框嗎?您是否正在尋找一種方法來計算新的緯度/經度,以距離爲單位計算經緯度?

您可以使用曼哈頓函數來獲得距離的近似值(實現lat/long基於近似地球的球體,並且真正計算這需要更多數學),使用forumla計算x和y值

曼哈頓功能:

sqrt(x*x + y*y) 

X和Y從緯度/經度:

x = 69.1 * (lat2 - lat1) 
y = 53 * (lon2 - lon1) 

不過,這方法是很容易出錯的。

還有大圓距離公式,需要使用一些trig,但它可能是值得的,因爲你可以在近似中得到相當不錯的誤差,具體取決於你開始在什麼部分的橢球體(例如lat/long) 。

看看這個頁面:

http://www.meridianworlddata.com/Distance-Calculation.asp

+1

PS:在南極洲的人有每一年中,他們通過所有24個時區運行「在世界各地的比賽」,在大約半公里的距離從南極。這就是爲什麼你不能使用常數的一個例子,因爲整場比賽可能是一兩公里,但在赤道附近,我相信大約4000公里。 – Kasapo

+0

我可以假設我不會用兩極來毀掉它。這是爲了找到兩點之間的距離。我有一個單一的點和一個半徑,並希望得到一個邊界框來環繞該區域...此時,我的用戶不會在乎它實際上是否返回東西5.7英里,當他們要求5(此時) –

+0

如果上述功能的半徑很小,絕對誤差也會很小。我會用它。你不能有一個常數來計算這個......除非你正在一個非常小的地理區域工作。儘管如此,我認爲你會發現你所在地區的最南端和北端的點之間會出現很多扭曲/誤差,即使很小。我不確定您可能會使用哪種GIS系統,但是如果您有權訪問(和使用)PostGIS和PostGreSQL(開源)技術,則可以執行查詢並使數據庫全部顯示出來。可能會爲你矯枉過正。 半徑查詢:http://tinyurl.com/35poqxr – Kasapo

相關問題