地理編碼常見問題

這份常見問題主要針對 Geocoding API。有關 Google Maps Platform 的常見問題,請參閱Google Maps Platform 常見問題。另請參閱「地理編碼地址最佳做法」。

疑難排解

疑難排解

我發現地理編碼器傳回 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 (舊版) 時,這些 API 會使用與 Geocoding API 相同的後端,先將地址轉換為地點 ID,再計算路線。Place Autocomplete 的速度比地址地理編碼快。如果應用程式在高度延遲敏感的情況下使用 Directions API (舊版) 或 Distance Matrix API (舊版),例如回應使用者輸入內容,建議您使用 Place Autocomplete 取得與這些地址對應的地點 ID,然後將地點 ID 傳遞至 Directions API (舊版) 或 Distance Matrix API (舊版)。這個方法可大幅減少延遲。如需如何搭配路線規劃使用 Place Autocomplete 的範例,請參閱我們的 說明文件。

如何回報地理編碼器中的錯誤?

如果您對正向地理編碼器服務有任何 錯誤報告或 功能要求,請透過公開的 Issue Tracker 告知我們。

地理編碼器無法為我的用途產生良好的結果。Google 提供哪些協助?

請透過公開的 Issue Tracker與我們分享一些具體查詢,以便我們調查是否有任何錯誤或系統性問題導致結果品質不佳,或是否可以對最佳做法指南進行任何變更,協助開發人員取得更好的結果。

如何使用元件篩選功能,讓地理編碼器發揮最佳效果?

在地理編碼器中, 元件篩選只會強制執行 postal_code 和 country 限制。以下範例說明如何根據所需結果,以最佳方式使用元件篩選功能。在範例要求網址中,請務必將「YOUR_API_KEY」替換成實際的 API 金鑰。

  • 如要將郵遞區號限制在特定國家/地區,請務必使用 ISO 3166-2 國家/地區代碼指定國家/地區限制。舉例來說: components=country:CH|postal_code:8000 會傳回「8000 Zürich, Switzerland」。
    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 的地理編碼會傳回德國法蘭克福的 Gallus 子地區。這是因為系統不支援法國的 3 字母國家/地區代碼 (FRA),因此允許任何國家/地區的結果,而法蘭克福的結果比法國的任何結果都更合適。
      https://maps.googleapis.com/maps/api/geocode/json?components=country:FRA%7Clocality:gallus&key=YOUR_API_KEY
  • 對於模稜兩可的查詢,Geocoding API 不一定會傳回多個結果。這類查詢更適合由 Place Autocomplete 回答。

    範例:

    • 「Madrid」的地理編碼會傳回「Madrid, NM 87010, USA」,但不會傳回美國境內其他名為「Madrid」的城市。components=country:US|locality:madrid
      https://maps.googleapis.com/maps/api/geocode/json?components=country:US%7Clocality:madrid&key=YOUR_API_KEY
    • 使用 Place Autocomplete 服務的 input=madrid&components=country:us&types=(regions),並使用 location 和 radius 指定可視區域, 調整地點結果,會產生回應,其中包含美國境內多個名為「馬德里」的城市。
      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