使用 Routes API 計算路線的距離和所需時間 方法是呼叫 computeRouteMatrix 方法 (REST) 或串流 ComputeRouteMatrix 方法 (gRPC)。
如果指定起點與目的地清單,此方法就會 計算從每個起點出發的路線距離和所需時間 並在各目的地結束
取得大眾運輸路線矩陣
您也可以計算大眾運輸上的路徑矩陣。對於 範例:請參閱取得大眾運輸路線矩陣。
要求限制
Compute Route Matrix 方法會強制執行下列要求 對路線控點 (使用 address 或 placeID) 以及 元素的限制。元素是 路線矩陣中每個起點和目的地之間的路徑,所以 元素的起點是目的地數量的「時間」。適用對象 假設您有 10 個起點和 10 個目的地,那麼有 100 個元素:
路徑的元素數量不得超過 625 個 且非
TRANSIT
路徑。如果指定
TRANSIT
路徑,元素數量不得超過 100。如果指定
TRAFFIC_AWARE_OPTIMAL
,元素的數量就不能重複 超過 100 個如要進一步瞭解TRAFFIC_AWARE_OPTIMAL
,請參閱 指定如何納入流量資料以及是否要納入流量資料。如果您使用地址或地點 ID 指定出發地或目的地, 您最多可指定 50 個
回應錯誤
Compute Route Matrix 方法的其中一項功能是 會傳回整個回應的值,或針對個別回應元素傳回。 舉例來說,如果要求的格式錯誤,整個回應會包含錯誤 (例如沒有來源)。
不過,如果錯誤適用於部分資源 回應中的 元素 (例如,系統無法計算 只有起點和目的地的組合),則只有受到 傳回錯誤代碼。
gRPC 串流結果
ComputeRouteMatrix gRPC 方法會採用來源和目的地清單,並傳回串流 包含每個起點與目的地組合的路線資訊。 由於結果會以串流形式傳回,因此您不必等待所有結果 才能著手處理 也就是預測結果
串流傳回的元素不保證會在任何
順序。因此,每個回應元素都含有 origin_index
和
destination_index
。針對要求指定的起點和目的地,
路線起點與指定元素的 origins[origin_index]
相等
且路線目的地相當於 destinations[destination_index]
。
這些陣列是從零開始索引。請務必儲存來源
目的地清單順序。
計算路徑矩陣範例
使用 computeRouteMatrix 方法,計算路徑矩陣。
HTTP 範例
以下範例顯示 computeRouteMatrix
HTTP 要求。在此範例中
你:
指定兩個起點和兩個目的地路線控點的陣列。方法 計算從每個起點到每個目的地的路線,因此回應 包含四個路徑
在陣列中,第一個元素的索引為 0,第二個為索引 1。 諸如此類
加入回應欄位遮罩,用於指定 回覆 (REST) 或 ComputeRoutesResponse (gRPC)。在這個範例中,您可以將要求設為
originIndex
、destinationIndex
、duration
、distanceMeters
、status
、 每條路線的condition
。若需更多資訊,請參閲 選擇要傳回的欄位:
curl -X POST -d '{ "origins": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420761, "longitude": -122.081356 } } }, "routeModifiers": { "avoid_ferries": true} }, { "waypoint": { "location": { "latLng": { "latitude": 37.403184, "longitude": -122.097371 } } }, "routeModifiers": { "avoid_ferries": true} } ], "destinations": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420999, "longitude": -122.086894 } } } }, { "waypoint": { "location": { "latLng": { "latitude": 37.383047, "longitude": -122.044651 } } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \ 'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'
回應包含適用於所有起點的組合的四個可能路徑 和目的地路線控點
使用 originIndex
和
destinationIndex
個回應欄位。舉例來說,如果 originIndex
是
回應對應是從
要求中的 origins
陣列。
[ { "originIndex": 0, "destinationIndex": 0, "status": {}, "distanceMeters": 822, "duration": "160s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 0, "status": {}, "distanceMeters": 2919, "duration": "361s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 1, "status": {}, "distanceMeters": 5598, "duration": "402s", "condition": "ROUTE_EXISTS" }, { "originIndex": 0, "destinationIndex": 1, "status": {}, "distanceMeters": 7259, "duration": "712s", "condition": "ROUTE_EXISTS" } ]
gRPC 範例
舉例來說,請參閱 gRPC 要求的範例, gRPC 要求範例。Java 這個頁面上會同時呼叫 Compute Routes Compute Route Matrix。