2014-05-22 98 views
5

我不是一個編碼員或程序員,但我僱了一個人爲我這樣做。我也不會當它涉及到計算機的功能完全天真......使用Google Maps API的最近城市

我正被開發,這是不可能的反向地理在谷歌地圖API,並讓它準確地返回正確的城裏述說。我不相信這一點,因爲我看到api會返回格式化的地址。開發人員說,他們只能從API中拖出一個字段,並且由於城市名稱位於地區字段或鄰居字段中,因此他們無法確定要將哪個字段用於不同的座標。這些是真實的陳述嗎?

我也被告知,當座標存在過水(主要是在海洋)最近的城市反向地理編碼,是不可能的。例如,聖地亞哥正西方5英里處的座標是否真的不可能讓聖地亞哥成爲最近的城市?

我搜索過這裏的解決方案,並發現了一些與此相關的,這是我轉發給開發者...但我希望藉此確切線索,並顯示它給他們。 Google Maps API確實無法實現這些功能嗎?

謝謝你的幫助!

+11

我爲你僱用的那個人感到不好。 :) – DaImTo

+3

[**點擊水並查看地理編碼-結果**](http://gmaps-samples-v3.googlecode.com/svn/trunk/geocoder/v3-geocoder-tool.html) –

+0

@Dr .Molle,它在水中沒有返回結果。 – user3663613

回答

7

查找本文檔中的谷歌地圖的JavaScript API在reverse geocoding,進行了詳細描述如何將座標轉換成一個可讀的地址。

你的第一條語句是一種真實:

如有必要,你可以閱讀從陣列中各個領域的地理編碼的結果。如果address_components陣列在types中有一個元素locality,則城市名稱是其中的一部分。但它是不是確保始終存在此元素或包含所需的元素。看一下上面鏈接中的類型,這可能是響應的一部分。當你說你必須搜索元素neighborhoodlocality時,聽起來我想強制一個特定的名字。這幾乎不可能確定。

第二個語句,關於最近的城市是真的。以下是來自文檔的聲明:

反向地理編碼不是一門精確的科學。地理編碼器將嘗試 以在特定公差內找到最接近的可尋址位置。

沒有什麼說這個耐性的尺寸。您在聖地亞哥以西5英里的示例可以返回聖地亞哥,北太平洋或聖地亞哥縣科羅納多的數據。

相信你的開發者!

編輯:這取決於你想做什麼。如果你總是想要你的請求中的城市名稱,忘記它,你不能保證。

有一些郵政編碼的API在這個answer描述。但是,你必須以某種方式獲得Zipcode,並且postal_code並不總是響應的一部分。沒有其他可以將座標轉換爲可讀地址的API,例如地理編碼。但是有一些在那裏列出here

+0

因此,Google Maps API中沒有辦法拉動城市停車位?這對我來說似乎是不可能的,但是當不止一個人告訴我某件事時,我很難相信,我傾向於更加開放。那麼有沒有其他的選擇? Zipcoode查找?不同的API? – user3663613

+0

@ user3663613看我的編輯。 –

0

有可能實現你想要的。我想大多數人都試圖讓Google爲他們做這些工作,這就是爲什麼找到解決方案很棘手的原因。

你想要就近的城市。所有你需要做的是查詢座標。如果存在地址類型「地點」,那就是你的城市。如果沒有,請爲附近的地點提出新的請求並重復,直到找到具有「地點」的結果。

根據您使用來搜索周圍的初始點,你可以調整精度,你需要找到答案的請求量的算法。

相關問題