2010-09-09 82 views
0

我的應用程序給出了一個Geocorrdinates列表,現在我必須確定哪些座標位於已定義區域內。例如,搜索將定義爲:顯示100個座標位於1平方公里區域內的所有區域。因此,我必須找出哪些座標在1平方公里的區域內並且多於100個。 但是,對於我對地理座標的理解,這似乎是一項艱苦的工作,我希望有人能夠幫助我。如何確定哪些地理座標位於已定義的區域內?

緯度座標是一致的,兩度之間的距離是111km。例如N50,985°和N50,995°之間的距離爲1,11km。兩個經度座標之間的距離不是那麼容易,取決於緯度座標。但是說實話,我真的不知道如何開始。

有人有一個想法,可以幫助我嗎?

謝謝

twickl

回答

0

你需要的是一個地理空間數據庫,我建議你的PostgreSQL在PostGIS。它提供了你需要計算這種東西的功能。也搜索關於它的好教程。一個例子是半徑搜索,如「讓我住在我住的10公里範圍內的所有麥當勞」

+0

呃,問題是這必須在iPad/iPhone /移動設備上運行而不連接到後端。必須有一種方法來過濾座標,以便了解哪些座標是在一個定義的區域中:(我希望我的問題很清楚,我不需要知道哪些位於特定區域,但哪些位於哪個區域一起在1平方公里的區域 – CaptnCrash 2010-09-09 14:15:06

+0

是否必須是「正方形/直角/多邊形」?因爲做半徑搜索會容易得多!就像「哪些點最遠離我離開x公里?」也可以做km^2,但也有一個圓,如果你有4平方公里^這將是一個半徑爲sqrt(4平方公里/ pi)的圓,如果你有一組點,嘗試用盡可能少的微積分操作儘可能地消除它,然後遍歷其餘部分,檢查歐氏距離是否小於或等於半徑,這可能相當精確到幾百甚至上千英里;) – sled 2010-09-09 14:45:15

+0

這裏有一個很好的公式來計算兩個WGS84座標之間的距離,http://www.movable-type.co.uk/腳本/經緯度,vincenty.html – sled 2010-09-09 14:47:38

0

如果擁有數據庫的問題僅僅是你不想託管它(或支付某人託管它),那麼我建議Fusion Tables

我不知道它是否支持您正在尋找的功能,但是我想你可以選擇一個隨機點並對該點範圍內的所有內容進行計數。

我認爲你在說什麼可能是一個相當的cpu密集型任務(取決於你想要的準確度)。不是我親自嘗試卸載到便攜式設備上的東西。

相關問題