一种基于WebGIS的公交导乘线路信息处理方法技术

技术编号:8682723 阅读:138 留言:0更新日期:2013-05-09 02:42
本发明专利技术涉及一种基于WebGIS的公交导乘线路信息处理方法,包括以下步骤:输入起始公交站点A和终点公交站点B;获取经过起始公交站点A和终点公交站点B的公交线路号,并将它们分别存入动态数组中;对数组中的元素进行比较后,判断是否存在公共线路;判断经过起始点A和终点公交站点B的公交车所包含的所有站点是否存在公共站点C;建立公交权值矩阵T,并对T进行赋值,通过比较公交权值来寻找两次换乘的线路R,若找到则计算出换乘点和所乘的公交线路,并打印输出,退出;若未找到,则打印输出失败的信息并退出。与现有技术相比,本发明专利技术根据需要获取公交线路信息,采用从简到繁、递增式的方式进行计算,并利用先前得到的结果作为后续计算的基础,整个算法高效合理。

【技术实现步骤摘要】

本专利技术涉及一种公交导乘线路选择方法,尤其是涉及。
技术介绍
目前,WebGIS在国内外已得到越来越广泛的应用,城市交通电子地图就是其中的一例,它是智能交通系统(Intelligent traffic System, ITS)的重要组成部分。在城市交通电子地图中,人们广泛关心的问题是对出行线路的选择。对于采用公交出行的人们而言,出行线路的选择主要集中在公交换乘方面,本文研究并提出了一种实用、便捷的公交换乘搜索算法,并采用中间件技术将其应用于基于WebGIS的城市交通电子地图。人们在选择公交线路时考虑的因素很多,如乘车时间是否最少,乘车是否最方便(如换乘次数是否最少),乘车费用是否便宜,乘车路线是否最短,等等。可见,人们出行时面对众多的因素很难做出准确的判断,所以希望电子地图能提供多种出行的参考方案。如果将公交站点看成是图(Graph)的顶点(Vertex),将公交线路看成是图的边(Edge),则求公交换乘选择就等价于求图的最短路径问题。求图的最短路径的最直接方法是采用Dijkstra算法,该算法求从所有其余顶点到特定顶点的最短路径的时间复杂度0(m+nlogn)。然而,在WebGIS中使用该算法有很大的局限性:Di jkstra算法的时间复杂度建立在图已经生成的基础上,对于建立一个由近百条公交线路、每条线路有十几个站点的图来说,图的生成时间是不允许忽略的。在WebGIS中,所有的公交线路信息放置在远程数据库服务器中,如果从数据库中读取全部的公交线路信息来生成图是不现实的。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供,该算法根据需要获取公交线路信息,采用从简到繁、递增式的方式进行计算,并利用先前得到的结果作为后续计算的基础,整个信息处理方法高效合理。本专利技术的目的可以通过以下技术方案来实现:,包括以下步骤:I)输入起始公交站点A和终点公交站点B ;2)从数据库中获取经过起始公交站点A和终点公交站点B的公交线路号,并将它们分别存入动态数组strStartBusNum和动态数组strEndBusNum中;3)对动态数组strStartBusNum和动态数组strEndBusNum中的元素进行比较后,判断是否存在公共线路,若为是,则存入动态数组strSameBusNum中,并打印输出结果,退出;若为否,则执行步骤4);4)将经过起始点A和终点公交站点B的公交车所包含的所有站点分别存入动态数组intStartStop和动态数组intEndStop中,并比较这两个动态数组,判断是否存在公共站点C,若为是,则将公共站点C转换成公交线路号,打印输出结果,退出;若为否,则执行步骤5);5)建立公交权值矩阵T,并对T进行赋值,通过比较公交权值来寻找两次换乘的线路R,若找到则计算出换乘点和所乘的公交线路,并打印输出,退出;若未找到,则执行步骤6);6)打印输出失败的信息,结束。所述的公交权值取I或0, I表不列项和行项对应的两个站点处于同一条线路中,可通过两次换乘到达终点公交站点B,0表示列项和行项对应的两个站点不处于同一条线路,无法通过两次换乘到达达终点公交站点B。与现有技术相比,本专利技术根据需要获取公交线路信息,采用从简到繁、递增式的方式进行计算,并利用先前得到的结果作为后续计算的基础,整个信息处理方法高效合理。附图说明图1为本专利技术的流程图;图2为本专利技术硬件系统的结构示意图。具体实施例方式下面结合附图和具体实施例对本专利技术进行详细说明。实施例如图1所示,,包括以下步骤:步骤S1:输入起始公交站点A和终点公交站点B ;步骤S2:从数据库中获取经过起始公交站点A和终点公交站点B的公交线路号,并将它们分别存入动态数组strStartBusNum和动态数组strEndBusNum中;步骤S3:对动态数组strStartBusNum和动态数组strEndBusNum中的元素进行比较后,判断是否存在公共线路,若为是,则存入动态数组strSameBusNum中,并打印输出结果,退出;若为否,则执行步骤S4;步骤S4:将经过起始点A和终点公交站点B的公交车所包含的所有站点分别存入动态数组intStartStop和动态数组intEndStop中,并比较这两个动态数组,判断是否存在公共站点C,若为是,则将公共站点C转换成公交线路号,打印输出结果,退出;若为否,则执行步骤S5 ;步骤S5:建立公交权值矩阵T,并对T进行赋值,通过比较公交权值来寻找两次换乘的线路R,若找到则计算出换乘点和所乘的公交线路,并打印输出,退出;若未找到,则执行步骤S6 ;步骤S6:打印输出失败的信息,结束。在具体实现时,首先根据用户输入的起点A和终点B,利用GIS的buffer算法,通过搜索函数,将起点和终点附近的公交站点分别放入两个动态数组,让用户选择起点A和终点B的公交站点。确定了公交站点后,搜索数据库,查询起点站A和终点站B是否有相同的车经过,如果有,计算从起点A到终点B的路程,通过比较可以得到最短长度的公交线路,推荐给用户;如果没有,则计算从起点站A到终点站B之间有没有一个公共站点C可以换车到达终点,这时候又可以分成两种情况,如果有,则计算起点A和公共站点C有没有相同的公交车经过并存入动态数组,同样,终点B和公共站点C有没有相同的公交车经过并存入动态数组,将这两个动态数组比较后可以得到到达终点的公交车,然后计算出换乘方案,在这些换乘方案中通过路程计算函数得到路径长度,显示给用户。以上是属于换乘一次的情况。如果起点A和终点B之间没有公共站点,就出现了要换乘两次的情况。两次换乘的实现参见公交权值矩阵T,在这个矩阵中存放的是公交权值。本文档来自技高网...

【技术保护点】
一种基于WebGIS的公交导乘线路信息处理方法,其特征在于,包括以下步骤:1)输入起始公交站点A和终点公交站点B;2)从数据库中获取经过起始公交站点A和终点公交站点B的公交线路号,并将它们分别存入动态数组strStartBusNum和动态数组strEndBusNum中;3)对动态数组strStartBusNum和动态数组strEndBusNum这两个数组中的元素进行比较后,判断是否存在公共线路,若为是,则存入动态数组strSameBusNum中,并打印输出结果,退出;若为否,则执行步骤4);4)将经过起始点A和终点公交站点B的公交车所包含的所有站点分别存入动态数组intStartStop和动态数组intEndStop中,并比较这两个动态数组,判断是否存在公共站点C,若为是,则将公共站点C转换成公交线路号,打印输出结果,退出;若为否,则执行步骤5);5)建立公交权值矩阵T,并对T进行赋值,通过比较公交权值来寻找两次换乘的线路R,若找到则计算出换乘点和所乘的公交线路,并打印输出,退出;若未找到,则执行步骤6);6)打印输出失败的信息,结束。

【技术特征摘要】
1.一种基于WebGIS的公交导乘线路信息处理方法,其特征在于,包括以下步骤: 1)输入起始公交站点A和终点公交站点B; 2)从数据库中获取经过起始公交站点A和终点公交站点B的公交线路号,并将它们分别存入动态数组strStartBusNum和动态数组strEndBusNum中; 3)对动态数组strStartBusNum和动态数组strEndBusNum这两个数组中的元素进行比较后,判断是否存在公共线路,若为是,则存入动态数组strSameBusNum中,并打印输出结果,退出;若为否,则执行步骤4); 4)将经过起始点A和终点公交站点B的公交车所包含的所有站点分别存入动态数组intStartStop和动态数组i...

【专利技术属性】
技术研发人员:黄诗盛姚薇
申请(专利权)人:上海遥薇集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1