目的は、最短の移動距離や所要時間、時間どおりの配達、ドライバー間の負荷のバランス調整など、一般的な最適化目標を事前に定義するパラメータです。これは、デベロッパーが費用パラメータの高度な機能と完全なカスタマイズを学ぶ前に、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 を設定します。
次のコマンドは、
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 を設定します。
次のコマンドは、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" } }