gpt4 book ai didi

postgresql - pgr_drivingDistance 在每条路线上具有灵活的距离值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:36:36 29 4
gpt4 key购买 nike

我想使用 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
);

红星代表起点。

现在,我想要一个以相同方式工作的图表,例如从一个点开始并获得所有方向的路线。不同之处在于,我不想提供行驶距离,而是提供位于道路网络上的点坐标列表。每个方向的路线都必须停在每条路线上的第一个到达点。每条路线的距离都不同,我不知道哪些点最近。

The desired output using the "stopping" points, which are visualized in green, is supposed to look like this.

我已经试过了:

  • 使用给定的算法 pgr_drivingDistance 并在每次未到达任何点时增加距离值 -> 这里的问题:所有方向的距离都相等,而不是每条路线的距离。
  • 使用算法 pgr_dijkstra对于每条路线 -> 这里的问题:因为你不知道哪个点受到影响,你不知道选择哪个终点进行计算。您也不能选择附近最近的一个,因为您需要特定路线上最近的一个。

我知道我必须构建一个几乎完整的新算法,但也许有人知道如何开始甚至体验这​​类问题。

提前致谢!

最佳答案

这是一个一对多的路由问题。您必须计算到每个终点的路线以找到最短的路线。我最近没有看过 pgRouting 函数,但我相信有一对多、多对一和多对多 Dijkstra 函数。您应该能够使用一对多来一次计算所有路线,然后您可以根据长度对路线进行排序以找到最短的路线。

关于postgresql - pgr_drivingDistance 在每条路线上具有灵活的距离值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56786122/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com