我正面临一个子问题,我得到了我的城市的数据库(包括postgis,pgrouting)。
我需要建立从A点到B点的路径/路线。如果此路径长于xx公里,那么此路径必须访问给定“停止点”(让我们称之为C)之一。如果从C到B的路径长于xx公里,那么我们必须访问C和B之间的一个更多的中间“停止点”。pgrouting/postgis - 搜索中间点的算法
0
A
回答
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
}
+0
谢谢,我有一些共同的想法,但重点是我不知道如何找到中间点(selectIntermediatepoint(A,B))。 – user3613919
+0
你有什么要求选择一个中间点?你为什么需要这个中间点?你能计算完整的路线,然后将其细分为多个部分?或者选择一个刚刚超出限制的节点。这将增加路线的计算时间。 –
相关问题
- 1. 搜索最佳点搜索算法
- 2. SPARQL中的搜索算法?
- 3. 搜索算法
- 4. 搜索算法
- 5. 3维跳点搜索算法
- 6. 日志库3时间搜索算法
- 7. 在树中搜索算法
- 8. .net搜索算法?
- 9. 图搜索算法
- 10. 搜索算法 - Java
- 11. 跳搜索算法
- 12. 最快的搜索算法
- 13. Pacman的搜索算法
- 14. 计算峰值搜索算法(2D)的时间复杂度
- 15. O(n)中的2键搜索算法
- 16. Java中的字符串搜索算法
- 17. 如何避免遗传算法中的无效搜索空间?
- 18. 空间搜索到多点
- 19. A *搜索算法卡住
- 20. 最大搜索算法
- 21. 邻居搜索算法
- 22. 工作搜索算法
- 23. 多搜索过滤算法
- 24. 桌面搜索算法
- 25. 并行搜索算法
- 26. Python三元搜索算法
- 27. 四元搜索算法
- 28. 字符串搜索算法
- 29. 关键字搜索算法
- 30. 实现A *搜索算法
在未来,请不要交叉张贴问题(https://gis.stackexchange.com/questions/241829/function-algorithm-to-find-intermediate-points-if -path-是太长)。有关更多信息,请参阅[这里](http://meta.stackexchange.com/q/64068)。 – Matt