目標は、移動距離や移動時間の最短化、時間どおりの配達、ドライバー間の負荷のバランス調整など、一般的な最適化目標を事前に定義するパラメータです。これは、デベロッパーが費用パラメータの複雑さと完全なカスタマイズを学ぶ前に、Route Optimization API を簡単に利用できるようにするためのものです。
設定すると、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
を送信し、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
を送信し、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" } }