【发布时间】:2018-05-19 21:46:47
【问题描述】:
我有一个整数数组(节点或目的地),即数组[2,3,4,5,6,8],需要按给定的顺序访问。
我想要的是,使用 pgr_dijkstra 获得最短距离。但是 pgr_dijkstra 找到了两点的最短路径,因此我需要使用 pgr_dijkstra 找到每对的距离并添加所有距离以获得总距离。
成对会像
2,3
3,4
4,5
5,6
6,8。 有没有办法定义一个函数来接受这个数组并使用 pgr_dijkstra 找到最短路径。
查询是:
第一对(2,3)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads',2,3, false);
第二对(3,4)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,3,4,*** false)
第三对(4,5)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,4,5,*** false);
注意:数组大小不是固定的,可以不同。
有没有办法在 postgres sql 中自动执行此操作,可能是使用循环等? 请让我知道该怎么做。 谢谢。
【问题讨论】:
标签: mysql sql postgresql mysql-python pgrouting