建構要求訊息

如同路徑最佳化總覽中所述,基本要求包含「模型」、「出貨」和「交通工具」做為必要實體:

  • 模型會擷取整個要求 (包含 ShipmentsVehicles) 的設定和限制。
  • 「出貨」代表包含自取和外送 VisitRequest 的工作或實際出貨商品。出貨地點具有當地設定和限制。
  • 車輛代表車輛、駕駛或人員。車輛也具有本機設定和限制。

每個實體的屬性都會以特定精細程度描述最佳化問題的一部分。模型級限制會套用至所有出貨和車輛,而運送或車輛指定的限制和屬性則專屬於單一貨運或車輛。

如需各訊息類型的完整說明文件,請參閱 ShipmentModel (RESTgRPC)、Shipment (RESTgRPC) 和 Vehicle (RESTgRPC) 訊息的參考說明文件。

OptimizeToursRequest 項資源

頂層 OptimizeToursRequest 訊息 (RESTgRPC) 的一些常用屬性包括:

  • searchMode 表示是否要傳回符合指定限制的第一個解決方案,或是在指定期限內尋找最佳解決方案。
  • considerRoadTraffic 會決定是否將即時流量用於轉送和預計到達時間。
  • populateTransitionPolylines 會決定是否在回應中傳迴路線折線。

模型屬性

ShipmentModel 訊息 (RESTgRPC) 的一些常用屬性包括:

  • globalStartTime 表示橫跨所有車輛和貨運的最早路線開始時間。在此之前,車輛都無法開始進行第一次的過渡和出貨作業。
  • globalEndTime 表示所有車輛和貨運上路線的最晚結束時間。所有指派的出貨和轉換作業都必須在這段時間之前完成。

運送屬性

Shipment 訊息 (RESTgRPC) 的一些常用屬性包括:

  • pickups[]deliveries[] 代表可以取貨或下車地點。pickups[]deliveries[] 屬性都使用 VisitRequest 訊息 (RESTgRPC)。
  • loadDemands 代表車輛完成出貨所需的負載。車輛對應的 load_limits (RESTgRPC) 屬性代表車輛一次可容納的負載量。如要進一步瞭解負載,請參閱負載要求與限制
  • penalty_cost 代表略過運送作業產生的費用。如要進一步瞭解費用,請參閱費用模式參數

車輛屬性

Vehicle 訊息 (RESTgRPC) 的一些常用屬性包括:

  • 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"
  }
}

OptimizeToursBatchOptimizeTours 都會使用與上述範例類似的要求訊息,但方式卻不同。提出路徑最佳化要求之前,請務必先瞭解兩種方法的差異:

比較最佳化工具和 BatchOptimizeTours