- Solicitação HTTP
- Parâmetros de caminho
- Corpo da solicitação
- Corpo da resposta
- Escopos de autorização
- Permissões do IAM
Envia um OptimizeToursRequest contendo um ShipmentModel e retorna um OptimizeToursResponse contendo ShipmentRoutes, que são um conjunto de trajetos a serem realizados por veículos, minimizando o custo geral.
Um modelo de ShipmentModel consiste principalmente em Shipments que precisam ser executados e Vehicles que podem ser usados para transportar as Shipments. Os ShipmentRoutes atribuem Shipments aos Vehicles. Mais especificamente, eles atribuem uma série de Visits a cada veículo, em que um Visit corresponde a um VisitRequest, que é uma coleta ou entrega de uma Shipment.
O objetivo é fornecer uma atribuição de ShipmentRoutes a Vehicles que minimize o custo total, em que o custo tem muitos componentes definidos no ShipmentModel.
Solicitação HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
O URL usa a sintaxe de transcodificação gRPC.
Parâmetros de caminho
| Parâmetros | |
|---|---|
| parent | 
 Obrigatório. Segmente o projeto ou local para fazer uma chamada. Formato: *  Se nenhum local for especificado, uma região será escolhida automaticamente. | 
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
| Representação JSON | 
|---|
| { "timeout": string, "model": { object ( | 
| Campos | |
|---|---|
| timeout | 
 Se esse tempo limite for definido, o servidor vai retornar uma resposta antes que o período de tempo limite expire ou o prazo do servidor para solicitações síncronas seja atingido, o que ocorrer primeiro. Para solicitações assíncronas, o servidor gerará uma solução (se possível) antes que o tempo limite tenha decorrido. Duração em segundos com até nove dígitos fracionários, terminando em " | 
| model | 
 Modelo de envio para resolver. | 
| solvingMode | 
 Por padrão, o modo de resolução é  | 
| searchMode | 
 Modo de pesquisa usado para resolver a solicitação. | 
| injectedFirstSolutionRoutes[] | 
 Orientar o algoritmo de otimização para encontrar uma primeira solução semelhante a uma solução anterior. O modelo é restrito quando a primeira solução é criada. Quaisquer remessas não realizadas em uma rota são implicitamente ignoradas na primeira solução, mas podem ser realizadas em soluções sucessivas. A solução precisa satisfazer algumas suposições básicas de validade: 
 Se a solução injetada não for viável, um erro de validação não será necessariamente retornado e um erro indicando inviabilidade poderá ser retornado. | 
| injectedSolutionConstraint | 
 Restrinja o algoritmo de otimização para encontrar uma solução final semelhante a uma solução anterior. Por exemplo, isso pode ser usado para congelar partes de rotas que já foram concluídas ou que estão a serem concluídas, mas não devem ser modificadas. Se a solução injetada não for viável, um erro de validação não será necessariamente retornado, e um erro indicando a inviabilidade poderá ser retornado. | 
| refreshDetailsRoutes[] | 
 Se não estiverem vazios, os trajetos informados serão atualizados sem modificar a sequência subjacente de visitas ou tempos de viagem: apenas outros detalhes serão atualizados. Isso não resolve o modelo. Desde 11/2020, ele preenche apenas as polilinhas de trajetos não vazios e exige que  Os campos  Esse campo não pode ser usado com  
 | 
| interpretInjectedSolutionsUsingLabels | 
 Se for verdadeiro: 
 Essa interpretação se aplica aos campos  Se verdadeiro, os rótulos nas seguintes categorias precisam aparecer no máximo uma vez na categoria: 
 Se um  Remover visitas ao trajeto ou trajetos inteiros de uma solução injetada pode afetar as restrições implícitas, o que pode levar a mudanças na solução, erros de validação ou inviabilidade. OBSERVAÇÃO: o autor da chamada precisa garantir que cada  | 
| considerRoadTraffic | 
 Considere a estimativa de tráfego ao calcular os campos  | 
| populatePolylines | 
 Se verdadeiro, as polilinhas serão preenchidas nas  | 
| populateTransitionPolylines | 
 Se verdadeiro, as polilinhas e os tokens de rota serão preenchidos na resposta  | 
| allowLargeDeadlineDespiteInterruptionRisk | 
 Se esse valor for definido, a solicitação poderá ter um prazo de até 60 minutos (consulte https://grpc.io/blog/deadlines). Caso contrário, o prazo máximo será de apenas 30 minutos. As solicitações de longa duração têm um risco de interrupção significativamente maior, mas ainda pequeno. | 
| useGeodesicDistances | 
 Se definido como "true", as distâncias de viagem serão calculadas usando distâncias geodésicas em vez das distâncias do Google Maps, e os tempos de viagem serão calculados usando distâncias geodésicas com uma velocidade definida por  | 
| label | 
 Rótulo que pode ser usado para identificar essa solicitação, informado em  | 
| geodesicMetersPerSecond | 
 Quando  | 
| maxValidationErrors | 
 Trunca o número de erros de validação retornados. Esses erros geralmente são anexados a um payload de erro INVALID_ARGUMENT como um detalhe de erro BadRequest (https://cloud.google.com/apis/design/errors#error_details), a menos que o modo de solução seja VALIDATE_ONLY: consulte o campo  | 
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de OptimizeToursResponse.
Escopos de autorização
Requer o seguinte escopo OAuth:
- https://www.googleapis.com/auth/cloud-platform
Permissões do IAM
Requer a seguinte permissão do IAM no recurso parent:
- routeoptimization.locations.use
Para mais informações, consulte a documentação do IAM.