2013-01-17 283 views
2

我想有可能判斷一個GPS位置處於居住無人居住區。是否可以在Google地圖中獲得城市多邊界?

我嘗試了一些反向地理編碼服務,但所有這些服務都被證明是無用的,因爲他們選擇了最近的地址。 (我明白爲什麼會這樣,它是反向地理編碼的目的是有用的)

我在谷歌地圖注意到,當我搜索一個城市,他們的界限在紅色選擇虛線明確定義線。我會喜歡它使用這個,或類似的東西。

是否有任何可能的方式,Google地圖可以提供這樣的服務,或者可以解決我的問題的東西。

是否有任何其他網絡解決方案或數據庫,你知道可以給我這些信息?

或者,也許我可以使用任何反向地理編碼解決方案的一些參數(如限制搜索的大小)來確定位置是否或不在人口稠密地區?

回答

3

如果你找不到公共服務,那麼它會變得有趣,而且在開發工作方面會很昂貴。

公共數據(世界各地)只能從OpenStreetMap獲得,我認爲他們有這樣一個圖層(可以命名爲Land_use(農村等))這個圖層通常用於着色地圖,查看openstreet地圖網頁,如果你找到一個合適的着色,這對您的任務coresponds。 (例如看綠色,或灰色)。這些數據存儲在多邊形中,您可以從頂部提取這些多邊形(我假設它們有數百萬個)。十,你需要一個快速搜索空間索引,像一個區域Quadtree。

然後你做一個「點(經緯度)多邊形」調用,並獲得與你的位置相關的多邊形。

Probaly並非所有多邊形都適合主內存,因此您必須按需(例如按國家/地區)加載它們。

這種方法的一個變種是使用像postgres這樣的地理空間數據庫來存儲多邊形並進行數據庫查詢。

使用這種方法,大多數工作將從OpenStreetMap DB文件中提取多邊形。

更多acurate是來自TomTom的數據,但這些可能非常昂貴。

相關問題