0

我正在使用带有 pgrouting 的 postgresql / PostGIS,我需要计算最短路径。在以前版本的 pgrouting 中,我使用的是 shortest_path_astar。在我的路由图中,我有不可能的部分,例如锁着的门。我用了:

SELECT id FROM shortest_path_astar('SELECT edge_id AS id, vertex_id1 AS source, vertex_id2 AS target, ' || '(CASE WHEN door = ''S'' THEN -1.0  ELSE  (length)  )  END)::float8 AS cost, ' || '(CASE WHEN door_rev = ''S'' THEN -1.0  ELSE  (length)  )  END )::float8 AS reverse_cost, ' || 'x1, y1, x2, y2 FROM edges', origin_node, destination_node, TRUE, TRUE)

基本上:当门关闭时(门 = ''S''),我将成本固定为 -1。在这个函数的新版本 pgr_astar 之前它工作得很好。使用 pgr_astar 而不是 shortest_path_astar,此查询会使服务器崩溃。

如何更改我的功能以避免崩溃?

4

2 回答 2

1

您能否发布一个简单的测试用例,在问题跟踪器中重现此崩溃:https ://github.com/pgRouting/pgrouting/issues

成本:-1 应该工作应该工作。

于 2013-11-29T23:09:22.750 回答
0

我终于使用了 pgr_bdAstar,双向 A* 最短路径。

于 2013-11-29T10:36:01.037 回答