As preferências de trânsito selecionadas equilibram a precisão dos detalhes do trajeto com o desempenho da solicitação de uma das duas maneiras:
- Com reconhecimento de trânsito: retorna os resultados mais precisos possíveis (maior latência).
- Sem considerar o trânsito: retorne os resultados o mais rápido possível (menor latência).
Ao fazer uma solicitação, avalie se é melhor retornar os resultados mais precisos possíveis ou retornar resultados o mais rápido possível. A biblioteca Routes oferece opções que permitem controlar a qualidade dos dados de resposta em relação à latência da resposta.
Definir o nível e o modelo de trânsito
Para especificar o nível de tráfego, defina o
routingPreference
no ComputeRoutesRequest. A lista a seguir mostra as opções de
routingPreference disponíveis:
TRAFFIC_UNAWARE(padrão): retorna resultados mais rapidamente, com detalhes aproximados de rotas.TRAFFIC_AWARE: retorna resultados mais precisos usando dados de trânsito em tempo real, mas com maior latência.TRAFFIC_AWARE_OPTIMAL: retorna os resultados mais precisos possíveis usando dados de tráfego em tempo real, mas com a maior latência.
A propriedade TRAFFIC_MODEL representa as premissas usadas na previsão da duração no trânsito (
TrafficModel.BEST_GUESS [padrão],
TrafficModel.OPTIMISTIC,
TrafficModel.PESSIMISTIC).
Como selecionar o roteamento com reconhecimento de tráfego
Para criar uma solicitação de rota com reconhecimento de trânsito, siga estas etapas:
-
Defina a propriedade
travelModecomoDRIVING. -
Defina a propriedade
routingPreferencecomo uma das seguintes opções:TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
OBSERVAÇÃO:
TRAFFIC_UNAWAREé a configuração padrão. -
Defina a propriedade
trafficModelcomo uma das seguintes opções: -
Defina a propriedade
extraComputationscomoTRAFFIC_ON_POLYLINE. -
Solicite os campos
path,speedPathserouteLabels.
O exemplo de solicitação a seguir mostra como pedir um trajeto com informações de trânsito que mostre dados de tráfego na polilinha:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
Condições de trânsito
As condições de trânsito caracterizam a taxa de fluxo de tráfego:
- Trânsito normal: sem congestionamento, com o tráfego fluindo em velocidade normal.
- Trânsito leve a moderado: congestionamento crescente, com tráfego fluindo a uma velocidade reduzida.
- Trânsito intenso: congestionamento grave, com velocidade muito reduzida.
Sem informações de trânsito
TRAFFIC_UNAWARE é a configuração padrão. Use essa preferência de roteamento quando quiser respostas rápidas e detalhes aproximados forem suficientes.
As rotas TRAFFIC_UNAWARE são calculadas sem considerar as condições de trânsito atuais. Essa preferência de roteamento resulta na resposta de solicitação mais rápida (menor latência).
Se você escolher TRAFFIC_UNAWARE, as opções de trajeto e duração se baseiam na rede viária e nas condições médias de trânsito (independente da hora), não nas condições de trânsito atuais.
Assim, os trajetos podem incluir vias que estão temporariamente interditadas. Os resultados de uma determinada solicitação podem variar com o tempo devido a mudanças na rede viária, atualizações nas condições médias de trânsito e a natureza distribuída do serviço. Eles também variam entre trajetos quase equivalentes a qualquer momento ou frequência.
Estas são as respostas que você vai encontrar:
duration: contém a HEC da rota.staticDuration: a estimativa de chegada da rota considerando apenas informações históricas de trânsito. ParaTRAFFIC_UNAWARE, esse campo contém o mesmo valor queduration.
Com informaçõ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.
Quando você define a preferência de roteamento TRAFFIC_AWARE, o serviço calcula o trajeto considerando as condições de trânsito atuais. Como resultado, a rota e os detalhes dela refletem com mais precisão as condições do mundo real. Como esse aumento na qualidade dos dados ocorre às custas da latência de resposta, otimizações de desempenho são aplicadas para reduzir grande parte da latência.
Estas são as respostas que você vai encontrar:
duration: a HEC considerando informações de trânsito em tempo real.staticDuration: a estimativa de chegada da rota considerando apenas informações históricas de trânsito.
Melhor trajeto com informações de trânsito
Use essa preferência de roteamento quando quiser resultados da mais alta qualidade, sem considerar o tempo de resposta. Essa preferência de roteamento tem o maior atraso no retorno de respostas (maior latência).
Quando você define a preferência de roteamento TRAFFIC_AWARE_OPTIMAL, o serviço calcula o trajeto considerando as condições de trânsito atuais, mas não aplica otimizações de desempenho. Nesse modo, o servidor realiza uma pesquisa mais completa da rede viária para encontrar o trajeto ideal.
A preferência de trajeto TRAFFIC_AWARE_OPTIMAL é equivalente ao modo usado por
maps.google.com e pelo app Google Maps para dispositivos móveis.
Quando você usa essa opção com computeRouteMatrix, o número de elementos em uma
solicitação (número de origens × número de destinos) não pode exceder 25.
Estas são as respostas que você vai encontrar:
duration: o HEC do trajeto considerando informações de trânsito em tempo real.staticDuration: a estimativa de chegada da rota considerando apenas informações históricas de trânsito.
Definir horário de partida (opcional)
Use essa propriedade apenas para solicitações com reconhecimento de tráfego em que o horário de partida precisa ser no futuro. Se você não definir a propriedade departureTime, ela será definida por padrão como o momento em que você faz a solicitação.
Use a propriedade departureTime com as opções TRAFFIC_AWARE e TRAFFIC_AWARE_OPTIMAL quando quiser ajustar a forma como o serviço prevê o tráfego ao escolher um trajeto.
TRAFFIC_UNAWARE: não recomendado porque a escolha do trajeto e da duração se baseia na rede viária e nas condições médias de trânsito (independente da hora).TRAFFIC_AWAREeTRAFFIC_AWARE_OPTIMAL: Recomendado para partidas que vão acontecer em breve porque essas preferências consideram as condições de trânsito em tempo real. Quanto mais próximo de agora for odepartureTime, mais importante e relevante será o trânsito em tempo real. Quanto mais você define o horário de partida no futuro, mais as condições históricas de trânsito são consideradas na seleção de rotas.
Receber um token de rota
Os tokens de rota são uma representação de uma rota codificada em base64 e segura para a Web. Use um token de rota para compartilhar uma rota com o SDK Navigation. O SDK usa esse token para reconstruir a rota e manter a intenção de navegação original, mesmo durante um novo trajeto.
Siga estas etapas para receber um token de rota:
- Defina o travelMode como
DRIVING. - Defina
routingPreferencecomoTRAFFIC_AWAREouTRAFFIC_AWARE_OPTIMAL. - Solicite o campo
routeToken.
O exemplo de solicitação a seguir mostra como pedir um token de rota:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };