這份常見問題涵蓋 Geocoding API 特有的問題。有關 Google 地圖平台的常見問題,請參閱這份說明文件。另請參閱「地理編碼地址的最佳做法」。
疑難排解
- 透過地理編碼器,我收到更多傳回 ZERO_RESULTS 的查詢,這是怎麼回事?
- 我需要快速回應,且地理編碼器對應用程式來說太慢。我可以使用哪些提高回應速度?
- 如何減少 Directions API 和 Distance Matrix API 的延遲情形?
- 我是付費方案客戶,而且 Places API 太昂貴,該怎麼辦?
- 如何回報地理編碼器中的錯誤?
- 地理編碼器無法針對我的用途產生良好的結果。可以提供哪方面的協助?
- 如何使用元件篩選讓地理編碼器取得最精確的結果?
疑難排解
- 透過地理編碼器,我收到更多傳回 ZERO_RESULTS 的查詢,這是怎麼回事?
-
在地理編碼器中,模糊、不完整且格式錯誤的查詢 (例如拼字錯誤或不存在的地址) 通常很容易產生 ZERO_RESULTS。 如果找不到該地址,ZERO_RESULTS 可以優先傳回部分結果,例如只傳回郊區,以取代地址。
如果您的應用程式會處理使用者輸入的地址,Places API 中的 Place Autocomplete 功能可以產生更優質的結果。Place Autocomplete 服務可讓使用者根據輸入的內容,從一組相符的結果中選擇,方便使用者選擇名稱相近的結果,並在拼錯地址時調整查詢。
如果您的應用程式要處理模糊或不完整的查詢或含有錯誤的查詢,建議您使用 Places API 的 Place Autocomplete 功能,而不要使用 Geocoding API 提供的轉送地理編碼器。詳情請參閱「 地理編碼地址的最佳做法」和「 Google Maps API 網誌文章中的地址地理編碼」一文。
- 我需要快速回應,而且地理編碼器對應用程式而言太慢。我可以使用哪些提高回應速度?
-
如果應用程式會回應使用者輸入內容,因此受到高度延遲時間影響,建議使用 Places API 中的 Place Autocomplete 功能 (同時提供 JavaScript、Android 或 iOS 版本),而不要使用地理編碼。Place Autocomplete 功能經過最佳化,適合用於互動,因此延遲時間極短。
Geocoding API 的地址地理編碼最適合使用完整、明確且格式化的地址 (例如在線上表單中輸入的運送地址),因此延遲時間會比 Place Autocomplete 更長。前段地理編碼器的涵蓋範圍更廣,結果品質也較佳,但延遲時間較長。
- 如何減少 Directions API 和 Distance Matrix API 的延遲時間?
-
請使用地點 ID (而非地址) 指定路線控點、起點和目的地。建議您從 Places API 的 Place Autocomplete 功能或 Maps JavaScript API 的 Places Library 中取得地點 ID。另請參閱
placeIdOnly
選項的相關資訊,瞭解如何降低 Place Autocomplete 費用。透過地址字串 (而非地點 ID 或經緯度) 進行 Directions API 或 Distance Matrix API 進行查詢時,兩者會使用與 Geocoding API 相同的後端,在計算路線前先將該地址轉換為地點 ID。Place Autocomplete 比地址地理編碼更快。如果應用程式使用 Directions API 或 Distance Matrix API 時必須易受延遲時間影響 (例如回應使用者輸入內容),建議您使用 Place Autocomplete 取得對應地址的地點 ID,並將地點 ID 傳遞至 Directions API 或 Distance Matrix API。這個方法可大幅縮短延遲時間。請參閱我們的說明文件,瞭解 如何搭配路線使用 Place Autocomplete 功能。
- 如何回報地理編碼器中的錯誤?
-
如果你有任何前瞻地理編碼器服務的 錯誤報告或 功能要求,請透過公開的 Issue Tracker 告訴我們。
- 地理編碼器無法針對我的用途產生良好的結果。需要協助嗎?
-
請透過這份公開的 Issue Tracker 告訴我們,並分享幾個特定查詢,以便協助我們調查是否存在任何錯誤或系統性問題,導致結果品質有問題。或者,也可以參考最佳做法指南,協助開發人員取得更好的結果。
- 如何使用元件篩選讓地理編碼器取得最精確的結果?
-
在地理編碼器中, 元件篩選只會強制執行
postal_code
和country
限制。以下範例說明如何根據需要的結果來使用元件篩選。請務必將範例要求網址中的「YOUR_API_KEY」改成實際的 API 金鑰。- 如要將郵遞區號限制在特定國家/地區,請務必使用 ISO 3166-2 國家/地區代碼來指定國家/地區限制。舉例來說,
components=country:CH|postal_code:8000
會傳回「8000 蘇黎世, 瑞士」。https://maps.googleapis.com/maps/api/geocode/json?components=country:CH%7Cpostal_code:8000&key=YOUR_API_KEY
- 如要將查詢範圍限制在特定國家/地區,請務必使用 ISO 3166-2 國家/地區代碼來指定國家/地區限制。國家/地區名稱和其他縮寫不保證能產生與國家/地區代碼相同的結果。
示例:
components=country:FRA|locality:gallus
的地理編碼會傳回德國中富蘭克福這是因為系統不支援以 3 個英文字母組成的法國國家/地區代碼 (FRA),因此可以在任何國家/地區顯示,因此法蘭克福結果比法國任何國家/地區都更合適。https://maps.googleapis.com/maps/api/geocode/json?components=country:FRA%7Clocality:gallus&key=YOUR_API_KEY
- Geocoding API 不一定會傳回模糊查詢的多個結果。有了 Place Autocomplete 功能,您就能得到更好的回應結果。
示例:
components=country:US|locality:madrid
的地理編碼會傳回「Madrid, NM 87010, USA」,但美國的其他城市都沒有名為「Madrid」的名稱。https://maps.googleapis.com/maps/api/geocode/json?components=country:US%7Clocality:madrid&key=YOUR_API_KEY
- 如果在
input=madrid&components=country:us&types=(regions)
中使用 Place Autocomplete,並且使用location
和radius
指定可視區域,藉此 調整位置結果,就會產生含有美國多個城市名稱為「Madrid」的回應。https://maps.googleapis.com/maps/api/place/autocomplete/json?location=37.386052,-122.083851&radius=10000&input=madrid&components=country:us&types=(regions)&key=YOUR_API_KEY
- 如要將郵遞區號限制在特定國家/地區,請務必使用 ISO 3166-2 國家/地區代碼來指定國家/地區限制。舉例來說,