构造请求消息

路线优化概览中所述,基本请求包括作为必需实体的模型装运车辆组成:

  • 模型可捕获整个请求(包括 ShipmentsVehicles)的设置和约束条件。
  • 发运表示任务或实际运单,包括自提和送货 VisitRequest。运单具有本地设置和限制条件。
  • 车辆代表车辆、驾驶员或人员。车辆还有本地设置和约束条件。

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

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

OptimzeToursRequest 个房源

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

  • searchMode 指示是返回满足指定约束的第一个解决方案,还是在设定的期限内找到最佳解决方案。
  • considerRoadTraffic 确定是否将实时实时流量用于路由和估算预计到达时间。
  • populateTransitionPolylines 用于确定响应中是否返回路线多段线。

模型属性

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

  • globalStartTime 表示所有车辆和运单中路线的最早开始时间。在此之前,任何车辆都不得开始进行首次转换和装运。
  • globalEndTime 表示所有车辆和货运路线的最新结束时间。所有分配的运单和转换都必须在此时间之前完成。

运单属性

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