地理編碼常見問題

這份常見問題涵蓋 Geocoding API 特有的問題。有關 Google 地圖平台的常見問題,請參閱這份說明文件。另請參閱「地理編碼地址的最佳做法」。

疑難排解

疑難排解

透過地理編碼器,我收到更多傳回 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 功能 (同時提供 JavaScriptAndroidiOS 版本),而不要使用地理編碼。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_codecountry 限制。以下範例說明如何根據需要的結果來使用元件篩選。請務必將範例要求網址中的「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,並且使用 locationradius 指定可視區域,藉此 調整位置結果,就會產生含有美國多個城市名稱為「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