Cele to parametry, które definiują wstępnie wspólne cele optymalizacji, takie jak najkrótsza odległość lub czas podróży, dostawy na czas, równoważenie obciążenia między kierowcami. Ma on ułatwić deweloperom korzystanie z interfejsu RouteOptimization API, zanim zaczną się zajmować bardziej zaawansowanymi funkcjami i pełną dostosowywaniem parametrów kosztów.
Gdy są ustawione, ShipmentModel.objectives
całkowicie zastępują model kosztów, dlatego są niezgodne z wcześniejszymi kosztami. Każdy atrybut Objective
odpowiada określonej liczbie wstępnie zdefiniowanych kosztów pojazdów, przesyłek lub atrybutów przejścia.
Gdy określisz tryb rozwiązywania TRANSFORM_AND_RETURN_REQUEST
, żądanie nie zostanie rozwiązane, a tylko zweryfikowane i wypełnione kosztami odpowiadającymi danym celom. Zmodyfikowane żądanie jest zwracane jako OptimizeToursResponse.processed_request
. Wszystkie inne tryby rozwiązania zwrócą prośbę o rozwiązanie.
Tryb rozwiązywania TRANSFORM_AND_RETURN_REQUEST
jest prawidłowy tylko w przypadku żądań OptimizeTours
i nie jest dostępny w przypadku innych żądań interfejsu Route Optimization API.
Przykład: wysłanie prośby ShipmentModel.objectives
Zanim prześlesz prośbę, wykonaj te czynności:
- Upewnij się, że domyślne dane logowania aplikacji są skonfigurowane zgodnie z opisem w artykule Korzystanie z protokołu OAuth.
Ustaw wartość PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu Cloud.
Poniższe polecenie wysyła
OptimizeToursRequest
do interfejsu Route Optimization API, który zwracaOptimizeToursResponse
.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
Przykład: wysłanie prośby TRANSFORM_AND_RETURN_REQUEST
Zanim prześlesz prośbę, wykonaj te czynności:
- Upewnij się, że domyślne dane logowania aplikacji są skonfigurowane zgodnie z opisem w artykule Korzystanie z protokołu OAuth.
Ustaw wartość PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu Cloud.
To polecenie wysyła do interfejsu Route Optimization API żądanie
OptimizeToursRequest
, które zwraca odpowiedźOptimizeToursResponse
z ustawionym polemProcessedRequest
. Poprzednie polecenie zwróci odpowiedź podobną do tej: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" } }