- Solicitação HTTP
- Parâmetros de caminho
- Corpo da solicitação
- Corpo da resposta
- Escopos de autorização
- Permissões do IAM
Envia uma OptimizeToursRequest
que contém uma ShipmentModel
e retorna uma OptimizeToursResponse
que contém ShipmentRoute
s, que são um conjunto de rotas a serem realizadas por veículos, minimizando o custo geral.
Um modelo ShipmentModel
consiste principalmente de Shipment
s que precisam ser realizados e Vehicle
s que podem ser usados para transportar os Shipment
s. As ShipmentRoute
s atribuem Shipment
s a Vehicle
s. Mais especificamente, eles atribuem uma série de Visit
s a cada veículo, em que um Visit
corresponde a um VisitRequest
, que é uma coleta ou entrega de um Shipment
.
O objetivo é fornecer uma atribuição de ShipmentRoute
s a Vehicle
s 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/*/locations/*}: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 vai gerar uma solução (se possível) antes do tempo limite expirar. Duração em segundos com até nove dígitos fracionários, terminando em " |
model |
Modelo de envio a ser resolvido. |
solving |
Por padrão, o modo de resolução é |
search |
Modo de pesquisa usado para resolver a solicitação. |
injected |
Orienta o algoritmo de otimização a encontrar uma primeira solução semelhante a uma anterior. O modelo é limitado quando a primeira solução é criada. Todos os envios não realizados em uma rota são omitidos implicitamente na primeira solução, mas podem ser realizados em soluções sucessivas. A solução precisa atender a 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 a inviabilidade poderá ser retornado. |
injected |
Limitar o algoritmo de otimização para encontrar uma solução final semelhante a uma 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, e um erro indicando a inviabilidade poderá ser retornado. |
refresh |
Se não estiver vazio, as rotas 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 novembro de 2020, isso preenche apenas as polilinhas de rotas não vazias e exige que Os campos Esse campo não pode ser usado com
|
interpret |
Se verdadeiro:
Essa interpretação se aplica aos campos Se verdadeiro, os rótulos das categorias a seguir precisam aparecer no máximo uma vez na categoria:
Se um A remoção de visitas a rotas 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 autor da chamada precisa garantir que cada |
consider |
Considere a estimativa de tráfego ao calcular os campos |
populate |
Se for verdadeiro, as polilinhas serão preenchidas em |
populate |
Se verdadeiro, as polilinhas e os tokens de rota serão preenchidos na resposta |
allow |
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 é de apenas 30 minutos. As solicitações de longa duração têm um risco de interrupção significativamente maior (mas ainda pequeno). |
use |
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 |
geodesic |
Quando |
max |
Corta 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.