
Este documento apresenta as práticas recomendadas para definir SelectedRoutes usando a API Road Selection para o produto Dados do Gerenciamento de Estradas (RMI). Definir corretamente os SelectedRoutes é a etapa mais importante para garantir que você receba informações de trânsito precisas e confiáveis dos trechos de via que pretende monitorar. Para uma visão geral técnica completa, consulte a documentação oficial da API Road Selection.
Princípios básicos da criação de SelectedRoute
Ao definir um SelectedRoute para monitoramento, siga os princípios abaixo para garantir a acurácia e a validade dos dados.
1. Ser específico para "Ao lado da via"
Um SelectedRoute precisa representar uma única direção de viagem. Para rodovias divididas ou vias com uma mediana, crie objetos SelectedRoute separados para cada direção (por exemplo, um para o sentido norte e outro para o sentido sul). Verifique se a origem, o destino e os pontos de parada intermediários estão no lado correto da via para a direção que você quer monitorar. Um ponto de origem ou destino colocado no lado errado de uma rodovia dividida pode levar a SelectedRoutes ou erros de dados não intencionais.
2. Lidar com vias e viadutos de vários níveis
Em vias complexas com vários níveis (por exemplo, rodovias sobrepostas, viadutos, cruzamentos complexos), um único par de latitude e longitude pode ser ambíguo e resultar no "ajuste" da rota para o nível errado. Para evitar isso, use pontos de referência intermediários para guiar a rota até o trecho de via e o nível corretos. Adicionar um ou mais pontos de parada garante que a rota siga seu objetivo exato.
3. Definir pontos de início e término válidos
Uma SelectedRoute não pode começar nem terminar dentro de um túnel. Os pontos de origem e destino da SelectedRoute precisam estar em locais ao ar livre. SelectedRoutes que atravessam túneis são compatíveis, mas o segmento de monitoramento não pode começar nem terminar em um túnel.

4. Definir comprimentos de rota adequados
Uma SelectedRoute é flexível e pode ser definida em várias escalas:
- Trajetos curtos:um SelectedRoute pode ser tão pequeno quanto um único quarteirão, o que é útil para análises granulares em áreas urbanas.
- Rotas uniformes:é possível definir SelectedRoutes de distâncias iguais (por exemplo, a cada 0,8 km) para gerar relatórios consistentes.
- Rotas longas:um SelectedRoute pode abranger um trecho longo e contínuo de uma via. Isso é ideal para monitorar corredores rodoviários inteiros ou vias principais entre cruzamentos importantes.
Escolha o comprimento de SelectedRoute que melhor atenda às suas necessidades de monitoramento e análise.
5. Identificar segmentos de via com separação vertical (túneis, viadutos, pontes etc.)
Ao definir trechos de via usando coordenadas de latitude e longitude, é crucial considerar cenários em que vários trechos ocupam o mesmo espaço geográfico bidimensional, mas estão separados verticalmente. Isso geralmente acontece com estruturas como túneis, viadutos, passarelas e pontes. Confiar apenas na latitude e na longitude sem considerar a elevação pode levar a imprecisões na seleção e navegação de SelectedRoute. Por exemplo, uma via que passa por um túnel terá a mesma latitude e longitude de sobrecarga que o trecho da via na plataforma acima dela. Da mesma forma, um viaduto ou uma ponte vai compartilhar coordenadas horizontais com a via abaixo dele. Se não for possível diferenciar esses segmentos empilhados verticalmente, o sistema de roteamento poderá direcionar o tráfego incorretamente para uma via de nível inferior quando a intenção era uma via de nível superior, ou vice-versa.
Neste exemplo em Boston, nas coordenadas 42.362347, -71.055935, há um túnel enorme chamado Big Dig.

Quando colocamos um ponto de referência em uma via, mesmo uma pequena imprecisão nas coordenadas geográficas exatas pode levar a um cálculo de trajeto muito diferente. Essa sensibilidade ao posicionamento do ponto de referência é um fator crítico nos algoritmos de seleção de SelectedRoute.
Por exemplo, considere um cenário em que um ponto de referência é definido inicialmente dentro de um túnel. Se a localização desse ponto de referência for ligeiramente ajustada para uma via de acesso adjacente, apesar de ter coordenadas de latitude e longitude quase idênticas, o mecanismo de roteamento poderá gerar um trajeto completamente diferente. Esse fenômeno destaca a importância da entrada precisa de pontos de passagem e as complexidades envolvidas na otimização de rotas, especialmente em áreas com redes viárias e recursos geográficos complexos.


6.Nem todas as vias podem ser rastreadas
Nem sempre é possível rastrear o SelectedRoute
- Além da "Jurisdição" registrada
- Baixa "utilidade da via"
- Isso pode mudar a capacidade de rastreamento com o tempo.
A validação é executada de forma assíncrona ⇒ verifique se as SelectedRoutes registradas passaram por isso
Práticas recomendadas para a definição de SelectedRoute
Siga estas práticas recomendadas para melhorar a qualidade das suas definições de SelectedRoute e dos dados resultantes.
Usar waypoints intermediários (pontos intermediários)
Mesmo para SelectedRoutes curtos e aparentemente simples, é altamente recomendável incluir pelo menos um ponto de parada intermediário.
- Por quê?
- Roteamento de guias:garante que o SelectedRoute siga o trajeto específico que você quer, principalmente se houver vias alternativas entre a origem e o destino.
- EnablesLoops:obrigatório para representar corretamente loops ou "ida e volta" SelectedRoutes em que a origem e o destino são os mesmos.
- Melhora a detecção de desvios:quanto mais pontos de passagem você fornecer, mais fácil será detectar e sinalizar pontos de dados em que o tráfego pode ter desviado da SelectedRoute pretendida.
- Como?
- É possível encontrar programaticamente um ponto médio ao longo de uma SelectedRoute conhecida usando funções geoespaciais.
- Exemplo (BigQuery): use a função ST_LINEINTERPOLATEPOINT.
- Exemplo (JavaScript): use a função "along" da biblioteca Turf.js.
Corresponder rotas de sistemas externos
Se você estiver importando dados de rota de um GIS externo ou de um sistema criado em uma rede viária diferente, as coordenadas podem não se alinhar perfeitamente com a rede viária do Google. Isso pode resultar em "rotas não intencionais".
- Como corrigir:
- Verifique o lado da via:primeiro, valide se a origem e o ponto de partida estão no lado correto da via.
- Ajuste à via:use o método Roads API v2 matchPath para ajustar os dados de rota atuais à rede viária do Google.
- Ajustar e redesenhar manualmente:ajuste manualmente os pontos de referência em uma ferramenta para corresponder às vias do Google. Em seguida, use o método API Routes computeRoute (com o trânsito definido como "unaware") para gerar uma polilinha limpa que segue a rede do Google.
- Traçar:como último recurso, sobreponha seus dados à rede viária do Google em uma ferramenta de GIS e trace manualmente o trajeto para criar novos pontos de referência.
Limpeza e validação de dados
Os dados recebidos no BigQuery refletem condições reais. Aplique etapas de limpeza para filtrar dados que não representam sua SelectedRoute principal.
Lidar com desvios
A API Routes, que alimenta o RMI, sempre tenta retornar um trajeto válido. Se a SelectedRoute pretendida estiver bloqueada ou muito congestionada, a API poderá retornar um trajeto com um desvio que se afasta dos pontos de parada intermediários definidos. Por exemplo, se o SelectedRoute especificar um trajeto de A -> B -> C, um desvio poderá resultar em um trajeto retornado que vai direto de A -> C.
Por exemplo, se traçarmos este trajeto: https://www.google.com/maps/dir/OR-213,+Oregon+City,+OR+97045/Caufield,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/643+OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/Oregon+City,+OR+97045/Washington+Dr,+Oregon+City,+OR+97045/@45.3754391,-122.5822044,15.2z/data=!4m50!4m49!1m5!1m1!1s0x549570b9f466b4a1:0x6390dd57f70701fd!2m2!1d-122.5787!2d45.3231933!1m5!1m1!1s0x549570ca19ded1b3:0xd28eaf8da19c4509!2m2!1d-122.5756369!2d45.3303343!1m5!1m1!1s0x549576c6b4992137:0xb6ed1e1848a8e2a5!2m2!1d-122.5841289!2d45.3640919!1m5!1m1!1s0x549576c0c48ee6f1:0x86497e036c5dd444!2m2!1d-122.5850086!2d45.3662193!1m5!1m1!1s0x549576bfbca6fa93:0xf6b573219354d3f!2m2!1d-122.5851045!2d45.3696112!1m5!1m1!1s0x549576be3782e5db:0xd0ea93d91e8a0792!2m2!1d-122.5857424!2d45.371047!1m5!1m1!1s0x5495769635216053:0x150f4a4f811b98d6!2m2!1d-122.5870571!2d45.3752342!1m5!1m1!1s0x54957697b928b269:0x2b114f280e6ab0f0!2m2!1d-122.5875209!2d45.3760557!3e0?entry=ttu&g_ep=EgoyMDI1MTAxMy4wIKXMDSoASAFQAw%3D%3D É possível notar um grande desvio, provavelmente devido a algumas condições da via. No entanto, se isso não for corrigido com cuidado, pode levar a uma coleta de dados incorreta.

Para RMI, esses registros desviados são menos úteis porque não representam o SelectedRoute específico que você está monitorando.
- Ação:não basta excluir essas linhas. Sinalize-os para análise e entenda quando e por que os desvios estão ocorrendo.
- Como sinalizar desvios:há dois métodos principais para
identificar desvios de forma programática:
- Divergência de ponto de referência:verifique se a geometria da rota retornada não incluiu todos os pontos de referência intermediários especificados.
- Discrepância de distância:verifique se o
distanceda rota retornada é muito diferente da distância esperada do seuSelectedRoute. Um limite comum é uma diferença de 5%.
- Exemplo do BigQuery para sinalizar desvios:é possível unir a tabela
SelectedRoutes(que contém a distância esperada) com a tabelaRouteResponsese usar uma instruçãoCASEpara criar uma flag.
Como processar geometrias "MultiLineString"
O tipo de dados GEOGRAPHY do BigQuery tem uma limitação: não é possível armazenar um único LineString que se sobrepõe (por exemplo, uma curva em U, um trajeto que volta para trás devido a um desvio).
- Sintoma:quando isso acontece, o BigQuery salva a geometria como um
MultiLineString, e partes do trajeto podem estar faltando. - Ação:filtre esses registros da sua análise principal.
- Filtro do BigQuery:use
WHERE ST_GEOMETRYTYPE(route_geometry) != "ST_MultiLineString"
- Filtro do BigQuery:use
- Solução:
- Se a sobreposição for causada por um desvio, o registro poderá ser filtrado conforme descrito acima.
- Se a SelectedRoute pretendida tiver uma sobreposição, redefina-a dividindo a SelectedRoute em dois ou mais objetos
SelectedRouteseparados.
Conversão de fuso horário
Todos os dados de carimbo de data/hora na exportação do BigQuery do RMI são fornecidos no Tempo Universal Coordenado (UTC). Para gerar relatórios ou análises em um fuso horário local, é necessário converter esses carimbos de data/hora.
- Exemplo do BigQuery para conversão de hora:use as funções
DATETIMEeTIMESTAMPpara converter um carimbo de data/hora UTC em um fuso horário local específico, como "America/Los_Angeles".
Conclusão
Ao seguir as práticas recomendadas descritas neste guia, você garante que as definições de SelectedRoute sejam precisas e robustas, resultando em informações de trânsito confiáveis e úteis do produto Dados do Gerenciamento de Estradas. Definir rotas corretamente, processar geometrias de vias complexas e validar os dados resultantes são etapas essenciais para aproveitar todo o potencial do RMI nas suas necessidades de gerenciamento de vias.
Autores
Sarthak Gangopadhyay: Google Maps Devrel Naoya Moritani: Google Maps Devrel