等時區 API 最佳做法

平滑度和擬真度

您可以使用 polygon_fidelity 和 enable_smoothing 參數,自訂輸出多邊形的外觀和精確度。雖然這些選項各自獨立,但會共同決定最終形狀。

  • polygonFidelity (polygon_fidelity):解析度。控制用於計算可到達區域的基礎空間格線儲存格大小。

    • LOW:使用最大的格線單元 (寬度達數百公尺)。最適合用於涵蓋大範圍區域且不留空隙,並盡可能減少頂點數量,因此會產生一般化形狀,可能會高估狹窄道路走廊沿線的可到達區域。
    • MEDIUM:平衡精確度和酬載大小。
    • HIGH:使用最小的格線儲存格 (寬度約 100 至 150 公尺)。結果會更貼近道路網路,頂點也更多,但道路網路稀疏的地方可能會產生內部空洞。
    • 預設 (POLYGON_FIDELITY_UNSPECIFIED):如未指定,服務會根據交通工具和時間長度自動選取解析度,短時間和 WALK 使用較精細的儲存格,長時間則使用較粗略的儲存格。如要比較不同時間長度或交通方式的等時線,請明確設定 polygonFidelity,讓這些等時線使用相同的解析度。

    儲存格大小為約略值。如果等時線非常大,系統可能會進一步一般化,確保回應大小在可管理的範圍內。

  • enableSmoothing (enable_smoothing):美學。控制是否要將精確度定義的格線儲存格階梯狀邊緣修圓。
    • false (原始):傳回與格線對齊的邊界。邊緣會呈現鋸齒狀或階梯狀,反映網格儲存格。最適合用於分析準確度,例如嚴格的多邊形內點測試。
    • true (平滑):將角落修圓,同時大致保留每個環的面積。最適合在地圖上顯示。由於邊界不再遵循網格單元,請勿用於嚴格的點在多邊形內測試。

兩者如何互動:擬真度會設定平滑演算法作用的基準細節。

  • 高保真度 + 平滑化:產生細緻、自然的形狀,緊貼道路末端。
  • 低擬真度 + 平滑化:產生寬廣、一般化的「斑點」形狀。

酬載大小和算繪

大型等時線 (尤其是精確度為 HIGH 的長時間要求) 可能包含數萬個座標,未壓縮的 JSON 回應可能達數百 KB 以上。

  • 頻寬:請注意,如果要求時間長度達到上限,且音訊逼真度高,JSON 回應的大小會很大。
  • 算繪:算繪極為精細的多邊形會影響用戶端效能。如要減少頂點數量和酬載大小,請選擇 polygonFidelity: MEDIUM 或 LOW,或在算繪前使用線條簡化演算法 (例如 Douglas-Peucker),簡化用戶端上的幾何圖形。

延遲時間和用戶端逾時

回應延遲時間會隨著經過的路網大小而增加:短時間和 WALK 和 BICYCLE 模式最快,而長時間的 DRIVE 和 TWO_WHEELER 要求 (尤其是 TRAFFIC_AWARE) 則最慢。

  • 建議的用戶端逾時:將 HTTP 或 gRPC 用戶端期限設為至少 30 秒,以免長時間要求因用戶端逾時時間過短而提早中止。

錯誤處理

針對 429 RESOURCE_EXHAUSTED 頻率限制回應和 5xx 伺服器錯誤,導入重試邏輯,並採用指數輪詢和隨機延遲機制。如果未變更要求,請勿重試 400、403 或 404 用戶端錯誤:

  • INVALID_ARGUMENT (400):請確認 travelDuration 介於 1s 和 3600s (DRIVE/TWO_WHEELER) 或 7200s (WALK/BICYCLE) 之間、location 未省略且不是 (0, 0) (或 place 是有效的地點 ID),且 TRAFFIC_AWARE 僅與 DRIVE 或 TWO_WHEELER 搭配使用。如果省略 latitude 或 longitude,系統會將其視為 0.0,因此只省略其中一個通常不會導致 400 錯誤 (除非另一個值也是 0.0)。如果等時線顯示在錯誤的位置,請仔細檢查這兩個值。
  • PERMISSION_DENIED (403):請確認您已加入 API 金鑰或 OAuth 權杖,且 Google Cloud 雲端專案已啟用 Isochrones API 和計費功能。
  • NOT_FOUND (404):place 無法解析為地點,或起點無法貼齊至附近可供交通模式使用的道路 (約 200 公尺內,WALK 和 BICYCLE 則更短)。
  • RESOURCE_EXHAUSTED (429):專案超過每分鐘要求配額 (預設為 300 QPM)。以指數輪詢方式重試。