回答

1

文檔說明您不能在地址和組件過濾器中使用國家/地區。這樣做可能會導致不可預知的行爲。

https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

注:每個地址組件只能要麼在地址參數或者作爲組分濾波器中指定,但是不能同時使用。這樣做可能會導致ZERO_RESULTS。

所以,您的查詢應該是

https://maps.googleapis.com/maps/api/geocode/json?address=4321&components=country%3ALU&key=YOUR_API_KEY

不知道是什麼意思4321如果這是一個郵政編碼,我認爲這是谷歌從數據庫中丟失,因爲

https://maps.googleapis.com/maps/api/geocode/json?components=postal_code%3A4321%7Ccountry%3ALU&key=YOUR_API_KEY

返回ZERO_RESULTS。

+0

4321是盧森堡有效的郵編,我不知道爲什麼谷歌不認識它。這是他們的問題嗎? –

+0

您可以使用「報告問題」鏈接來提出數據問題。 https://support.google.com/maps/answer/162873 希望它有幫助! – xomena

0

不,你沒有犯任何大錯誤;你的API調用應該可以正常工作。我相信這是Google API的一個漏洞,但現在似乎已經修復了。 (當我去the url you asked about時,我得到了一個沒有提到美國的正確的JSON響應。)(如果你報告錯誤,也許你應該得到修復它的功勞!:)

有問題的原因最初是因爲Google不是地址驗證或標準化服務。解析很困難,原因很多:例如,可能會出現奇怪的拼寫或標點符號。 Google非常擅長解析搜索字詞。

但是,還有一個額外的問題:我們如何知道哪些部分匹配城市或州? 「格魯吉亞」是美國和一個國家的州。 「12 34 St Helena WA 85102」應該與「34街」相匹配還是名爲「聖赫勒拿」的道路?

地址驗證是指根據授權數據庫(如郵政局數據和國家記錄)檢查地址,從而導致與真實地點匹配。地址標準化意味着以郵政服務對其進行標準化的方式來格式化地址。

因此,您很可能會在將來遇到更多此類問題,特別是如果您使用的地址不明確。你可能想嘗試地址驗證服務,特別是如果你正在使用郵件和發貨。

公平披露:我是地址驗證公司SmartyStreets的僱員。