Resposta após a solução de um problema de otimização de percursos, contendo as rotas seguidas por cada veículo, as remessas que foram puladas e o custo geral da solução.
| Representação JSON | 
|---|
| { "routes": [ { object ( | 
| Campos | |
|---|---|
| routes[] | 
 Rotas computadas para cada veículo. A rota i corresponde ao veículo i no modelo. | 
| requestLabel | 
 Cópia do  | 
| skippedShipments[] | 
 A lista de todos os envios pulados. | 
| validationErrors[] | 
 Lista de todos os erros de validação que detectamos de forma independente. Consulte a explicação "VÁRIOS ERROS" para a mensagem  | 
| processedRequest | 
 Em alguns casos, modificamos a solicitação recebida antes de resolvê-la, ou seja, adicionamos custos. Se o modo de resolução for TRANSFORM_AND_RETURN_REQUEST, a solicitação modificada será retornada aqui. Experimental: consulte https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request para mais detalhes. | 
| metrics | 
 Métricas de duração, distância e uso para essa solução. | 
OptimizeToursValidationError
Descreve um erro ou aviso encontrado ao validar um OptimizeToursRequest.
| Representação JSON | 
|---|
| {
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object ( | 
| Campos | |
|---|---|
| code | 
 Um erro de validação é definido pelo par ( Os campos a seguir fornecem mais contexto sobre o erro. VÁRIOS ERROS: quando há vários erros, o processo de validação tenta gerar vários deles. Assim como um compilador, esse é um processo imperfeito. Alguns erros de validação são "fatais", ou seja, eles interrompem todo o processo de validação. Esse é o caso de erros  ESTABILIDADE:  | 
| displayName | 
 O nome de exibição do erro. | 
| fields[] | 
 Um contexto de erro pode envolver zero, um (na maioria das vezes) ou mais campos. Por exemplo, a primeira coleta do veículo 4 e da remessa 2 pode ser feita da seguinte maneira: No entanto, a cardinalidade de  | 
| errorMessage | 
 String legível que descreve o erro. Há um mapeamento de um para um entre  ESTABILIDADE: não é estável: a mensagem de erro associada a um determinado  | 
| offendingValues | 
 Pode conter os valores dos campos. Isso nem sempre está disponível. Não confie nela e use apenas para depuração manual de modelos. | 
FieldReference
Especifica um contexto para o erro de validação. Um FieldReference sempre se refere a um determinado campo neste arquivo e segue a mesma estrutura hierárquica. Por exemplo, podemos especificar o elemento 2 de startTimeWindows do veículo 5 usando:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
No entanto, omitimos entidades de nível superior, como OptimizeToursRequest ou ShipmentModel, para evitar a aglomeração da mensagem.
| Representação JSON | 
|---|
| { "name": string, "subField": { object ( | 
| Campos | |
|---|---|
| name | 
 Nome do campo, por exemplo, "veículos". | 
| subField | 
 Subcampo anidado recursivamente, se necessário. | 
| Campo de união  
 | |
| index | 
 Índice do campo se ele for repetido. | 
| key | 
 Chave se o campo for um mapa. | 
Métricas
Métricas gerais, agregadas em todas as rotas.
| Representação JSON | 
|---|
| {
  "aggregatedRouteMetrics": {
    object ( | 
| Campos | |
|---|---|
| aggregatedRouteMetrics | 
 Agregada nas rotas. Cada métrica é a soma (ou o valor máximo, para cargas) de todos os campos  | 
| skippedMandatoryShipmentCount | 
 Número de envios obrigatórios pulados. | 
| usedVehicleCount | 
 Número de veículos usados. Observação: se uma rota de veículo estiver vazia e  | 
| earliestVehicleStartTime | 
 O horário de início mais cedo de um veículo usado, calculado como o mínimo de todos os veículos usados de  Usa o RFC 3339, em que a saída gerada é sempre normalizada em Z e usa 0, 3, 6 ou 9 dígitos fracionários. Deslocamentos diferentes de "Z" também são aceitos. Exemplos:  | 
| latestVehicleEndTime | 
 A hora de término mais recente de um veículo usado, calculada como o máximo de todos os veículos usados de  Usa o RFC 3339, em que a saída gerada é sempre normalizada em Z e usa 0, 3, 6 ou 9 dígitos fracionários. Deslocamentos diferentes de "Z" também são aceitos. Exemplos:  | 
| costs | 
 Custo da solução, detalhado por campos de solicitação relacionados a custos. As chaves são caminhos proto, em relação à entrada OptimizeToursRequests, por exemplo, "model.shipments.pickups.cost", e os valores são o custo total gerado pelo campo de custo correspondente, agregado em toda a solução. Em outras palavras, costs["model.shipments.pickups.cost"] é a soma de todos os custos de retirada da solução. Todos os custos definidos no modelo são informados em detalhes aqui, exceto os custos relacionados a TransitionAttributes, que são informados de forma agregada desde 01/2022. | 
| totalCost | 
 Custo total da solução. A soma de todos os valores no mapa de custos. |