大型車輛路徑規劃是一組屬性,可讓您指定實體尺寸、重量和拖車數量,為大型車輛車隊規劃最佳路徑。API 會使用這些屬性計算可行路徑,避開受限道路、低矮橋樑或有重量限制的路線。
有了大型車輛路線規劃功能,您就能解決重型和大型車輛的車隊物流難題,例如:
- 避開道路危險:生成路線規劃,引導車輛避開低淨空高度、限重道路和其他實體危險。
- 指定詳細車輛資訊:在車隊路線規劃中,加入精確的尺寸、總重量、軸數和拖車配置。
- 提升車隊整體規劃:為整個卡車車隊建立有效率的路線規劃,同時確保所有指派作業都符合實體道路限制。
- 啟用即時路況導航:為最佳化車輛路徑規劃產生路徑權杖,並傳遞至 Navigation SDK,以大型車輛專屬導航功能引導駕駛人。
限制
開始前,請務必瞭解下列限制和規定。
- 適用地區:大型車輛路線規劃功能僅適用於美國本土 48 州。
- 駕駛人建議和安全:駕駛人不得完全依賴此 API 傳回的路線,確保安全或合法。系統無法保證路線適合車輛,如果按照路線行駛,駕駛人可能會遇到低矮橋梁或禁止大型車輛通行的道路等危險情況。
- 盡量符合限制的路線:在某些情況下,API 可能找不到完全符合旅遊限制的路線。而是會傳回「盡可能」避開限制區域的路線。
- 不支援的功能:大型車輛路線不支援下列功能:
- 卡車通行費
- 速限
- 放射性危險物質路線
- 帳單:無論要求是否設定大型車輛路線規劃屬性,Google 都會一律對所有
optimizeTours要求收費。 - 長途路線:長途卡車路線超過 500 公里,需要比短途路線更長的運算時間,且傳回的路線資料品質可能較低。為確保路線品質,請限制貨件、車輛起點和車輛終點之間的距離。如果您需要長路徑,請延長要求期限,降低發生
DEADLINE_EXCEEDED錯誤的可能性。
屬性
如要使用大型車輛路線規劃屬性,請務必設定車輛的實際尺寸,並將路線規劃模式設為卡車。
下表列出頂層屬性,可用於設定大型車輛路線規劃:
| 屬性 | 類型 | 規定 | 說明 |
|---|---|---|---|
travelMode |
字串 | 必填 | 指定車輛的交通方式。如要啟用大型車輛路線規劃屬性,請將這個值設為 TRUCK。 |
routeModifiers |
物件 | 必填 | 包含特定路徑的設定,包括 vehicleInfo。 |
vehicleInfo
vehicleInfo 物件包含車輛的實體規格。請在 routeModifiers 屬性中定義這個物件。如果將 travelMode 設為 TRUCK,就必須提供 vehicleInfo 物件。
下表列出 vehicleInfo 物件中可用的屬性:
| 屬性 | 類型 | 規定 | 說明 |
|---|---|---|---|
totalHeightMm |
整數 | 必填 | 指定車輛總高度,以公釐為單位。這個值必須是正整數。 |
totalWidthMm |
整數 | 必填 | 以公釐為單位指定車輛總寬度。這個值必須是正整數。 |
totalWeightKg |
整數 | 必填 | 指定車輛總重量 (以公斤為單位)。這個值必須是正整數。 |
totalLengthMm |
整數 | 必填 | 以公釐為單位指定車輛總長度。這個值必須是正整數。 |
trailerInfo |
陣列 | 選用 | 包含預告片規格陣列,包括 lengthMm 屬性,用於指定每部預告片的長度 (以毫米為單位)。 |
totalAxleCount |
整數 | 必填 | 指定車輛的車軸總數。這個值必須是大於或等於 2 的整數。 |
範例
本節將說明兩種範例:
程式碼範例
以下範例顯示用於大型車輛路線規劃的屬性結構:
"vehicles": [ { "travelMode": "TRUCK", "routeModifiers": { "vehicleInfo": { "totalHeightMm": TOTAL_HEIGHT_MM, "totalWidthMm": TOTAL_WIDTH_MM, "totalWeightKg": TOTAL_WEIGHT_KG, "totalLengthMm": TOTAL_LENGTH_MM, "trailerInfo": [ { "lengthMm": TRAILER_LENGTH_MM } ], "totalAxleCount": TOTAL_AXLE_COUNT } } } ]
要求範例
以下範例顯示基本 optimizeTours 要求的結構,其中包含大型車輛路線:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 40.953523, "longitude": -72.2277846 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 40.9546673, "longitude": -72.2580151 } } ] } ], "vehicles": [ { "travelMode": "TRUCK", "routeModifiers": { "vehicleInfo": { "totalHeightMm": 4000, "totalWidthMm": 2500, "totalWeightKg": 9000, "totalLengthMm": 20000, "trailerInfo": [ { "lengthMm": 15000 } ], "totalAxleCount": 5 } }, "costPerKilometer": 1.0 } ] } }
後續步驟
- 提供即時路況導航:瞭解如何將每次轉換傳回的
routeToken傳遞至 Android 或 iOS 版 Navigation SDK。 - 產生轉場折線和路線權杖:請參閱「轉場折線和路線權杖」一文,瞭解如何使用
populateTransitionPolylines要求路線權杖。 - API 參考資料:查看
optimizeTours參考資料中的完整欄位清單。