解決策が見つからないため、数日間非常に奇妙な問題に苦しんでいます。私はpostgis 2とpgrouting 2エクステンションでpostgresql 9.3を使用しています。都市の OSM データをインポートし、pgr_createTopology() 関数を使用してトポロジ ネットワークを作成しました。たとえば、実行することにより、ダイクストラアルゴリズムで最短経路を見つけることができます(単純化されたコスト関数は無視してください)
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
問題は、返されたエッジの ID に対応する id2 値が、planet_osm_roads テーブルに存在しないことです。実際には、これらの値は、planet_osm_roads または Planet_osm_roads_vertices_pgr テーブルのどの列にも見つかりません。何か不足していますか?誰かが以前に同じ問題に直面したことがあるかもしれません。
よろしくお願いします