46 votos

¿Enlaces e ideas para la elaboración de mapas?

Estoy utilizando OpenStreetMap y su red de carreteras vectorial y me gustaría implementar un algoritmo de comparación de mapas.

Actualmente soy capaz, para cada posición GPS, de recuperar el segmento de carretera más cercano y calcular la proyección de esta posición a ese segmento, como en esta imagen (la chincheta roja es la posición GPS pura, en azul el segmento mapeado y en verde la posición mapeada):

enter image description here

Sin embargo, debido a la falta de precisión del GPS, a veces la posición mapeada salta de un segmento a otro y puede proporcionar alguna posición mapeada inconsistente de vez en cuando.

Mi algoritmo actual es muy básico: a partir de la posición GPS pura, obtengo el segmento más cercano y decido que la posición coincidente mapeada está en éste. Sé que esto se puede mejorar mucho.

Me imagino que tener en cuenta la dirección del vehículo mejorará la correspondencia del mapa, pero ¿conoces algún otro enfoque que me permita mejorar mi matcher de mapas?

¿Busco algún enlace, y/o software de código abierto?

11voto

Lars Mæhlum Puntos 4569

La proyección de los puntos sobre la línea, como ya está haciendo, es posible hacerla directamente en PostGIS. Escribí sobre esto hace algún tiempo, aquí

Pero para resolver su problema cuando los puntos están más cerca del segmento incorrecto que del segmento correcto, tal vez este podría ser un enfoque posible.

  1. Construir una cadena de líneas de los puntos
  2. Pruebe las soluciones sugeridas en Algoritmos de concordancia de segmentos para que coincida con toda la línea en lugar de sólo punto por punto

11voto

Anthony Cramp Puntos 126

Esta pregunta ha sido convertida a la Wiki de la Comunidad y la wiki ha sido bloqueada porque es un ejemplo de pregunta que busca una lista de respuestas y parece ser lo suficientemente popular como para protegerla del cierre. Es debe ser tratado como un caso especial y no debe ser visto como el tipo de pregunta que se fomenta en este, o cualquier sitio de Stack Exchange pero si desea contribuir con más contenido, siéntase libre de hacerlo de hacerlo editando esta respuesta.


Después de leer un poco sobre los algoritmos de emparejamiento de mapas, he entendido lo siguiente:

  • Para hacer coincidir la ubicación gps con la carretera, se necesitan los datos reales de la carretera en formato vectorial
  • Le ayudará tener diferentes pesos para diferentes caminos. Así, las probabilidades de que un punto coincida con una carretera serán mayores, que con la coincidencia de una línea lateral.
  • Tienes que tomar el historial, y la velocidad de la lectura del gps. Por ejemplo, si el punto gps ha coincidido con el carril lateral durante mucho tiempo, debe tenerlo en cuenta, y no coincidir directamente con la autopista. -El emparejamiento real se hace usando una variedad de técnicas estadísticas.

Para ampliar la lectura, sugiero lo siguiente:

8voto

jeffreypriebe Puntos 1070

1- Un bonito .pdf que acabo de encontrar sobre este tema :

http://safari.ce.sharif.edu/file/2011-06-06/259/2009_An%20off-line%20map-matching%20algorithm%20for%20incomplete%20map%20databases.pdf

que también enlaza con un Implementación de código abierto en C++ del comparador de mapas descrito en el documento: http://eden.dei.uc.pt/~camara/files/mgemma.zip
(este es un emparejador de mapas fuera de línea, mi entendimiento es que calcula las posiciones emparejadas del mapa con toda la ruta como entrada y no puede hacerlo sobre la marcha para cada posición).

2- Entonces, acabo de leer este en profundidad y es realmente bueno en mi opinión : https://dspace.lboro.ac.uk/dspace-jspui/bitstream/2134/4860/1/velaga.pdf "Desarrollo de un algoritmo mejorado de emparejamiento topológico basado en pesos para sistemas de transporte inteligentes"
El algoritmo se explica claramente y los valores de ajuste del peso también se proporcionan en el documento.

5voto

El método también se denomina "confusión vectorial". Hay una página Wiki dedicada ( http://wiki.openstreetmap.org/wiki/Conflation ) que ofrece una visión general y enumera paquetes de software (de código abierto) para realizar la confluencia de vectores de carreteras como "JOSM conflation plugin", "Potlatch 2 merging tool", "RoadMatcher" (para OpenJUMP), y otros.

5voto

Neolisk Puntos 140

En el caso de los algoritmos de emparejamiento de mapas, depende de si se necesita un procesamiento en tiempo real o fuera de línea. En este último caso, los algoritmos más avanzados pueden procesar ~ 1000 puntos por segundo. Los requisitos de memoria dependen de la cobertura, por supuesto. Hemos logrado exprimir la red de carreteras OSM del planeta en aproximadamente 16 Gb para este propósito.

Además, hay que distinguir coincidencia de mapas de inferencia del camino : se trata de dos procesos distintos dependiendo de si tienes datos de alta o baja frecuencia. Cuando se tienen relativamente pocos puntos (por ejemplo, 1 dato cada kilómetro en el contexto urbano), es inferencia del camino ya que normalmente hay que hacer alguna suposición para adivinar por dónde viaja el dispositivo. La inferencia de la trayectoria suele ser más difícil, pero cada vez es menos problemática con los dispositivos modernos y el precio de la adquisición de datos.

Puedes consultar en mi perfil una API que hace la coincidencia de mapas directamente en OSM: utiliza la coincidencia topológica y funciona bien con datos de coches flotantes, por ejemplo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X