疑難排解

錯誤

如果發生錯誤,系統會傳回標準格式的錯誤回應主體,並將 HTTP 狀態碼設為錯誤狀態。

回應包含一個物件,其中包含單一 error 物件,且該物件含有下列鍵:

  • code:與回應的 HTTP 狀態相同。
  • message:錯誤的簡短說明。
  • status:表示錯誤性質的狀態碼。

舉例來說,傳送無效的 placeId 參數會傳回以下錯誤:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

可能出現的錯誤包括:

程式碼 狀態 訊息 疑難排解
400 INVALID_ARGUMENT 您提供的金鑰無效。 您的 API 金鑰無效,或是未包含在要求中。請確認您已加入整個金鑰,並已為這組金鑰啟用 API。
400 INVALID_ARGUMENT 「"path" 參數包含無效的值:☃」 您的要求包含無效的引數。這項錯誤最可能的原因如下:
  • path 參數發生問題。
    請確認您至少有 1 個,且點數少於 100 個。每個點都應為一組以半形逗號分隔的數字,例如:48.409114,-123.369158。資料點之間應以直立線分隔:「|」。
  • 您的要求包含無效的 placeId
  • 您的要求包含 placeIdpath。每個要求只能指定其中一個參數。

如果 placeId 是針對不再存在的道路或非道路地點傳遞,系統就不會傳回這個錯誤。

403 PERMISSION_DENIED 已封鎖未註冊的要求。請透過 Google Developers Console 註冊。 Google 基於下列一或多項原因而拒絕要求:
  • API 金鑰遺失或無效。
  • 您的帳戶尚未啟用結帳功能。
  • 超過自行設定的用量上限。
  • 您提供的付款方式已失效 (例如信用卡已過期)。

如要使用 Google 地圖平台的各項產品,帳戶必須啟用計費功能,且所有要求都必須包含有效的 API 金鑰。如要修正這個問題,請按照下列步驟操作:

404 NOT_FOUND 這項服務需要使用 HTTPS。 請確認您傳送要求的對像是 https://roads.googleapis.com/,而不是 http://roads.googleapis.com/
429 RESOURCE_EXHAUSTED 已達專案要求限制,因此要求遭到調節。 您已超過在 Google Cloud Platform 主控台中設定的要求限制。這項限制通常會設為每日要求次數、每 100 秒要求次數,以及每位使用者每 100 秒要求次數。如要避免一或多位使用者用盡每日配額,同時仍允許所有使用者以合理的方式存取資源,請務必設定這項限制。如要設定這些限制,請參閱「限制 API 用量」一節。

指數輪詢

要求失敗時,請務必透過指數輪詢重試要求。例如,如果要求失敗一次,則在每秒重試,如果再次失敗,則在 2 秒後重試,然後四秒,依此類推。這樣可以確保無效要求或大規模應用失敗,不會導致 Google 伺服器造成負擔,因為許多用戶端都會嘗試快速重試要求。

疑難排解常見問題

導入問題

我應該多久取得車輛位置一次?
建議每 1 到 10 秒拍攝一張相片,以便取得高品質的路線對齊結果。
每筆查詢可傳送的點數是否有數量上限?
是,查詢最多可包含 100 個路線控點。
我應該使用哪種精確度來儲存已對齊的緯度/經度組合?
為確保在所有縮放等級 (包括最高縮放等級) 中,路徑都會沿著道路移動,請將已對齊的緯度/經度配對值儲存為小數點後 7 位的精確度。
我可以使用編碼折線顯示貼齊的路徑嗎?
經過編碼的折線的精確度僅指定到小數點後 5 位,因此會產生約 2 公尺的誤差。因此,如果您希望經過取樣的路徑在高縮放等級時沿著道路移動,則不建議使用經過編碼的多邊形。

常見問題

部分點未對齊,或對齊路徑中出現空隙。該如何修正這個問題?
  • 如果您是按時間間隔取樣點,請確保點的取樣間隔較短 (每 1 到 10 秒)。如果使用較長的間隔 (例如 60 秒),路徑對齊演算法可能無法準確判斷行經的道路。
  • 如果您是手動點選地圖來建立點,很容易建立出點數很少或點數稀疏的路徑,而這些路徑不易受到貼齊演算法的良好處理。貼齊演算法最適合用於相鄰的點。試試貼近道路功能的示範,或使用道路檢查器來測試路徑。
為什麼在放大時,我的對齊路徑會變得鋸齒狀或稍微偏離道路?
  • 您是否在顯示對齊的緯度/經度組合之前,截斷其精確度?如果以小於 7 小數點的精確度儲存已對齊的經緯度組合,當已對齊的路徑在地圖上顯示時,就會發生精確度錯誤。
  • 您是否使用經過編碼的多邊形?經過編碼的多邊形會將經緯度組合截斷至小數點後 5 位,這會導致幾公尺的誤差,導致在高縮放等級下,線條會出現鋸齒狀或與道路略有偏差的情況。

如果以上兩者皆非,地圖圖塊可能最近才更新,導致這些圖塊與夾扣的道路索引不相符。如果只有少數查詢受到影響,很可能是問題所在。由於 Google 地圖會定期更新,因此這類情況偶爾會發生,如果您經常查看地圖上的舊路徑 (例如幾週前拍攝的路徑),這種情況就可能會更頻繁地發生。為獲得最佳的視覺效果,您應在顯示舊路徑之前重新對齊,以便盡量減少地圖圖塊與用於對齊的道路索引之間的不一致性。

導致道路 X 的速限顯示錯誤的原因為何?
速限來自許多資料來源,相關準確度和涵蓋範圍也會有所不同。如果您發現某種模式,例如特定道路類型的速限或特定地區的速限一直不正確,請按照下列步驟通知我們:
  1. 在電腦上開啟 Google 地圖,或使用 Android 版 Google 地圖應用程式。
  2. 開啟左側選單。
  3. 選取「提供意見」。注意:系統可能會要求您登入。
  4. 選取「編輯地圖」
  5. 選取要編輯的道路路段。
  6. 選取「繼續」。
  7. 在「其他」欄位中,指出該道路的速限有誤。
  8. 選取 [提交]。
您也可以在這裡回報其他問題 (例如道路名稱不正確、繪製錯誤、封閉或私有)。
為什麼我的對齊路徑會沿著路邊走,而不是直接走到目的地?
如要修正這個問題,請檢查下列項目:
  • 確認 interpolate 參數已設為 true
  • 請確認原始資料點的取樣間隔 (每 1 到 10 秒) 足夠密集。
為何在沒有速限變更的道路中,我會在已對齊路徑中收到許多路段?
interpolate 參數設為 true 時,路徑對齊查詢會傳回沿著彎角、曲線和環狀交叉路口的道路折線。如果道路是彎曲的,即使速限沒有變更,系統也會傳回多個路段,以便建立緊密貼合道路幾何圖形的多邊形。