Más

PgRouting: error de vértice de destino

PgRouting: error de vértice de destino


Estoy tratando de hacer una matriz que muestre el costo de un nodo al resto de los nodos de una red.

El resultado final que busco no es el coste, sino solo saber si un coche puede o no llegar a cada vértice.

Hice una prueba en un área pequeña de mi red y parece funcionar perfectamente. Obtengo el costo de un nodo al resto, y si no puedo alcanzarlo, solo dejo el valor comoNULO, entonces puedo establecer este valor en falso.

El problema es que cuando trato de extender esta metodología al resto de la red, aparece un error que muestra que elno se encontró el vértice de destino.

¿Por qué pgRouting dice esto, si estoy haciendo el mismo análisis?

Los pasos que he seguido son:

--creando topología ALTER TABLE "3prueba" ADD COLUMN "source" integer; ALTER TABLE "3prueba" ADD COLUMN "target" integer; SELECCIONE pgr_createTopology ('3prueba', 0.00001, 'geom', 'id'); - (ya tengo el campo de costo) --indexes CREATE INDEX vials3_source_indx ON calles ("fuente"); CREAR ÍNDICE vials3_target_indx ON calles ("target"); --y cree la tabla "3catchment82" como id de selección, the_geom, (seleccione la suma (costo) de (SELECT * FROM pgr_dijkstra ('SELECT id AS id, source :: int4 AS source, target :: int4 AS target, coste :: float8 AS cost FROM "3prueba" donde mostrar = 1 ', - <- mostrar solo las carreteras 82, - <- especificar id de nodo :: int4, false, false)) as foo) as cost from "3prueba_vertices_pgr"

Estos son los pasos que he seguido.

La idea principal es obtener los costos solo para las carreteras con el campo "mostrar = 1", como muestro en la imagen. Si la vía está cerrada (mostrar = 0) no puede llegar al nodo. Entonces, la vía roja está cerrada, y no se pueden llegar a los nodos 58, 59, 5… Después de esto, cambiaré las vías. Entonces, puedo obtener una matriz cuando algunas carreteras están cerradas, otra matriz cuando otras carreteras están cerradas, etc. Cuando aplico este análisis al resto de la red, aparece el error.

¿Alguna idea de qué estoy haciendo mal o cuál sería la forma correcta de hacerlo?


Después del consejo de @underdark, parece funcionar.

Ejecuté el modelo aplicando un alto costo a las carreteras 'cerradas' y parece estar bien.

He visto que hay 3 tipos de salida:

  • En verde: nodos a los que llega la fuente.

  • En rojo: nodos que no llegan a la fuente.

  • En naranja: nodos desconectados. Los valores eran NULL.

Entonces, creo que el problema estaba en este tipo de nodos.


Supongo que tiene problemas cuando intenta enrutar desde una parte de la red a otra parte que está desconectada debido al cierre (por ejemplo, cuando se elimina el enlace 58-47). En lugar de eliminar estos enlaces, intente hacer que sus costos sean realmente altos. De esa manera, podrá identificar aquellos enlaces que se desconectan por su alto costo.


Ver el vídeo: pmapper pgrouting