Roads Management Insights: Una guía para la selección de rutas

imágenes

En este documento, se proporcionan prácticas recomendadas para definir SelectedRoutes con la API de Road Selection para el producto Roads Management Insights (RMI). Definir correctamente tus SelectedRoutes es el paso más importante para garantizar que recibas datos de tráfico precisos y confiables para los tramos de ruta que deseas supervisar. Para obtener una descripción general técnica completa, consulta la documentación oficial de la API de Road Selection.

Principios básicos de la creación de rutas seleccionadas

Cuando definas un SelectedRoute para el monitoreo, debes cumplir con los siguientes principios para garantizar la precisión de SelectedRoute y la validez de los datos.

1. Ser específico para la vista Lateral de la ruta

Un objeto SelectedRoute debe representar una sola dirección de viaje. En el caso de las autopistas divididas o las rutas con una mediana, debes crear objetos SelectedRoute separados para cada dirección (p.ej., uno para el norte y otro para el sur). Asegúrate de que el origen, el destino y los puntos de referencia intermedios estén ubicados en el lado correcto de la ruta para la dirección que deseas supervisar. Un origen o destino ubicado en el lado incorrecto de una autopista dividida puede generar SelectedRoutes no deseadas o errores de datos.

2. Cómo controlar rutas de varios niveles y pasos a desnivel

En las rutas complejas con varios niveles (p.ej., autopistas apiladas, pasos superiores, intercambios complejos), un solo par de latitud y longitud puede ser ambiguo y podría hacer que la ruta se "ajuste" al nivel incorrecto. Para evitar esto, debes usar puntos de ruta intermedios para guiar la ruta hacia el tramo y el nivel de la ruta correctos. Si agregas uno o más puntos de ruta, te aseguras de que la ruta siga tu intención exacta.

3. Define puntos de inicio y finalización válidos

Un objeto SelectedRoute no puede comenzar ni finalizar dentro de un túnel. Los puntos de origen y destino de tu SelectedRoute deben estar en ubicaciones al aire libre. Se admiten las rutas seleccionadas que atraviesan túneles, pero el segmento de supervisión no puede comenzar ni finalizar dentro de uno.

imágenes

4. Cómo definir longitudes de ruta adecuadas

Un objeto SelectedRoute es flexible y se puede definir en varias escalas:

  • Rutas cortas: Un objeto SelectedRoute puede ser tan pequeño como una sola cuadra, lo que resulta útil para el análisis detallado en áreas urbanas.
  • Rutas uniformes: Puedes definir SelectedRoutes de distancias iguales (p.ej., cada 0.8 km) para generar informes coherentes.
  • Rutas largas: Un objeto SelectedRoute puede abarcar un tramo largo y continuo de la ruta. Es ideal para supervisar corredores de autopistas completos o rutas arteriales principales entre intersecciones importantes.

Elige la longitud de SelectedRoute que mejor se adapte a tus necesidades de supervisión y análisis.

5. Identifica tramos de ruta con separación vertical (túneles, viaductos, puentes, etc.)

Cuando se definen tramos de ruta con coordenadas de latitud y longitud, es fundamental tener en cuenta las situaciones en las que varios tramos de ruta ocupan el mismo espacio geográfico bidimensional, pero están separados verticalmente. Esto suele ocurrir con estructuras como túneles, viaductos, pasos superiores y puentes. Confiar solo en la latitud y la longitud sin considerar la elevación puede generar imprecisiones en la selección de SelectedRoute y en la navegación. Por ejemplo, una ruta que pasa por un túnel tendrá la misma latitud y longitud aéreas que el tramo de ruta en la superficie que se encuentra sobre él. Del mismo modo, un viaducto o un puente compartirán coordenadas horizontales con la ruta que se encuentra debajo. Si no se diferencian estos tramos apilados verticalmente, el sistema de rutas puede dirigir el tráfico de forma incorrecta a una ruta de nivel inferior cuando se pretende usar una ruta de nivel superior, o viceversa.

En este ejemplo en Boston, en 42.362347, -71.055935, hay un túnel enorme llamado Big Dig.

imagen

Cuando colocamos un punto de referencia en una ruta, incluso una pequeña imprecisión en sus coordenadas geográficas exactas puede generar un cálculo de ruta muy diferente. Esta sensibilidad a la ubicación de los puntos de referencia es un factor fundamental en los algoritmos de selección de SelectedRoute.

Por ejemplo, considera una situación en la que un punto de referencia se establece inicialmente justo dentro de un túnel. Si la ubicación de este punto de referencia se ajusta ligeramente a una ruta de acceso adyacente, a pesar de tener coordenadas de latitud y longitud casi idénticas, es posible que el motor de enrutamiento genere una ruta completamente diferente. Este fenómeno subraya la importancia de ingresar puntos de referencia precisos y las complejidades que implica la optimización de rutas, en especial en áreas con redes viales y características geográficas intrincadas.

imagen

imagen

6.No se puede hacer un seguimiento de todas las rutas

Es posible que tu SelectedRoute no siempre se pueda rastrear

  • Más allá de la "Jurisdicción" registrada
  • Baja "Utilidad de la ruta"
    • Esto puede hacer que la capacidad de seguimiento cambie con el tiempo.

La validación se ejecuta de forma asíncrona ⇒ Comprueba si todas las SelectedRoutes registradas pasaron esta validación.

Prácticas recomendadas para la definición de SelectedRoute

Sigue estas prácticas recomendadas para mejorar la calidad de tus definiciones de SelectedRoute y los datos resultantes.

Cómo usar puntos de referencia intermedios (puntos medios)

Incluso para las SelectedRoutes cortas y aparentemente simples, se recomienda incluir al menos un punto de referencia intermedio.

  • ¿Por qué?
    • Enrutamiento guiado: Garantiza que tu SelectedRoute siga la ruta específica que deseas, en especial si existen rutas alternativas entre el origen y el destino.
    • Habilita los bucles: Se requiere para representar correctamente los bucles o las rutas seleccionadas de "ida y vuelta" en las que el origen y el destino son los mismos.
    • Mejora la detección de desvíos: Cuantos más puntos de referencia proporciones, más fácil será detectar y marcar los puntos de datos en los que el tráfico se haya desviado de la ruta seleccionada prevista.
  • ¿Cómo?
    • Puedes encontrar de forma programática un punto medio a lo largo de una SelectedRoute conocida con funciones geoespaciales.
    • Ejemplo (BigQuery): Usa la función ST_LINEINTERPOLATEPOINT.
    • Ejemplo (JavaScript): Usa la función along de la biblioteca Turf.js.

Coincide con rutas de sistemas externos

Si importas datos de rutas desde un SIG externo o un sistema creado en una red de rutas diferente, es posible que las coordenadas no se alineen perfectamente con la red de rutas de Google. Esto puede generar "rutas no deseadas".

  • Cómo corregir el problema:
    1. Verifica el lado de la ruta: Primero, valida que tu origen y punto de partida estén en el lado correcto de la ruta.
    2. Ajuste a la ruta: Usa el método matchPath de la API de Roads v2 para ajustar los datos de tu ruta existente a la red de rutas de Google.
    3. Ajusta y vuelve a dibujar manualmente: Ajusta manualmente tus puntos de referencia en una herramienta para que coincidan con las rutas de Google. Luego, usa el método computeRoute de la API de Routes (con el tráfico establecido como "sin información") para generar una polilínea limpia que siga la red de Google.
    4. Rastreo: Como último recurso, superpón tus datos en la red de rutas de Google en una herramienta de SIG y rastrea manualmente la ruta para crear nuevos puntos de referencia.

Limpieza y validación de datos

Los datos que recibes en BigQuery reflejan las condiciones del mundo real. Debes aplicar pasos de limpieza para filtrar los datos que no representan tu SelectedRoute principal.

Cómo controlar desvíos

La API de Routes, que impulsa RMI, siempre intentará devolver una ruta válida. Si la ruta seleccionada que deseas tomar está bloqueada o muy congestionada, es posible que la API muestre una ruta que tome un desvío y se desvíe de los puntos intermedios definidos. Por ejemplo, si tu SelectedRoute especifica una ruta de A -> B -> C, un desvío podría generar una ruta devuelta que vaya directamente de A -> C.

Por ejemplo, si trazamos esta ruta: 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 Podemos ver un desvío enorme que probablemente se deba a las condiciones de la ruta, pero, si no se corrige con cuidado, puede generar una recopilación de datos incorrecta.

imagen

En el caso de RMI, estos registros de desvío son menos útiles, ya que no representan la SelectedRoute específica que supervisas.

  • Acción: No borres estas filas. Debes marcarlos para analizarlos y comprender cuándo y por qué se producen los desvíos.
  • Cómo marcar desvíos: Existen dos métodos principales para identificar desvíos de forma programática:
    1. No coincide el punto de referencia: Verifica si la geometría de la ruta devuelta no incluyó todos los puntos de referencia intermedios que especificaste.
    2. Discrepancia de distancia: Comprueba si el distance de la ruta devuelta es significativamente diferente de la distancia esperada de tu SelectedRoute. Un umbral común es una diferencia del 5%.
  • Ejemplo de BigQuery para marcar desvíos: Puedes unir tu tabla SelectedRoutes (que contiene la distancia esperada) con la tabla RouteResponses y usar una sentencia CASE para crear una marca.

Cómo controlar geometrías "MultiLineString"

El tipo de datos GEOGRAPHY de BigQuery tiene una limitación: no puede almacenar un solo LineString que se superponga a sí mismo (p.ej., un giro en U curvo, una ruta que se devuelve sobre sí misma debido a un desvío).

  • Síntoma: Cuando esto ocurre, BigQuery guarda la geometría como un MultiLineString y es posible que falten partes de la ruta.
  • Acción: Debes filtrar estos registros de tu análisis principal.
    1. Filtro de BigQuery: Usa WHERE ST_GEOMETRYTYPE(route_geometry) != "ST_MultiLineString"
  • Solución:
    1. Si la superposición se debe a un desvío, el registro se puede filtrar como se describió anteriormente.
    2. Si tu SelectedRoute prevista contiene una superposición, debes redefinirla dividiendo el objeto SelectedRoute en dos o más objetos SelectedRoute separados.

Conversión de zona horaria

Todos los datos de marcas de tiempo en la exportación de BigQuery del RMI se proporcionan en hora universal coordinada (UTC). Para generar informes o análisis en una zona horaria local, debes convertir estas marcas de tiempo.

  • Ejemplo de BigQuery para la conversión de hora: Usa las funciones DATETIME y TIMESTAMP para convertir una marca de tiempo de UTC a una zona horaria local específica, como "America/Los_Angeles".

Conclusión

Si sigues las prácticas recomendadas que se describen en esta guía, podrás garantizar que tus definiciones de SelectedRoute sean precisas y sólidas, lo que generará datos de tráfico confiables y prácticos del producto Insights de Administración vial. Definir correctamente las rutas, controlar las geometrías viales complejas y validar los datos resultantes son pasos fundamentales para aprovechar todo el potencial de la RMI en tus necesidades de administración vial.

Autores

Sarthak Gangopadhyay: DevRel de Google Maps Naoya Moritani: DevRel de Google Maps