构建请求消息

欧洲经济区 (EEA) 开发者

路线优化概览中所述,基本请求包含必需的实体:模型货件车辆

  • 模型用于捕获整个请求(包括 ShipmentsVehicles)的设置和限制。
  • 货件表示包含取货和送货VisitRequest的任务或实际货件。货件具有本地设置和限制。
  • 车辆表示车辆、司机或人员。车辆还具有本地设置和限制。

每个实体的属性描述了特定粒度级别的优化问题的一部分。模型级限制适用于所有货件和车辆,而针对货件或车辆指定的限制和属性仅适用于单个货件或车辆。

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

OptimizeToursRequest属性

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

  • searchMode 用于指示是返回满足指定约束条件的第一个解决方案,还是在设定的截止期限内找到尽可能最佳的解决方案。
  • considerRoadTraffic 用于确定是否将实时路况用于路线规划和到达时间估算。
  • populateTransitionPolylines 用于确定是否在响应中返回路线折线和路线令牌。

模型属性

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

  • globalStartTime 表示所有车辆和货件的路线的最早开始时间。任何车辆都不得在此时间之前开始首次改换和运输。
  • globalEndTime 表示所有车辆和货件的路线的最新结束时间。所有分配的货件和过渡必须在此时间之前完成。

物流属性

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

  • pickups[]deliveries[] 表示可以取件或送件的地点。pickups[]deliveries[] 属性均使用 VisitRequest 消息(RESTgRPC)。
  • loadDemands 表示车辆完成运输所需的载重。车辆的相应 load_limits (REST, gRPC) 属性表示车辆一次可容纳的负载量。 如需详细了解负载,请参阅负载需求和限制
  • 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