如路线优化概览中简要介绍的那样,基本请求包含模型、运输订单和车辆作为必需实体:
- Model 会捕获整个请求(包括
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 属性
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
都会使用上述示例中所示的请求消息,但使用方式不同。在发出路线优化请求之前,请务必了解这两种方法之间的区别: