几天来我一直在努力解决一个非常奇怪的问题,但我找不到解决方案。我正在使用带有 postgis 2 和 pgrouting 2 扩展的 postgresql 9.3。我已经为一个城市导入了 OSM 数据,并使用 pgr_createTopology() 函数成功创建了拓扑网络。通过执行例如,我可以使用 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,cost)
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
问题在于,planet_osm_roads 表中不存在对应于边 id 的返回 id2 值。实际上,这些值无法在planet_osm_roads 或planet_osm_roads_vertices_pgr 表的任何列中找到。我错过了什么吗?也许以前有人遇到过同样的问题。
谢谢大家