ES:Enrutamiento

From OpenStreetMap Wiki
Jump to navigation Jump to search
Navegación de Skobbler (aplicación en línea de navegación paso a paso para iOS).

Los servicios de enrutamiento (en algunos países denominados de navegación) ayudan a la gente a ir de un lugar a otro. Los datos de OpenStreetMap incluyen información para el enrutamiento de muchos modos de transporte, incluyendo automóvil, a pie, en bicicleta y a caballo. Hay muchos servicios de enrutamiento fuera de línea, incrustados y basados en web que usan datos de OpenStreetMap.

Para los desarrolladores esta página proporciona consejos sobre el software disponible para crear nuevas aplicaciones o desarrollos de enrutamiento y detalla los datos clave de OpenStreetMap que pueden usarse para crear mejores motores de enrutamiento. También hay disponibles varias listas de correo.

Usuarios finales: Software de enrutamiento

Véase también: Lista de servicios basados en OSM#Enrutamiento

Mapeadores: Mejora de los datos del mapa

Para que el software de enrutamiento funcione bien, los datos del mapa subyacente deben ser de buena calidad. Esencialmente esto significa que las vías que deberían estar conectadas estén de hecho conectadas, las carreteras de un solo sentido esté etiquetadas, las restricciones de giro estén mapeadas, y así sucesivamente. Debes estar familiarizado con las características del mapa empleadas, en particular, consulta Etiquetas de OSM para enrutamiento para entender las etiquetas específicas de enrutamiento.

Corrección de errores con MapDust

Muestra de cómo determinar los nodos conectados y no conectados en Potlatch.

Muchos de los errores en MapDust han sido añadidos directamente desde aplicaciones de navegación de IOS o Android. Esto lo convierte en un buen lugar para buscar mejoras en los datos del mapa. Algunos errores son específicamente sobre carreteras de un solo sentido o restricciones de giro, y están marcados como tales.

Encuentra muchos errores de «mala ruta» u «otros» errores en un área pequeña, ya que esto puede indicar una conexión perdida entre rutas. En Potlatch, cuando seleccionas una vía, verás todos los nodos resaltados. Si un nodo es grande y cuadrado, entonces está conectado a otra vía. Para mejorar la calidad de los datos de OSM, puedes usar también los informes generados por WayCheck.

Nota: Intenta desmarcar la opción «Ocultar errores con texto predeterminado» en MapDdust, ya que muchos usuarios no cambian el texto predeterminado cuando usan la aplicación de navegación.

Datos de velocidad

Para un mejor cálculo de la ruta más rápida, por favor, considera ayudar añadiendo datos de velocidad usando la etiqueta maxspeed=*. Esto es especialmente importante cuando el límite de velocidad difiere de la velocidad máxima permitida supuesta por el tipo de carretera para cada país y tipo de vehículo.

Nota: Hay algunos servicios para facilitar identificar límites de velocidad que faltan.

A menudo la velocidad máxima no tiene sentido: véase #Velocidad media.

Comprobando tu corrección

Una vez que hayas corregido un error en el mapa tendrás que esperar hasta que la versión revisada del mapa se propague en el motor de enrutamiento que estés usando. Este retraso dependerá en cada motor de:

  • la frecuencia con que reciba actualizaciones de la base de datos
  • cuánto tiempo necesite para actualizar su base de datos interna.

En el caso del OSRM usado en la página principal del mapa, normalmente recibe actualizaciones dos veces al día y luego pasa 10-12 horas procesando las actualizaciones. Esto da un retraso total de entre 10 y 24 horas desde que se guarda la corrección en el mapa hasta que funciona en el OSRM.


Desarrolladores

Esta imagen de caminos a Roma fue generada usando GraphHopper.

Software de código abierto de escritorio y servidor

Java:

  • openrouteservice, biblioteca y API libre y de código abierto con muchas opciones y un ecosistema de más herramientas y librerías para Javascript, R, Python, QGIS, etc.
  • GraphHopper es un motor de enrutamiento de código abierto para redes de carreteras escrito en Java. Rápido y eficiente en términos de uso de memoria (para Android, iOS, escritorio y servidor web), usado por Cruiser y muchos otros.
  • El sitio de OpenTripPlanner es un planificador de viajes multimodal que soporta datos de OSM. El Desplegador OTP facilita el despliegue de su propia instancia de enrutamiento.
  • BRouter se centra en el enrutamiento ciclista y presta atención a los niveles de elevación, rutas alternativas, perfiles de enrutamiento totalmente configurables y enrutamiento fuera de línea escrito inicialmente para Android, pero también tiene una API web. BRouter puede también funcionar en QMapShack.
  • OptaPlanner es un motor de planificación ligero e integrable que optimiza el problema de las rutas de los vehículos, el problema de los vendedores ambulantes y sus variantes. Está basado en las API de GraphHopper y Google Maps.
  • JGraphT (jgrapht.org) es una «biblioteca de clase que proporciona objetos y algoritmos de teoría de gráficos matemáticos». Usada por JOSM/Complementos/Routing

C/C++:

C#:

  • Itinero – bibliotecas (.Net) para problemas de enrutamiento y optimización del transporte; anteriormente parte de la biblioteca OsmSharp

Ruby:

  • Mormon, versión ruby de pyroutelib

Python:

Software de dispositivos móviles

C/Java:

  • Guru Maps, enrutador en línea y fuera de línea para iOS y Android
  • OsmAnd, mapa OSM, PDi y enrutamiento (automóvil/bicicleta/a pie, en línea y fuera de línea) para Android e iOS
  • Navit, para Linux, Windows y dispositivos portátiles
  • GraphHopper, librería de enrutamiento de código abierto para escritorio, Android e iOS, usada por Cruiser
  • BRouter se centra en el enrutamiento ciclista y ofrece información sobre elevación, alternativas de ruta, perfiles de enrutamiento totalmente configurables y enrutamiento fuera de línea para Android
  • OpenTripPlanner es una aplicación Android para planificación multimodal de viajes usando cualquier servidor OpenTripPlanner
  • MapFactor Navigator Free para Android e iOS
  • MAPS.ME para Android e iOS

Herramientas de bibliotecas/desarrollo

Artículo principal: Marcos de trabajo/Navegación

Las bibliotecas centradas en el enrutamiento OSM se pueden encontrar en Desarrollo/Marcos de trabajo. A continuación, algunas bibliotecas generales:

  • openrouteservice, biblioteca y API libre de código abierto con muchas opciones y un ecosistema de herramientas y bibliotecas adicionales para Javascript, R, Python, QGIS, etc.
  • DGLib. Biblioteca de gráficos dirigidos usada por las herramientas de redes vectoriales de Grass (camino más corto, vendedor ambulante, isodistancias, árboles de Steiner; también como complementos)
  • Graphserver es un servicio web que proporciona los itinerarios más cortos en mapas de carreteras TIGER/line, y datos de transporte público en el formato de especificación de alimentación en tránsito general.
  • osm4routing es una herramienta de línea de comandos para analizar los datos de OSM en un gráfico de ruta.
  • pgRouting - motor de enrutamiento basado en PostGIS. Herramienta especial osm2pgrouting para importar datos de OSM a la estructura gráfica interna. Funciona directamente sobre las tablas de la base de datos SQL.
  • Libosmscout ofrece interfaces simples y de alto nivel para la representación fuera de línea y funcionalidades de enrutamiento basadas en datos de OpenStreetMap.
  • Spatialite. Spatialite tiene su propio motor de enrutamiento VirtualNetwork y una herramienta spatialite_osm_net para construir una red de enrutamiento directamente a partir de los datos de OSM. El enrutamiento puede usar tanto el algoritmo de Dijkstra como el de A*.
  • GraphHopper, motor de enrutamiento con la API de Java.
  • ffwdme.js es un juego de herramientas JavaScript que tiene como objetivo llevar las direcciones de conducción interactivas del GPS al navegador móvil.
  • Valhalla es un servicio de enrutamiento gratuito y de código abierto que permite integrar el enrutamiento y la navegación en una aplicación web o móvil.

Protocolos:

  • El protocolo predeterminado es la API v0.6 empleada por los principales servidores. Si puede contener todos los datos disponibles en OSM, obtén un volcado de Planet.osm.

Consideraciones de enrutamiento

Tipo de viales

El orden de valores para las etiquetas highway ordenados por velocidad asumida es:

Tipo Descripción (válido principalmente en Europa occidental)
motorway Por lo general, la velocidad máxima puede mantenerse durante largas distancias, pero estas carreteras pueden ser sensibles a los largos atascos de tráfico. Normalmente están prohibidas para el tráfico lento (peatones, ciclistas, agrícolas, etc.)).
trunk Es similar a las autopistas, pero estas carreteras pueden tener cruces a nivel, por lo que los tramos en los que se puede alcanzar la máxima velocidad son más cortos. Es preferible evitar el uso de vehículos lentos (a veces prohibidos, dependiendo de la legislación local).
primary Conexión de carreteras entre ciudades, pueblos y aldeas. La clasificación depende principalmente de la importancia de las áreas que conectan. Esto se refleja a menudo también en el número de carriles y en el tráfico general, pero la velocidad para estas clasificaciones es en su mayoría comparable. Normalmente alrededor de 90-100 km/h en vías interurbanas, y 50 (o incluso 30) km/h al cruzar un lugar poblado.
secondary
tertiary
motorway_link Se usa para las rampas de entrada y salida o para los cruces completos de autopistas. La velocidad alcanzable depende mucho de la curvatura, normalmente alrededor de 60-90 km/h.
trunk_link A diferencia de los cruces de autopistas, estos enlaces son a menudo piezas muy cortas (por ejemplo, permiten girar a la derecha sin detenerse en un semáforo). La velocidad en estos trozos de carretera es muy lenta, ya que a menudo tienen que ceder el paso a otro tráfico.
primary_link
secondary_link
tertiary_link
unclassified Estas carreteras suelen conectar las granjas, las casas aisladas y las pequeñas aldeas a través del campo con las zonas residenciales más grandes. Debido a la falta de señales de tráfico, a menudo tienen un límite de velocidad mucho más alto de lo que se puede conducir con seguridad. La velocidad en una carretera no clasificada bien mantenida pero desconocida raramente excederá los 50 km/h.
residential Las vías residenciales o calles urbanas se encuentran en una zona residencial, por lo que suelen tener un límite de velocidad de 50 a 30 km/h, con muchas medidas para calmar el tráfico.
living_street Las vías clasificadas como «living_street» son calles donde el tráfico lento tiene derecho de paso absoluto. El límite de velocidad es normalmente alrededor de 20 km/h. El tráfico de paso está absolutamente desaconsejado (y a menudo no es posible).
service Las vías de servicio suelen encontrarse en propiedades privadas o estacionamientos. El conductor tiene que prestar atención a las maniobras de otros vehículos, y a menudo debe detenerse y esperar.
track Las pistas son caminos con fines agrícolas. Normalmente conectan los campos con las granjas. La superficie a veces los hace inaccesibles para los coches normales, o al menos limita las velocidades a un ritmo muy lento. Las pistas deben evitarse siempre para el tráfico de paso.
pedestrian Las vías peatonales están normalmente prohibidas para los vehículos motorizados, pero pueden permitirse a ciertas horas (por ejemplo, temprano en la mañana) o para ciertos propósitos (como la entrega de mercancías a las tiendas). Incluso cuando está permitido, únicamente se recomienda circular a velocidad de los peatones. También se puede prohibir el uso de la bicicleta en las vías peatonales.

Esto es muy específico de cada país y bastante inútil sin los valores específicos de cada país. Por ejemplo, en Alemania las carreteras principales permiten 100 km/h, tanto legalmente como a una velocidad realista, mientras que los enlaces de autopistas menores se construyen para permitir una velocidad recomendada de 60 km/h, solo los enlaces de autopistas mayores permiten una velocidad realista de 80 o 100. Para más información, véase Etiquetas de OSM para enrutamiento/Velocidad máxima#Información adicional para los países seleccionados.

Carriles

El número de carriles de un vial se etiqueta directamente en OSM y tiene una gran influencia en la velocidad media (ruta más rápida) y el consumo de combustible (ruta más eficiente). No hay un mapeo simple para la velocidad, desafortunadamente; en muchos casos más carriles solo indican más congestión.

Condición de viales

Otros factores, en nuestro caso más difíciles de medir, que determinan la velocidad media son el ancho del pavimento, la condición de la red (obras en el trazado, tipo de superficie y uniformidad superficial - especialmente en países de la antigua URSS),  niveles de servicio, curva de radio mínimo,  giros peraltados, visibilidad basada en curvas y gradientes, etc.

En OpenStreetMap este modelo puede ser interesante para aquellas rutas donde no hay datos de velocidades (por ejemplo, highway=road).

Inclinaciones

Igual que las curvas, la inclinación puede disminuir la velocidad del tráfico. En invierno, cuando hay mucho tráfico de vehículos, este inconveniente también está presente en vías descendentes. Aunque algunas cuestas están explícitamente etiquetadas, en algunos casos la disponibilidad de información adicional como ele=* y el perfil de elevación de altura de los datos del DEM podrían ser útiles.

Sinuosidad

Véase también turning radius=*.

En algunos estudios sobre accesibilidad [2] se desarrollan modelos que asumen una cierta velocidad de desplazamiento en función del grado de sinuosidad de la vía y de ciertas características de esta. Mediante el índice de sinuosidad (distancia de la línea observada/distancia de la línea esperada) para cada tramo es posible obtener una velocidad estimada según el grado de sinuosidad de la vía y el tipo de ruta. Para ello es necesario tener en cuenta la visibilidad en las curvas (determinada por la vegetación, los terraplenes, los desmontes, los acantilados, etc.) y el ancho de la carretera. El modelo es más preciso si se evitan los arcos excesivamente grandes, siempre que una curva larga pueda ser igual a muchas curvas pequeñas a lo largo de un camino, dando valores similares de sinuosidad para ambas rutas. Algunos países usan estos valores para dividir secciones de la vía y poner límites de velocidad (pero esto no es habitual).

Por otro lado, los enfoques geográficos como el de la  sintaxis del espacio presuponen que, en los entornos urbanos, los peatones y los conductores se ven influidos en el momento de elegir sus trayectos por la visibilidad de la ruta. A este respecto, un peatón que se desplace, por ejemplo, del punto A al punto B seleccionará principalmente calles, plazas o avenidas anchas y rectilíneas con un amplio campo visual, evitando que se crucen con calles sinuosas y estrechas, incluso cuando este último recorrido sea algo más corto.

Cruces, intersecciones y cambios de carril

Se debe asumir cierto coste por:

  • cruzar carreteras de clase alta
  • cambiar hacia y desde carreteras de clase baja
  • cambios de sentido en U
  • cambios de carril
  • señales de tráfico, véase traffic_signals:direction=*

Velocidad media

Los datos de OpenStreetMap necesitarán valores promedio/realistas de velocidad para el enrutamiento.

  • maxspeed:practical=* es una propuesta rechazada aunque empleada para etiquetar los valores de velocidad media estimados (con la posibilidad de especificar los valores de día/noche/hora punta) en zonas donde los límites de velocidad oficiales carecen en gran medida de sentido y la información del tipo de carretera/vía es insuficiente para derivar estimaciones significativas de la velocidad de viaje.
  • Speedcollector es un servicio actualmente desaparecido para recopilar mediciones del mundo real, del que podría ser posible derivar velocidades medias por vial de las pistas almacenadas.
  • la matriz de velocidad estadística global es un concepto propuesto (¿sin signos actuales de vida?) para extraer la información de velocidad de las pistas NMEA/GPX y almacenarla eficientemente en una base de datos para que los datos recopilados sean útiles para fines de enrutamiento.
  • Para un límite superior, véase maxspeed=*.

Lista de otras etiquetas que dan pistas de enrutamiento

Bicicleta

Véase también Senderismo

Senderismo

Obstáculos de ruta y otras condiciones que requieren una consideración especial

  • crossing=* - peatonales y otros cruces, reducción de velocidad.

Motores de enrutamiento descontinuados

Artículo principal: Motores de enrutamiento descontinuados

Listas de correo

Las siguientes listas de correo son relevantes para el enrutamiento:

  • osm-routing - 'Discusión sobre el enrutamiento con el vector datos'. Especialmente en lo que respecta a los datos de OSM' Ten en cuenta que está casi inactivo, es probable que osm-talk u osm-dev sea preferible para la mayoría de los temas.
  • osm-accessibility - Para todos los tipos de discapacidades, se trata de la propuesta y el uso de etiquetas que son de especial interés para las personas discapacitadas. Con estos datos se crearán mapas especiales.

Véase también