計算路徑矩陣

您可以使用 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 存放區檢查必要的 protobuffers:

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

    請注意,Go 等部分建構系統可能會自動執行這項操作。

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

  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 方法的一個特徵是,可以傳回整個串流或個別元素的錯誤代碼。舉例來說,如果要求格式錯誤 (例如來源為零),串流連線就會傳回錯誤。不過,如果錯誤只影響串流的部分元素 (例如為來源設定無效的 Place ID),則只有受錯誤影響的元素會包含錯誤代碼。

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

計算通行費

如要瞭解如何計算通行費,請參閱「計算通行費」。

如需收費計算範例,請參閱「計算路線矩陣範例」。