pgrouting / postgis - 搜索中间点的算法

时间:2017-05-26 15:17:42

标签: algorithm postgresql graph postgis pgrouting

我正面临一个子问题,我的城市有数据库(带有postgis,pgrouting)。
我需要建立从A点到B的路径/路径。如果此路径长于xx千米,则此路径必须访问给定的“停止点”之一(我们称之为C)。如果从C到B的路径长于xx公里,那么我们必须在C和B之间的某个地方再访问一个中间“停止点”。

1 个答案:

答案 0 :(得分: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
}