目標は、移動距離や移動時間の最短化、時間どおりの配送、ドライバー間の負荷のバランス調整など、一般的な最適化の目標を事前に定義するパラメータです。これにより、費用パラメータの複雑さや完全なカスタマイズを学ぶ前に、デベロッパーが
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 に設定します。
次のコマンドは、
OptimizeToursRequestを Route Optimization 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 に設定します。
次のコマンドは、
OptimizeToursRequestを Route Optimization API に送信し、OptimizeToursResponseとProcessedRequestフィールドを返します。 前のコマンドを実行すると、次のようなレスポンスが生成されます。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" } }