如路线优化概览中所述,基本请求包含作为必需实体的 Model、Shipments 和 Vehicles:
- 模型会捕获整个请求的设置和约束条件,包括
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
消息的一些常用属性(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
都会像上例一样使用请求消息,但方式不同。在发出路由优化请求之前,请务必了解这两种方法之间的区别: