Os objetivos são parâmetros que predefinem metas de otimização comuns, como a distância ou a duração de viagem mais curta, entregas no prazo e balanceamento de cargas entre motoristas. O objetivo é facilitar a integração dos desenvolvedores à API Route Optimization antes de aprenderem sobre as sofisticações e a personalização completa dos parâmetros de custo.
Quando definido, o ShipmentModel.objectives
substitui completamente o modelo de custo. Portanto, ele é incompatível com custos preexistentes. Cada
Objective
é associado a vários custos predefinidos para veículos, remessas ou
atributos de transição.
Ao especificar o modo de resolução TRANSFORM_AND_RETURN_REQUEST
,
a solicitação não é resolvida, apenas validada e preenchida com custos
correspondentes aos objetivos fornecidos. A solicitação modificada é retornada como
OptimizeToursResponse.processed_request
. Todos os outros modos de solução vão
retornar a solicitação resolvida.
O modo de resolução TRANSFORM_AND_RETURN_REQUEST
é válido apenas para solicitações OptimizeTours
e não está disponível para outras solicitações da API Route Optimization.
Exemplo: fazer uma solicitação ShipmentModel.objectives
Antes de fazer uma solicitação, siga estas etapas:
- Verifique se você configurou as Application Default Credentials conforme descrito em Usar o OAuth.
Defina PROJECT_NUMBER_OR_ID como o número ou ID do projeto do Cloud.
O comando a seguir envia um
OptimizeToursRequest
para a API Route Optimization, que retorna umOptimizeToursResponse
.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
Exemplo: fazer uma solicitação TRANSFORM_AND_RETURN_REQUEST
Antes de fazer uma solicitação, siga estas etapas:
- Verifique se você configurou as Application Default Credentials conforme descrito em Usar o OAuth.
Defina PROJECT_NUMBER_OR_ID como o número ou ID do projeto do Cloud.
O comando a seguir envia um
OptimizeToursRequest
para a API Route Optimization, que retorna umOptimizeToursResponse
com o campoProcessedRequest
definido. O comando anterior vai produzir uma resposta semelhante a esta.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" } }