5 votos

Crear una topología de red para pgrouting con separación de grado

He construido una red usando datos de encuesta sobre la artillería ITN y lo puedo solucionar rutas en toda la red. Lo que necesito es construir en topología de la separación del grado para pasos superiores y pasos inferiores en la red para que mis soluciones de enrutamiento no dejar puentes en carreteras por debajo en un intento de hacer la ruta más corta posible. ¿Alguien tiene cualquier punteros en cuanto a donde empezar?

Estoy usando 2.0.3 de PostGIS y pgRouting 1.0.7dev Postgresql 9.2 en Windows.

3voto

Nate Puntos 1986

Si no pgRouting, nuestro paquete de 4 red RW puede manejar separaciones de grado o niveles de Z como se les llama también. También ofrecemos un convertidor de ITN para importación fácil.

1voto

troy wouters Puntos 26

Cuando la carga de datos PostGIS, no hay información de la topología asociada con ellos. Para crear un útil de la topología de los datos debe ser "noded". Esto significa que donde dos o más caminos se forma una intersección no debe ser un nodo en la intersección y de todos los segmentos de carretera deben ser rotos en la intersección, asumiendo que se puede navegar desde cualquier de estos segmentos a cualquier otro segmento a través de la intersección. (Extracto de pgrouting 2.0 documentación).

En tu caso, parece que algunos nodos son comunes entre los puentes sobre carreteras y debajo de las carreteras. No sé si los nodos se han dado en la NTI de datos o si los ha creado.

Así que usted tiene que pasar a limpio red de pgrouting :

Digamos que usted tiene un puente (a-B-C) y una carretera por debajo de (D) :

Network example

La tabla de pasar a pgRouting es como :

source | target | geometry           | cost
   A   |   B    | LINESTRING (A,B)   | cost_ab
   B   |   C    | LINESTRING (B,C)   | cost_bc
   D   |   B    | LINESTRING (D,B)   | cost_db
   B   |   E    | LINESTRING (B,E)   | cost_be

Tienes que modificarlo para que se

source |target | geometry            | cost
   A   |   C   | LINESTRING (A,B,C)  | cost_ab+cost_bc
   D   |   E   | LINESTRING (D,B,E)  | cost_db+cost_be

Puede crear una tabla temporal y el uso de algunas sentencias case para llenar las columnas/filtro de su grado y generar la modificación de la red.

Tenga en cuenta que pgRouting 2.0 documentación da un ejemplo (pero con nuevos métodos) : pgRouting 2.0 topología de Enrutamiento

0voto

Bdebeez Puntos 2066

Tuve el mismo problema y escribió un simple .net ITN pre-loader para combinar los enlaces levantados:

https://github.com/Simon-Harris/Routing/BLOB/Master/itnPreLoader.CS

No creo que necesita combinar los enlaces de carretera más baja; pgrCreateTopology sólo crea un nodo si ambas carreteras utilizan punto B por lo que sólo necesita quitar del camino elevado.

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