目标是预先定义常见优化目标(例如最短的行驶距离或时长、准时送达、平衡司机之间的负荷)的参数。旨在让开发者在了解费用参数的复杂性和完全自定义之前,更轻松地开始使用 Route Optimization API。
设置后,ShipmentModel.objectives
会完全覆盖费用模型,因此与预先存在的费用不兼容。每个 Objective
都会映射到车辆、货件或过渡属性的一些预定义费用。
指定 TRANSFORM_AND_RETURN_REQUEST
求解模式时,系统不会求解请求,只会验证请求并填充与指定目标对应的费用。修改后的请求将以 OptimizeToursResponse.processed_request
的形式返回。所有其他求解模式都会返回已求解的请求。
TRANSFORM_AND_RETURN_REQUEST
求解模式仅对 OptimizeTours
请求有效,不适用于其他路线优化 API 请求。
示例:发出 ShipmentModel.objectives
请求
在发出请求之前,请完成以下步骤:
- 确保您已按照使用 OAuth 中的说明配置应用默认凭据。
将 PROJECT_NUMBER_OR_ID 设置为您的 Cloud 项目编号或 ID。
以下命令会向路线优化 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。
以下命令会向路线优化 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" } }