构造请求消息

路线优化概览中简要介绍的那样,基本请求包含模型运输订单车辆作为必需实体:

  • Model 会捕获整个请求(包括 ShipmentsVehicles)的设置和约束条件。
  • 运输表示包含上门取件和送货 VisitRequest 的任务或实际运输。运输有本地设置和限制。
  • 车辆代表车辆、司机或人员。车辆还具有本地设置和限制。

每个实体的属性都以特定的粒度描述了优化问题的一部分。适用于整个模型的约束条件会应用于所有运输和车辆,而针对运输或车辆指定的约束条件和属性仅适用于单个运输或车辆。

如需查看有关每种消息类型的完整文档,请参阅 ShipmentModelRESTgRPC)、ShipmentRESTgRPC)和 VehicleRESTgRPC)消息的参考文档。

OptimizeToursRequest 个房源

顶级 OptimizeToursRequest 消息(RESTgRPC)的一些常用属性包括:

  • searchMode 用于指明是返回满足指定约束条件的第一个解,还是在设定的截止期限内找到尽可能好的解。
  • considerRoadTraffic 用于确定是否使用实时交通信息进行路线规划和预计到达时间估算。
  • populateTransitionPolylines 用于确定是否在响应中返回路线多段线和路线令牌。

模型属性

ShipmentModel 消息的一些常用属性(RESTgRPC)包括:

  • globalStartTime 表示所有车辆和运输的路线的最早开始时间。在此之前,任何车辆都不能开始首次转移和发货。
  • globalEndTime 表示所有车辆和运输的路线的最新结束时间。所有分配的配送和转移都必须在此时间之前完成。

Shipment 属性

Shipment 消息的一些常用属性(RESTgRPC)包括:

  • pickups[]deliveries[] 表示可以取件或放下货物的位置。pickups[]deliveries[] 属性均使用 VisitRequest 消息(RESTgRPC)。
  • loadDemands 表示车辆完成运输所需的载荷。车辆的相应 load_limitsRESTgRPC)属性表示车辆一次可容纳多少载荷。如需详细了解负载,请参阅负载需求和限制
  • 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 都会使用上述示例中所示的请求消息,但使用方式不同。在发出路线优化请求之前,请务必了解这两种方法之间的区别:

比较 OptimizeTours 和 BatchOptimizeTours