如路线优化概览中所述,基本请求包括作为必需实体的模型、装运和车辆组成:
- 模型可捕获整个请求(包括
Shipments
和Vehicles
)的设置和约束条件。 - 发运表示任务或实际运单,包括自提和送货
VisitRequest
。运单具有本地设置和限制条件。 - 车辆代表车辆、驾驶员或人员。车辆还有本地设置和约束条件。
每个实体的属性都描述了特定粒度级别的优化问题的一部分。模型级的约束条件会应用于所有船舶和车辆,而针对货运或车辆指定的约束条件和属性则特定于单个运单或车辆。
如需查看有关每种消息类型的完整文档,请参阅 ShipmentModel
(REST、gRPC)、Shipment
(REST、gRPC)和 Vehicle
(REST、gRPC)消息的参考文档。
OptimzeToursRequest
个房源
顶级 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
都使用请求消息(如上例所示),但方式不同。在发出路线优化请求之前,请务必了解这两种方法之间的区别: