大型車輛路線

大型車輛路徑規劃是一組屬性,可讓您指定實體尺寸、重量和拖車數量,為大型車輛車隊規劃最佳路徑。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 參考資料中的完整欄位清單。