Más

Restricciones de giro en GraphHopper

Restricciones de giro en GraphHopper


Version corta

Las restricciones de giro no parecen tenerse en cuenta en el enrutamiento de GraphHopper, aunque sus problemas de GitHub dicen que está implementado. ¿Alguien conoce el estado de esto? ¿Se implementó, pero no se fusionó, no se lanzó, no se implementó o simplemente no se activó? ¿O hay algún problema con los datos del ejemplo siguiente? ¿Cuál es el estado de las restricciones de giro en otras soluciones de enrutamiento abiertas basadas en OpenStreetmap?

Versión detallada

Situación

GraphHopper Maps es mi solución de enrutamiento. Parece el mejor servicio de enrutamiento con datos de OpenStreetmap, que a su vez es la base de datos más completa para caminos y senderos para bicicletas.

Como también estoy haciendo algunos mapas de OpenStreetmap y quería avanzar a funciones más sofisticadas como restricciones de giro, traté de aprender de los ejemplos de otras personas. Parece que JOSM los reconoce, pero GraphHopper no los tiene en cuenta.

Ejemplo

Aquí un ejemplo de complejidad media con un cruce que contiene una restricción de giro a la derecha y una restricción de giro en U. OpenStreetmap parece tener las restricciones de giro adecuadas y JOSM parece entenderlas (a juzgar por las señales de tráfico que se muestran en la representación gráfica).

Tenga en cuenta que seleccioné "desde" vía en ambos casos, por lo que se selecciona en la visualización del mapa y puede confirmar que no hay confusión entre la entrada "desde" y "hasta".

Pero cuando lo pruebo en GraphHopper, resulta que ninguna de las dos restricciones se tiene en cuenta. Tanto el giro a la derecha como el posterior giro en U en la ruta que propone GraphHopper son en realidad ilegales:

Implementación de GraphHopper

Entonces me preguntaba si el problema está en los datos de OpenStreetmap o en GraphHopper.

Del número 2 de GitHub "Soporte para restricciones y costos de giro", entiendo que la función de restricciones de giro se implementó hace un tiempo. Pero hay un problema relacionado con GitHub # 55 "Implementación inicial del soporte de restricción de turnos por parte de khuebner" que habla de algunos problemas de fusión con código demasiado complejo en una sola confirmación. También hace referencia a que la fusión se divide en varias partes, las solicitudes de extracción # 133, # 134, # 135 y # 158. Todos están marcados como "cerrados" o "fusionados".

Preguntas

Entonces, ¿alguien sabe cuál es el estado de esto? ¿Se implementó, pero no se fusionó, no se lanzó, no se implementó o simplemente no se activó? ¿O hay algún problema con los datos de este ejemplo? ¿Cuál es el estado de las restricciones de giro en otras soluciones de enrutamiento abiertas basadas en OpenStreetmap?


La función de restricción de giro (también costo de giro) no está implementada actualmente para el modo de aceleración, y este modo de aceleración se usa en GraphHopper Maps. Pero puede descargar GraphHopper fácilmente y habilitar el modo de flexibilidad en config.properties y funcionará:

prepare.chWeighting = no graph.flagEncoders = car | turnCosts = true

Actualizar: todos los modos, incluido el modo de velocidad, admiten restricciones de giro (incluso los costos de giro más generales) desde la v0.12.


editar: reflejando la sintaxis actualizada de config.properties

prepare.ch.weightings = no graph.flag_encoders = car | turn_costs = true

Ver el vídeo: Video RightViu, el sistema de asistencia de giro de vehículos comerciales