【问题标题】:pgrouting / postgis - algorithm for searching intermediate pointspgrouting / postgis - 搜索中间点的算法
【发布时间】:2017-10-27 13:13:09
【问题描述】:

我面临一个子问题,我在其中获得了我所在城市的数据库(使用 postgis、pgrouting)。
我需要创建一条从 A 点到 B 点的路径/路线。如果这条路径超过 xx 公里,那么这条路径必须访问给定的“停止点”之一(我们称之为 C)。如果从 C 到 B 的路径超过 xx 公里,那么我们必须在 C 和 B 之间的某处再访问一个中间“停止点”,等等。

【问题讨论】:

标签: algorithm postgresql graph postgis pgrouting


【解决方案1】:

这听起来像这样的伪代码循环,我会将其转换为 plpgsql 存储过程:

A = start
S = stop
B = S
while true {
  r = getRoute(A, B)
  if length(r) > limit then
     B = selectIntermediatepoint(A, B)
  else if B == S then
     break
  else
     A = B
     B = S
} 

【讨论】:

  • 谢谢,我有一些共同点,但关键是我不知道如何找到那个中间点 (selectIntermediatepoint(A, B))。
  • 您对选择中间点有什么要求?为什么需要这个中间点?您可以只计算完整路线然后将其细分为多个段吗?或者选择一个刚好低于你的限制的节点。这一切都会增加路由的计算时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多