您可以使用 Routes Preferred API 的 ComputeRouteMatrix
方法,計算多個起點和目的地的路線距離和時間。ComputeRouteMatrix
支援串流 gRPC 呼叫和 REST HTTP 呼叫。
指定起點和目的地組合清單後,ComputeRouteMatrix
會計算從每個起點出發,抵達每個目的地的路線距離和所需時間。串流中的每個元素都對應單一路線的資訊。
與距離矩陣服務相比,ComputeRouteMatrix
方法有以下幾個優點:
- 串流功能可在計算完整矩陣前傳回元素,降低延遲。
ComputeRouteMatrix
提供精細的流量計算選項,可讓您在品質與延遲之間做出取捨。- 要求會在 Google 基礎架構中以較高的優先順序執行,因此可用性較高。
- 您可以為途中的航點指定航向 (行進方向) 和道路側資訊。
- 您可以要求系統傳回路線距離和預計到達時間,以及通行費資訊。
啟用 ComputeRouteMatrix 方法
您必須先啟用 ComputeRouteMatrix
方法,才能在程式碼中使用。如要進一步瞭解如何啟用 Routes Preferred API 方法,請參閱「開始使用」一文。
使用 ComputeRouteMatrix 方法
ComputeRouteMatrix
方法可透過 Routes Preferred v1 端點使用。
如需詳細資訊,請參閱下列說明文件:
下列一般步驟說明如何使用 gRPC 呼叫 ComputeRouteMatrix
方法:
從 googleapis 存放區取出必要的 Protobuf:
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
請注意,部分建構系統 (例如 Go) 可能會自動為您執行這項操作。
使用偏好的語言和建構工具集,產生相關的 Protobuffer 程式碼。
產生要求。要求中必須傳送兩項必要中繼資料:
- 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。 請注意,停用不需要的欄位可以減少延遲,因為這些欄位可能需要進一步計算。如果您指定所需欄位,之後再新增需要更多運算的欄位,延遲時間仍會保持穩定。
將要求傳送至
routespreferred.googleapis.com:443
。您必須使用 TLS 通訊協定。
如需使用 ComputeRouteMatrix
方法的範例,請參閱「計算路徑矩陣 (Beta 版) 範例」。
ComputeRouteMatrix
方法的一項顯著特徵是,錯誤代碼可針對整個串流或個別元素傳回。舉例來說,如果要求格式錯誤 (例如來源為零),串流連線就會傳回錯誤。不過,如果錯誤只適用於串流的少數元素 (例如為來源設定無效的 Place ID),則只有受錯誤影響的元素會包含錯誤代碼。
系統不保證會依序傳回串流傳回的元素。因此,每個元素都包含 origin_index
和 destination_index
。對於要求指定的起點和目的地,路徑起點相當於特定元素的 origins[origin_index]
,路徑目的地則相當於 destinations[destination_index]
。這些陣列是以零為開頭的索引。請務必儲存來源和目的地清單訂單。
計算通行費
如要瞭解如何計算通行費,請參閱「計算通行費」。
如需計算通行費的範例,請參閱「計算路徑矩陣範例」。