ES:Enrutamiento
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
- Simplemente desde la página principal de OSM (entrada de blog con descripción(en))
- Enrutamiento/Enrutadores en línea – Hay muchos sitios webs que usan datos de OpenStreetMap para ofrecer planificadores de ruta en línea; los que ofrecen ámbito global se detallan más adelante.
- Enrutamiento/Enrutadores fuera de línea – Además existen varias opciones para instalar el software de navegación fuera de línea en tu dispositivo de mano o portátil.
- Hay disponibles aplicaciones de navegación para Android, Apple iOS, Java ME (J2ME) y Openmoko. Para otras plataformas móviles, véase Software#Dispositivos móviles.
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
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
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++:
- Open Source Routing Machine
- Valhalla ([1])
- Routino, enrutador flexible con preferencias de enrutamiento seleccionables por el usuario.
- Navit
- RoutingKit (licencia BSD, 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:
- PyrouteLib, el motor de enrutamiento tras Pyroute
- SimpleOsmRouter, el enrutador más simple posible
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 tipología superior.
- Incorporarse hacia y desde carreteras de tipología inferior.
- Giros 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
- bicycle=* para access=* específico de bicicletas
- route=bicycle
- highway=cycleway para ciclovías independientes
- cycleway=* para infraestructura en la propia calle
- surface=*
- mtb:scale=*
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
- Etiquetas deOSM para enrutamiento - ¿Qué datos se almacenan en OpenStreetMap que se pueden usar para enrutamiento?
- CartoType, cartotype.com
- Enrutamiento-Rollstuhlfahrer - Proyecto alemán para el enrutamiento de sillas de ruedas (ahora la ruta de las sillas de ruedas se ha mejorado e integrado en openrouteservice.org)
- Problemas de enrutamiento - ¿Hay algún problema que no se pueda resolver con el enrutamiento de menor coste? ¿Tenemos alguna sugerencia para resolver esos problemas?
- Perfiles de enrutamiento - ¿Qué categorías de personas quieren generar rutas y cuáles son sus necesidades específicas? ¿Qué peso debemos usar cuando un «caballo que le teme a los semáforos pero le gusta caminar en el bosque» pide una ruta? ¿Cómo elegimos la mejor ruta para un ciclista que circula por la noche con neumáticos lisos y sin luces?
- Ejemplo de instrucciones de conducción
- Arreglo de TIGER - Arreglo de rutas en los Estados Unidos, comenzando con la ruta interestatal básica. Véase también Arreglo de TIGER/250 ciudades.
- Enrutamiento ferroviario - ¿Cómo podemos hacer el enrutamiento en redes de transporte público y otros servicios programados?
- Directrices para navegación peatonal - Cómo mapear las carreteras, los senderos, etc., para que se puedan generar rutas peatonales precisas y realistas
- LoroDux - Rutas peatonales para dispositivos móviles para ciegos
- Enrutamiento/Taxi a - un acercamiento divertido a la comparación de rutas de larga distancia
- Vídeo: Charla Google Tech - Peter Sanders - Planificación de la ruta rápida (en)
- Leaflet Routing Machine