Я борюсь с очень странной проблемой в течение нескольких дней, когда не могу найти решение. Я использую postgresql 9.3 с postgis 2 и pgrouting 2 расширения. Я импортировал данные OSM для города и успешно создал сеть топологии с помощью функции pgr_createTopology(). Я могу успешно найти кратчайший путь с алгоритмом Дейкстры, выполнив, например, (игнорировать упрощенную функцию стоимости)Postgres pgrouting2 Dijkstra кратчайший путь возвращает края, которых не существует
SELECT * from pgr_dijkstra(
'SELECT id, source, target, st_length(way) as cost FROM planet_osm_roads',
5744, 5900, false, false
)
и получить следующий результат (Seq, ID1, ID2, стоимость)
0;5744;178191032;428.359590042932
1;5749;177327184;61.7533237967002
2;5821;177327456;544.454553269731
3;5833;177338744;51.1559809959342
4;5871;177338880;71.0702814120015
5;5900;-1;0
проблема заключается в том, что возвращаемые значения id2, соответствующие идентификатору ребер, не присутствуют в таблице planet_osm_roads. Фактически эти значения не могут быть найдены ни в одном столбце таблиц planet_osm_roads или planet_osm_roads_vertices_pgr. Я что-то упускаю? Возможно, раньше кто-то сталкивался с такой же проблемой.
Спасибо всем заранее
Большое спасибо. Это была точная проблема. Тип столбца был bigint в postgres. Ты действительно спас мой день. Спасибо. – geoandri