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