目标是预先定义常见优化目标(例如最短行程距离或时长、准时送达、在司机之间平衡负载)的参数。其目的是让开发者在了解成本参数的复杂性和完全自定义之前,更轻松地开始使用 Route Optimization API。(如需了解如何完全自定义各种目标,请参阅“cost model ”)
设置后,ShipmentModel.objectives 会完全覆盖成本模型
,因此与预先存在的成本不兼容。每个
Objective都会映射到车辆、货件或
过渡属性的许多预定义成本。
指定 TRANSFORM_AND_RETURN_REQUEST 求解模式后,
系统不会求解请求,只会验证请求并填充与给定目标对应的成本
。修改后的请求会作为
OptimizeToursResponse.processed_request 返回。所有其他求解模式都会返回已求解的请求。
TRANSFORM_AND_RETURN_REQUEST 求解模式仅对 OptimizeTours 请求有效,不适用于其他 Route Optimization API 请求。
示例:发出 ShipmentModel.objectives 请求
发出请求之前,请完成以下步骤:
- 确保您已按照 在 使用 OAuth中的说明配置应用默认凭证。
将 PROJECT_NUMBER_OR_ID 设置为您的 Cloud 项目编号或 ID。
以下命令会向 Route Optimization API 发送
OptimizeToursRequest,该 API 会返回OptimizeToursResponse。curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ], } } EOM
示例:发出 TRANSFORM_AND_RETURN_REQUEST 请求
发出请求之前,请完成以下步骤:
- 确保您已按照 在 使用 OAuth中的说明配置应用默认凭证。
将 PROJECT_NUMBER_OR_ID 设置为您的 Cloud 项目编号或 ID。
以下命令会向 Route Optimization API 发送
OptimizeToursRequest,该 API 会返回设置了ProcessedRequest字段的OptimizeToursResponse。 上述命令会生成类似于以下内容的响应。curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" } EOM
{ "processedRequest": { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.425062610009959, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.424215032060211, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerHour": 30, "costPerTraveledHour": 330, "costPerKilometer": 0.2 } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" } }