我想使用pgsql计算与等时线相似的图。因此,我已经使用了算法pgr_drivingDistance。您提供一个起点和一个距离值并接收一个等时线。
The output using the algorithm收到的代码类似于:
SELECT * FROM pgr_drivingDistance(
'SELECT id, source, target, cost FROM edge_table',
2, 2, false -- starting point, distance, directed
);
红色星星代表起点。
现在,我想要一个工作原理相同的图形,例如从一个点开始并获得各个方向的路线。所不同的是,我不想提供行进距离,而是要提供道路网络上包含点坐标的列表。各个方向上的路线都必须在每个路线上的第一个到达点处停止。每条路线上的距离都不一样,我不知道哪个点是最近的点。
我已经尝试过:
我知道我必须构建一个几乎完整的新算法,但是也许有人对如何开始甚至是解决此类问题有一个想法。
提前谢谢!
答案 0 :(得分:0)
这是一对多路由问题。您必须计算到达每个端点的路线以找到最短的路线。我最近没有看过pgRouting函数,但我相信这里有一个一对多,多对一和多对多的Dijkstra函数。您应该能够使用一对多计算一次的所有溃败,然后可以根据长度对溃败进行排序以找到最短的溃败。