如「路線最佳化總覽」簡要說明,基本要求包含 Model、Shipments 和 Vehicles 這幾項必要實體:
- 模型會擷取整個要求的設定和限制,包括 Shipments和Vehicles。
- 貨運代表包含取貨和送貨VisitRequest的工作或實際貨運。出貨內容有當地設定和限制。
- 車輛代表車輛、駕駛人或人員。車輛也有當地設定和限制。
每個實體的屬性都會描述特定精細程度的某部分最佳化問題。模型層級的限制會套用至所有貨運和車輛,而貨運或車輛上指定的限制和屬性則僅適用於單一貨運或車輛。
如需各訊息類型的完整說明文件,請參閱 ShipmentModel (REST、gRPC)、Shipment (REST、gRPC) 和 Vehicle (REST、gRPC) 訊息的參考說明文件。
OptimizeToursRequest 個房源
頂層 OptimizeToursRequest 訊息 (REST、gRPC) 的常用屬性包括:
- searchMode表示是否要傳回符合指定限制的第一個解決方案,或是在設定的期限內找出最佳解決方案。
- considerRoadTraffic會決定是否使用即時路況來規劃路線和預估抵達時間。
- populateTransitionPolylines會決定是否在回應中傳回路線折線和路線權杖。
模型屬性
ShipmentModel 訊息 (REST、gRPC) 的常見屬性包括:
- globalStartTime代表所有車輛和貨運路線的最早開始時間。在此時間之前,任何車輛都不得開始首次轉運和出貨。
- globalEndTime代表所有車輛和貨運路線的最新結束時間。所有指派的貨運和轉移作業都必須在此時間前完成。
出貨屬性
Shipment 訊息的常見屬性 (REST、gRPC) 包括:
- pickups[]和- deliveries[]代表可取貨或送貨的地點。- pickups[]和- deliveries[]屬性都使用- VisitRequest訊息 (REST、gRPC)。
- loadDemands代表車輛完成運送所需的負載。車輛的對應- load_limits(REST、gRPC) 屬性代表車輛一次可容納的負載量。如要進一步瞭解負載,請參閱「負載需求和限制」。
- penalty_cost代表如果跳過出貨,所產生的費用。如要進一步瞭解費用,請參閱「費用模型參數」。
車輛屬性
Vehicle 訊息的常見屬性 (REST、gRPC) 包括:
- startLocation代表車輛必須開始路線的位置。這是選用屬性。如未指定,車輛路線會從第一個指派貨件的位置開始。
- endLocation代表車輛必須結束路線的位置。這是選用屬性。如未指定,車輛路線會在最後指派的貨件位置結束。
- startTimeWindows[]代表車輛可以開始行駛路線的時間。這是選用屬性。
- endTimeWindows[]代表車輛可以開始和結束路線的時間。 這兩項屬性都是選用屬性。
- loadLimits代表車輛可滿足貨物裝載需求的容量。如要進一步瞭解負載需求和限制,請參閱「負載需求和限制」。
JSON 格式的完整要求範例如下:
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}
OptimizeTours 和 BatchOptimizeTours 都會消耗要求訊息,例如上述範例,但方式不同。提出路線最佳化要求前,請務必瞭解這兩種方法的差異:
比較 OptimizeTours 和 BatchOptimizeTours