罗孚传说

RoverTang.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一直不明白公交换乘的原理,更不懂最短路径的算法,只是有点想法,想说出来看大家觉得是否可行。
先贴一个来自GIS开发者的《GIS中最短路径的实现》,和GIS空间站的《GIS 领域最短路径搜索问题的一种高效实现》,以及台湾的《最短路径问题》

如果是基于拓扑关系的公交换乘也许简单些,毕竟节点什么的通过拓扑关系肯定有了。也许更复杂些,因为判断拓扑关系的话可能需要遍历所有的路径,这样速度可能会变慢。
那么基于数据库的公交换乘肯定也应该有这些拓扑关系,只是这个拓扑关系应该保存在数据库中(不明白GeoDataBase中的拓扑关系是什么保存的)。那么拓扑关系应该如何保存呢?表应该如何建立呢?先画个模型图,不知道正确与否,如果错误请指正。

图中指出,公交换乘和站台(Node)、路段(Road)距离有关,其中又与枢纽站(V什么的单词,忘了,不好意思,用Hinge代替下吧,Hinge是特殊的Node)有很大的关系。
无法表达清楚我的意思,大体意思是起点处开始搜索下一节点,下一节点是枢纽则搜索枢纽相交的线路,继续搜索每条线路上的节点,如此反复,直到最后到达终点。当然这样会算出很多条路线,有些路线换乘多有些路线换乘少,那么控制换乘次数(不要超过3次),并控制最短路径(各站点间距离之和),这样算是最佳路径呢?
请哪位理解的朋友帮我在这里用VISO这样的软件画个流程图,谢谢了。

换乘一:从B4到C5。
方案1:B4->B3->H1(B2/C2)->H2(A2/C3)->C4->C5
换乘次数/枢纽站:1/2
距离:DB3+DB2+DC2+DC3+DC4
方案2:B4->B5->B6->H3(B7/C6)->C5
换乘次数/枢纽站:1/1
距离:DB4+DB5+DB6+DC5

换乘二:从A1到C6。
方案1:A1->H2(A2/C3)->C4->C5->H3(B7/C6)
换乘次数/枢纽站:1/1
距离:DA1+DC3+DC4+DC5
方案2:A1->H2(A2/C3)->H1(B2/C2)->B3-B4->B5->B6->H3(B7/C6)
换乘次数/枢纽站:2/2
距离:DA1+DC2+DB2+DB3+DB4+DB5+DB6

换乘三:从A1到B4。
方案1:A1->H2(A2/C3)->C4->C5->H3(B7/C6)->B6-B5-B4
换乘次数/枢纽站:2/2
距离:DA1+DC3+DC4+DC5
方案2:A1->H2(A2/C3)->H1(B2/C2)->B3-B4
换乘次数/枢纽站:2/2
距离:DA1+DC2+DB2+DB3

搞不懂MAPBAR的公交换乘,只是觉得它的公交换乘很烂,他们的肯定不是基于矢量地图的,那么是基于数据库的?极索的好一点,可能是基于JAVA小程序的缘故?还是因为它预先保存了公交线路换乘?
实在是表达不清楚,请大家补充。
如果思路明了了,那么数据库该如何建立?每条公交线路、每条公交线路站点、相邻公交站点间的距离、枢纽站的公交线路等这些信息在数据库中如何存放和组织?

posted on 2006-05-28 11:17  Rover.Tang  阅读(9389)  评论(17编辑  收藏  举报