計算路徑矩陣

您可以使用 Routes Preferred API 的 ComputeRouteMatrix 方法計算多個起點和目的地的路線距離和所需時間。ComputeRouteMatrix 支援串流 gRPC 呼叫和 REST HTTP 呼叫。

如果有一組起點與目的地對組的清單,ComputeRouteMatrix 會計算路線從每個起點到終點的距離與所需時間。串流的每個元素都對應單一路線的資訊。

與距離矩陣服務相比,ComputeRouteMatrix 方法有幾個優點:

  • 串流允許系統在計算完整矩陣前傳回元素,以縮短延遲時間。
  • ComputeRouteMatrix 提供精細的流量計算選項,可讓您做出品質延遲時間取捨。
  • 要求會在 Google 基礎架構中以較高優先順序執行,因此可用性較高。
  • 您可以為路線控點指定方向 (行進方向) 和道路側面資訊。
  • 您可以要求傳回收費資訊、路線距離和預計到達時間。

啟用 ComputeRouteMatrix 方法

您必須先啟用 ComputeRouteMatrix 方法,才能在程式碼中使用。如要進一步瞭解如何啟用 Routes Preferred API 方法,請參閱入門指南

使用 ComputeRouteMatrix 方法

ComputeRouteMatrix 方法可透過 Routes Preferred v1 端點使用。

詳情請參閱下列說明文件:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

下列一般步驟說明如何使用 gRPC 呼叫 ComputeRouteMatrix 方法:

  1. 查看 googleapis 存放區中的必要 Probuffer:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    請注意,部分建構系統 (例如 Go) 可能會自動為您執行這項作業。

  2. 使用您偏好的語言和一組建構工具,產生相關的 protobuffer 程式碼。

  3. 產生要求。必須與要求一併傳送兩個必要的中繼資料:

    • X-Goog-Api-Key 必須設為您的 API 金鑰。
    • 您必須將 X-Goog-Fieldmask 設為回應中所需欄位的逗號分隔清單,例如 X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status。您可以使用萬用字元 (*) 來表示所有欄位,但我們不建議這麼做。請使用萬用字元來測試和瞭解 API 回應,但在實際執行程式碼中,明確列出需要的欄位遮罩中。

      如要進一步瞭解如何建構欄位遮罩字串,請參閱 https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto。請注意,停用不需要的欄位可縮短延遲時間,因為這些欄位可能需要進一步計算。如果您指定需要的欄位,延遲時間將維持在穩定狀態,並在之後加入需要更多運算的新欄位。

  4. 傳送要求至 routespreferred.googleapis.com:443。您必須使用傳輸層安全標準 (TLS) 通訊協定。

如需使用 ComputeRouteMatrix 方法的範例,請參閱計算路徑矩陣 (Beta 版) 範例

ComputeRouteMatrix 方法的一項獨特功能是可以針對整個串流或個別元素傳回錯誤代碼。例如,如果要求格式錯誤 (例如來源沒有任何來源),串流連線就會傳回錯誤。不過,如果錯誤只套用至串流的幾個元素 (例如為某個起點設定無效的地點 ID),則只有受該錯誤影響的元素包含錯誤代碼。

串流傳回的元素不保證會以任何順序傳回。因此,每個元素都包含 origin_indexdestination_index。針對要求指定的起點和目的地,路線起點等於特定元素的 origins[origin_index],而路線目的地則等同於 destinations[destination_index]。這些陣列都是以零為開頭的索引。請務必儲存起點和目的地清單的順序。

計算過路費

如要瞭解如何計算過路費,請參閱計算過路費

如需計算過路費用的範例,請參閱計算路線矩陣範例