您可以使用 Routes Preferred API 的 ComputeRouteMatrix
方法,計算多個起點和目的地的路線距離和所需時間。ComputeRouteMatrix
支援串流 gRPC 呼叫和 REST HTTP 呼叫。
如果有一組起點和目的地組合,ComputeRouteMatrix
會計算路線的距離和所需時間,從每個起點開始,終點則是在每個目的地之間。串流的每個元素都會對應單一路徑的資訊。
與距離矩陣服務相比,ComputeRouteMatrix
方法有許多優點:
- 串流可讓系統在計算整個矩陣之前傳回元素,藉此縮短延遲時間。
ComputeRouteMatrix
提供更精細的流量計算選項,可讓您做出品質延遲方面的取捨。- 要求在 Google 基礎架構中優先執行,因此可用性更高。
- 您可以為路線控點指定方向 (行進方向) 和側面資訊。
- 您可以要求傳回收費資訊,以及路線距離和預計到達時間。
啟用 ComputeRouteMatrix 方法
您必須先啟用 ComputeRouteMatrix
方法,才能在程式碼中使用方法。如要進一步瞭解如何啟用 Routes Preferred API 方法,請參閱入門指南。
使用 ComputeRouteMatrix 方法
ComputeRouteMatrix
方法可透過「優先使用路徑」v1 端點提供。
詳情請參閱下列說明文件:
以下通用步驟說明如何使用 gRPC 呼叫 ComputeRouteMatrix
方法:
從 googleapis 存放區查看必要的 protobuffer:
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
方法的一項區別功能是可以為整個串流或個別元素傳回錯誤代碼。例如,如果要求格式錯誤 (例如來源為零),串流連線會傳回錯誤。然而,如果只有串流的幾個元素會出現錯誤 (例如,為來源設定無效的地點 ID),則只有受錯誤影響的元素會包含錯誤代碼。
串流傳回的元素不保證會以任何順序傳回。因此,每個元素都包含 origin_index
和 destination_index
。針對要求指定的起點和目的地,路線起點等於指定元素的 origins[origin_index]
,且路徑目的地等同於 destinations[destination_index]
。這些陣列會按零索引。請務必儲存起點和目的地清單訂單。
正在計算過路費
如要進一步瞭解如何計算過路費,請參閱「計算過路費」。
如需計算通行費費用的範例,請參閱計算路線矩陣範例。