4 votos

¿Enrutamiento de tránsito utilizando pgrouting como motor principal de enrutamiento?

Soy estudiante y estoy trabajando en un proyecto. El objetivo es dado dos conjuntos de coordenadas (origen y destino) ruta a través del mapa para determinar el camino óptimo utilizando el transporte público y, por supuesto, los bordes a pie.

He leído sobre GTFS, pero es demasiado complejo, no me importa el horario de tránsito, el tiempo, etc. Mi único objetivo es proporcionar al usuario una representación gráfica del camino más corto, y el coste sólo será la longitud de las aristas multiplicada por la tarifa del modo de transporte público (por ejemplo, longitud en kilómetros * tarifa de autobús por kilómetro), longitud de las aristas multiplicada por la velocidad media del modo de transporte (por ejemplo, longitud en kilómetros * velocidad media del autobús por kilómetro), además, mi país aún no ha proporcionado datos GTFS.

Para ello he decidido utilizar PostgreSQL, PostGIS y pgRouting. Aquí está mi idea y lo que he hecho hasta ahora.

primero: descargar un extracto de OpenStreetMap tomado de http://metro.teczno.com/#manila .

a continuación: convertir los datos XML OSM en una base de datos enrutable utilizando la herramienta osm2pgrouting.

He hecho esto usando Cgywin desde que estoy usando Windows, pero se encontró con algún error, sin embargo, creo que ver mis resultados a continuación:

> reference nd=[some digits] has no corresponding node entry...
  Nodes table created 
  2create ways failed: 
  Types table created 
  Way_tag table created 
  Relations table created 
  Relation_ways table created 
  Classes table created
  Adding tag types and classes to database... 
  Adding relations to database... 
  Adding nodes to database...
  Adding ways to database...
  Creating topology...
  NOTICE:  CREATE TABLE will create implicit sequence "vertices_tmp_id_seq" for serial column "vertices_tmp.id"
  CONTEXT:  SQL statement "CREATE TABLE vertices_tmp (id serial)" 
  PL/pgSQL function "assign_vertex_id" line 14 at EXECUTE statement
  '######################### 
  size of streets: 1072190
  size of splitted ways : 2281124
finished

No sé exactamente si este tipo de resultado debe preocuparme, pero he intentado hacer un poco de enrutamiento. Parece que funciona hasta ahora, si usted tiene algún comentario sobre mi osm2pgrouting resultado, agradecería la ayuda.

De cualquier manera, después de convertir los datos XML, cargar la aplicación QGIS y cargar la tabla de caminos utilizando el plugin DB Manager PostGIS para convertir la tabla en un shapefile, entonces voy a habilitar el etiquetado para ver el id de borde de cada borde. entonces voy a empezar a rastrear qué bordes se utilizan para el transporte público, (dado que ya tengo un mapa físico que contiene rutas)

entonces: Crearé una nueva tabla o múltiples tablas que establecerán relación entre la tabla "camino" y mis datos de transporte público. Aún no he decidido su estructura, pero ésa es la idea.

Ahora, utilizando pgRouting, voy a ejecutar una consulta del camino más corto que sólo se dirigirá a los bordes que también son bordes de tránsito y transitables a pie (calzada).

Ahora mi pregunta es:

¿Estoy en el buen camino o me estoy perdiendo algo o hay algo mal en mi idea?

Por favor agradecería mucho sugerencias, correcciones etc. y si hay cosas que me ayudarían en hacer luz a este proyecto mío.

3voto

Patrick Puntos 116

No hay ningún error en la salida de osm2pgsql. Sólo da un aviso de que crea una tabla de vértices con una columna serial.

Si el resultado del enrutamiento parece correcto, entonces la importación y la topología han ido bien. Probablemente deberías comprobar si importaste todas las vías que quieres usar y ajustar el archivo de configuración en consecuencia.

Sin embargo, para las rutas multimodales (si te preocupan los horarios de autobuses y trenes), las funciones estándar del camino más corto no funcionan. Hubo un proyecto Google Summer of Code, que implementa un enrutamiento multimodal (disponible en una rama del repositorio de Github), aunque tienes que compilar pgRouting tú mismo y no está muy probado.

0 votos

Gracias! es bueno saber que mis datos de base de datos en bruto no tienen defectos. sólo quiero aclarar, sin embargo, en relación con este tipo de salidas que me sale al principio cuando trato de ejecutar el osm2pgrouting "Referencia nd =" algunos dígitos " no tiene entrada de nodo correspondiente (Tal vez la entrada de nodo después de referencia?)" ¿qué me dice exactamente?, ¿afectará esto a mi enrutamiento?

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