疑難排解

錯誤

如果發生錯誤,系統會傳回標準格式錯誤回應主體,並將 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 註冊。 基於下列一或多項原因,要求遭拒:
  • 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 時,對齊道路查詢會傳回沿著四角、曲線和圓環的道路。如果是道路曲線,即使速限沒有改變,系統仍會傳回多個路段,以便建立高度符合道路幾何圖形的折線。