地理編碼常見問題

這份常見問題清單涵蓋 Geocoding API 相關問題。如要瞭解 Google 地圖平台的常見問題,請參閱 這份說明文件。另請參閱地理編碼地址的最佳做法

疑難排解

疑難排解

我發現越來越多查詢會透過地理編碼器傳回 ZERO_RESULTS。發生什麼事?

在 Geocoder 中,含糊不清、不完整且格式不正確的查詢 (例如拼錯或不存在的地址) 很容易產生 ZERO_RESULTS。如果找不到地址,請使用 ZERO_RESULTS,而非部分結果 (例如只傳回郊區,而非地址)。

如果您的應用程式會處理使用者輸入的地址,Places API 中的 Place Autocomplete 功能可能會產生品質較佳的結果。Place Autocomplete 可讓使用者根據輸入內容,從一組結果中選取,讓使用者選擇名稱相似的結果,並在拼錯地址時調整查詢。

如果您的應用程式需要處理含糊或不完整的查詢,或可能含有錯誤的查詢,建議您使用 Places API 中的 Place Autocomplete 功能,而非 Geocoding API 中的正向地理編碼器。詳情請參閱「 地理編碼地址的最佳做法」和「 Google 地圖 API 網誌文章中的地址地理編碼」。

我需要快速回應,但地理編碼器對我的應用程式來說太慢。我可以使用哪些功能加快回應速度?

建議您使用 Places API 中的 Place Autocomplete 功能 (也適用於 JavaScriptAndroidiOS),而非地址地理編碼,以便回應使用者輸入內容,並確保延遲時間符合要求。Place Autocomplete 經過最佳化處理,可用於互動式使用,因此延遲時間非常短。

Geocoding API 中的地址地理編碼功能經過最佳化處理,可用於完整、明確且格式正確的地址,例如輸入至線上表單的寄送地址,因此延遲時間會比 Place Autocomplete 更長。前向地理編碼器涵蓋範圍更廣,結果品質也較佳,但延遲時間較長。

如何降低 Directions API 和 Distance Matrix API 的延遲時間?

請使用地點 ID 而非地址,指定中途站、起點和目的地。取得地點 ID 的最佳方式,是使用 Places API 中的 Place Autocomplete 功能,或是 Maps JavaScript API 中的 Places Library。如要降低 Place Autocomplete 的使用費用,請參閱 placeIdOnly 選項的相關資訊。

當您使用地址字串 (而非地點 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 的範例,請參閱我們的說明文件

如何回報 Geocoder 中的錯誤?

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

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

請透過我們的公開 問題追蹤器與我們分享幾個特定查詢,以便我們調查是否有任何錯誤或系統性問題導致結果品質出現問題,或是我們是否可以對最佳做法指南進行任何變更,以協助開發人員取得更優質的結果。

如何使用元件篩選器,讓地理編碼器提供最佳結果?

在地理編碼器中, 元件篩選功能只會強制執行 postal_codecountry 限制。以下範例說明如何根據所需結果,最佳運用元件篩選功能。在範例要求網址中,請務必將 `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
  • 對於含糊不清的查詢,地理編碼 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
    • 將 Place Autocomplete 用於 input=madrid&components=country:us&types=(regions),並使用 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