如路线优化概览中所述,基本请求包含必需的实体:模型、货件和车辆:
- 模型用于捕获整个请求(包括
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
都会使用如上例所示的请求消息,但方式不同。在发出路线优化请求之前,请务必了解这两种方法之间的区别:
比较 OptimizeTours 和 BatchOptimizeTours