这个错误通常发生在使用pgr_dijkstraCostMatrix算法时,起点和终点没有正确设置。pgr_dijkstraCostMatrix算法需要在调用时传入两个参数,即起点和终点。如果起点和终点设置不正确,算法将选择不正确的方向,并导致报错。
下面是一个设置正确起点和终点的pgr_dijkstraCostMatrix算法的示例:
例如,我们的起点为1,终点为3:
SELECT * FROM pgr_dijkstraCostMatrix(
'SELECT id, source, target, cost FROM edge_table',
ARRAY(SELECT id FROM node_table WHERE node_table.node_id = 1),
ARRAY(SELECT id FROM node_table WHERE node_table.node_id = 3),
directed := true
);
请注意,在选择起点和终点时,我们使用了node_table中的节点ID来进行筛选。
此外,确保图形的方向正确,即在建立图形时为所有边设置正确的方向属性。如果边的方向属性设置错误,将会导致pgr_dijkstraCostMatrix算法计算错误的路径。