Especificar como e se incluir dados de tráfego

As preferências de tráfego selecionadas equilibram a precisão dos detalhes da rota com o desempenho da solicitação. Ao fazer uma solicitação, você quer avaliar se é melhor retornar os resultados mais precisos possíveis ou retornar os resultados o mais rápido possível. A API Routes oferece opções que permitem controlar a qualidade dos dados de resposta em relação à latência da resposta.

Definir o nível dos dados de tráfego

A API Routes fornece RoutingPreference (REST) e RoutingPreference (gRPC) que permitem especificar preferências de roteamento para calcular rotas. Essas preferências diferem na medida em que levam em consideração as condições de trânsito no cálculo da rota. Cada preferência de trajeto produz resultados que diferem em certo nível em relação à qualidade do trajeto, ao HEC estimado e à latência da resposta.

As condições de trânsito caracterizam a taxa de fluxo do trânsito. Exemplo:

  • Quando não há congestionamento, as condições de trânsito são consideradas normais e o tráfego flui na velocidade normal e livre de obstáculos.
  • Próximo da hora de pico, a densidade do tráfego aumenta, o que diminui a velocidade e gera condições de trânsito leves a moderadas.
  • No tráfego de bate-bate, a taxa de fluxo diminui até parar, produzindo condições de trânsito intensas.

Sem reconhecimento de tráfego

Quando você define a preferência de roteamento TRAFFIC_UNAWARE, as rotas são calculadas sem considerar as condições de trânsito atuais. Essa preferência de roteamento oferece a menor latência de resposta (as respostas são retornadas mais rapidamente).

TRAFFIC_UNAWARE é a configuração padrão.

Na resposta:

  • O ETA está na propriedade de resposta duration.

  • As propriedades de resposta duration e staticDuration contêm o mesmo valor.

Use essa preferência de roteamento quando quiser que as respostas sejam retornadas o mais rápido possível e os detalhes do roteamento aproximados forem bons o suficiente.

Percepção de trânsito

Quando você define a preferência de roteamento TRAFFIC_AWARE, as rotas são calculadas considerando as condições de trânsito atuais. Como resultado, os detalhes do trajeto refletem as condições reais com mais precisão. Como esse aumento na qualidade de dados ocorre à custa da latência de resposta, otimizações de desempenho são aplicadas para reduzir grande parte da latência.

Na resposta:

  • O ETA considerando o tráfego em tempo real está contido na propriedade de resposta duration.

  • A propriedade de resposta staticDuration contém a duração do trajeto sem considerar as condições de trânsito.

Use essa preferência de roteamento quando quiser detalhes mais precisos do que TRAFFIC_UNAWARE, mas não se importar se as respostas forem retornadas com um aumento moderado na latência.

Ideal com reconhecimento de trânsito

Quando você define a preferência de roteamento TRAFFIC_AWARE_OPTIMAL, as rotas são calculadas considerando as condições de trânsito atuais, mas nenhuma otimização de desempenho é aplicada. Nesse modo, o servidor realiza uma pesquisa mais completa da rede de estradas para encontrar o trajeto ideal.

A preferência de trajeto TRAFFIC_AWARE_OPTIMAL é equivalente ao modo usado pelo maps.google.com e pelo app Google Maps para dispositivos móveis.

Ao usar essa opção com o Compute Route Matrix, o número de elementos em uma solicitação (número de origens × número de destinos) não pode exceder 100. Para saber mais sobre os limites da Compute Route Matrix, consulte Calcular uma matriz de rota.

Na resposta:

  • O ETA considerando o tráfego em tempo real está contido na propriedade de resposta duration.

  • A propriedade de resposta staticDuration contém a duração do trajeto sem considerar as condições de trânsito.

Essa preferência de roteamento fornece a maior latência de resposta, ou seja, as respostas retornam com o maior atraso. Use essa preferência de roteamento quando quiser resultados da mais alta qualidade, sem considerar a duração das respostas.

Efeito de definir o horário de partida

Se quiser, use a propriedade departureTime para definir o horário de partida de uma viagem. Se você não definir a propriedade departureTime, o padrão será o horário em que a solicitação será feita.

  • Em TRAFFIC_UNAWARE, não é possível definir departureTime porque a escolha do trajeto e da duração são baseadas na rede viária e nas condições médias de trânsito (independente da hora).

  • Para TRAFFIC_AWARE e TRAFFIC_AWARE_OPTIMAL, que consideram as condições de trânsito em tempo real, o tráfego em tempo real se torna mais importante quanto mais próximo for o departureTime de agora. Quanto mais longe você define o horário de partida, mais atenção é às condições de trânsito históricas.

Exemplo de configuração de preferência de roteamento

O código JSON a seguir demonstra como definir a preferência de roteamento no corpo de uma entidade de mensagem de solicitação.

{
  "origin":{
    "location":{
      "latLng":{
        "latitude":37.419734,
        "longitude":-122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":37.417670,
        "longitude":-122.079595
      }
    }
  },
  "travelMode":"DRIVE",
  "routingPreference":"TRAFFIC_AWARE_OPTIMAL"
}

Configurar o tráfego em polilinhas

Com a API Routes, você pode solicitar informações sobre as condições de trânsito em uma polilinha com reconhecimento de trânsito. Consulte Solicitar polilinhas para mais informações.