- 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 que contém um ShipmentModel e retorna um OptimizeToursResponse que contém ShipmentRoutes, que são um conjunto de rotas a serem realizadas por veículos, minimizando o custo geral.
Um modelo ShipmentModel consiste principalmente em Shipments que precisam ser realizados e Vehicles que podem ser usados para transportar os Shipments. As ShipmentRoutes atribuem Shipments a 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 para um 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 termine ou que o prazo do servidor para solicitações síncronas seja atingido, o que acontecer primeiro. Para solicitações assíncronas, o servidor vai gerar uma solução (se possível) antes que o tempo limite expire. Duração em segundos com até nove dígitos fracionários, terminando em " |
model |
Modelo de envio a ser resolvido. |
solvingMode |
Por padrão, o modo de solução é |
searchMode |
Modo de pesquisa usado para resolver a solicitação. |
injectedFirstSolutionRoutes[] |
Orienta o algoritmo de otimização a encontrar uma primeira solução semelhante a uma anterior. O modelo é restrito quando a primeira solução é criada. As entregas 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 atender a algumas proposiçõ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. Em vez disso, 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 serão concluídas, mas não podem ser modificadas. Se a solução injetada não for viável, um erro de validação não será necessariamente retornado. Em vez disso, um erro indicando inviabilidade poderá ser retornado. |
refreshDetailsRoutes[] |
Se não estiver vazio, as rotas fornecidas serão atualizadas sem modificar a sequência de visitas ou os tempos de viagem. Apenas outros detalhes serão atualizados. Isso não resolve o modelo. Desde 11/2020, isso só preenche as polilinhas de rotas não vazias e exige que Os campos Esse campo não pode ser usado com
|
interpretInjectedSolutionsUsingLabels |
Se for verdade:
Essa interpretação se aplica aos campos Se for verdadeiro, os rótulos nas seguintes categorias vão aparecer no máximo uma vez em cada categoria:
Se um Remover visitas ou rotas inteiras 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 caller precisa garantir que cada |
considerRoadTraffic |
Considere a estimativa de tráfego ao calcular os campos |
populatePolylines |
Se for "true", as polilinhas serão preenchidas nas respostas |
populateTransitionPolylines |
Se for "true", as polilinhas e os tokens de rota serão preenchidos na resposta |
allowLargeDeadlineDespiteInterruptionRisk |
Se esse campo for definido, a solicitação poderá ter um prazo (consulte https://grpc.io/blog/deadlines) de até 60 minutos. Caso contrário, o prazo máximo é de apenas 30 minutos. As solicitações de longa duração têm um risco significativamente maior (mas ainda pequeno) de interrupção. |
useGeodesicDistances |
Se for "true", as distâncias de viagem serão calculadas usando distâncias geodésicas em vez de 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 esta solicitação, informado de volta no |
geodesicMetersPerSecond |
Quando |
maxValidationErrors |
Trunca o número de erros de validação retornados. Esses erros geralmente são anexados a uma carga útil de erro INVALID_ARGUMENT como um detalhe de erro BadRequest (https://cloud.google.com/apis/design/errors#error_details), a menos que solvingMode=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.