0

我希望能夠在Android設備上顯示地理地圖,並允許用戶能夠點擊地圖以選擇地理位置例如,如果我在芝加哥的Soldier Field,我的應用顯示Soldier Field周圍的區域,並且用戶在芝加哥邊界內的地圖上的某個地方點擊,我存儲地點名稱Chicago和它的座標。使用谷歌地圖Android API v2或谷歌地圖選擇器的地理位置選擇

我已經做的是實現PlacePicker來顯示錶示手機當前位置的地圖,然後允許用戶單擊地圖上的某個點或地圖上的顯示位置,然後存儲該點或地方。有了這個,我可以選擇代表地理位置的地方,但它可能非常笨拙。取決於縮放級別,「芝加哥」地點可能不會顯示在可見地圖上,我不想讓用戶滾動和縮放以找到它。我希望他們能夠在Soldier Field周圍的區域中選擇一個點,並讓應用程序識別出該點位於芝加哥的地理位置。

我不明白如何使用地圖和/或谷歌地圖API來識別地理點的層次結構(當你只有一個地理點時,你如何到達地理區域 - 在這種情況下一個城市或城鎮 - 這一點)。

在此先感謝您的幫助。

回答

1

當你只有一個地理點,你怎麼到 地理區域 - 在這種情況下,一個城市或城鎮 - 這點是 在

這就是所謂的反向-geocoding。

您可能會看看Nominatim(http://wiki.openstreetmap.org/wiki/Nominatim),它提供了基於openstreetmap數據的反向地理編碼API。該服務提供地址層次結構。

例如,對於位置你都引用 -

http://nominatim.openstreetmap.org/reverse?format=xml&lat=41.862749&lon=-87.615455&zoom=18&addressdetails=1

但請注意,結果取決於人羣來源OpenStreetMap的數據,並可以因地而異。例如。它可能會錯過城市/村莊,具體取決於相關區域的基礎數據有多好。

+0

謝謝。我正在尋找使用谷歌地圖apis爲Android而不是openstreetmap,但谷歌似乎有類似的反向地理編碼功能,我現在發現了幾個例子。我會看一看。 – ronbo4610

+0

一旦我知道這種類型的功能稱爲反向地理編碼,它非常簡單。我使用了android.location.Geocoder。謝謝。 – ronbo4610

+0

只要知道,作爲Google,一些智能機器人可能會檢測到特定的使用模式爲濫用,根據您可能永遠不會知道的標準:) http://stackoverflow.com/questions/8218764/android-geocoder-quota-limits – headuck