這份常見問題主要針對 Geocoding API。有關 Google Maps Platform 的常見問題,請參閱Google Maps Platform 常見問題。另請參閱「地理編碼地址最佳做法」。
疑難排解
- 我發現地理編碼器傳回 ZERO_RESULTS 的查詢變多了。為什麼會發生這種情況?
- 我需要快速回應,但地理編碼器速度太慢,不適合我的應用程式。如何加快回應速度?
- 如何降低 Directions API (舊版) 和 Distance Matrix 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 (舊版) 時,這些 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:madridhttps://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
- 「Madrid」的地理編碼會傳回「Madrid, NM 87010, USA」,但不會傳回美國境內其他名為「Madrid」的城市。
- 如要將郵遞區號限制在特定國家/地區,請務必使用 ISO 3166-2 國家/地區代碼指定國家/地區限制。舉例來說: