论文部分内容阅读
[摘 要] 本文以论述“城市轨道交通线路优选系统”的系统构成、功能与原理为核心,以开发者的角度展开介绍该软件的设计思想和开发理念以及应用价值。本文共4个部分,对“城市轨道交通线路优选系统”的研究与设计由浅入深进行阐述。
[关键词] 城市轨道交通; VB.NET; Floyd算法; Mapinfo
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2013 . 22. 047
[中图分类号] TP311 [文献标识码] A [文章编号] 1673 - 0194(2013)22- 0074- 02
0 引 言
在上海城市轨道交通网络化进程的快速推进中,线网日趋交织复杂,耦合度越来越高,运营过程中存在以下问题: ① 不熟悉线路的乘客无法直接获得换乘信息,造成出行不便,增加了出行时间; ② 为帮助乘客选择路线,需加大人工引导,降低了地铁站工作人员效率,增加了运营成本; ③ 存在多种线路换乘选择时,有可能因为乘客集中选择某条线路,造成该线路客流量显著增大,为运营管理和客流管控带来困难。
轨道交通作为生态型、高技术密集、高端服务型产业,更要依靠信息化技术来服务大众,以提高自身的服务水平。该“城市轨道交通线路优选系统”的开发,是基于现有的上海城市轨道交通网络来构建相关框架、模型,是面向乘客的结合线路信息查询及优选的一款软件,以实现为乘客提供简单、快捷、实用的轨道交通信息查询方式,提升乘客满意度与出行效率,为运营管理服务提供便利的目的。
1 系统构成
1.1 功能介绍
本系统分为“快速查询”、“分类查询”两个主要模块。在“快速查询”界面里输入起点与终点的站点名称,点击“一键查询”即可显示一张最短路径线路图,并可进行放大、缩小查看,若输入的站点有误,系统会自动报错,提示修改;在“分类查询”界面里共分交通、购物、住宿、旅游、餐饮5个板块,点击相应板块系统可显示属于该分类的全部相关地名而非站点(如选择“交通”,则列表框里会显示上海火车站、虹桥国际机场、上海南站等交通枢纽;选择“旅游”,则列表框里会显示豫园、外滩、田子坊等旅游景点),并可根据需要按由近到远或搜索热度排序,双击要去的地名即可显示从松江大学城站到距离该地最近的站点的线路换乘方式、乘坐站数、行驶时间、票价。在“分类查询”模块中还包含多线路显示功能,当换乘方案不止一种时,可以将所有可到达的换乘方式显示出来供乘客参考选择。
1.2 开发平台
开发本系统所用的主要软件:Microsoft Visual Studio 2005,Mapinfo professional 7,Mapinfo MapX,Adobe PhotoshopCS4。
Visual Studio是微软公司推出的开发环境,本系统主体在Microsoft Visual Studio 2005平台上采用VB.NET编写,整体框架科学合理,给使用者以简洁醒目的操作体验。该系统为安装版的单机exe应用程序,在任何装有Microsoft .NET Framework的PC操作系统中均可运行。
Mapinfo是一款桌面地理信息系统,一种数据可视化、信息地图化的桌面解决方案。该软件用于编写本系统的线路图部分,设计思路是通过构造多个图层,分层显示信息,从而实现线路的动态模拟。
MapX是一个基于ActiveX(OCX)技术的可编程控件。它使用与MapInfo Professional一致的地图数据格式,在可视化开发环境中,只需在设计阶段将MapX控件植入窗体中,并对其进行编程,设置属性或调用方法或相应事件,即可实现数据可视化。本系统中,该控件给线路图嵌入程序框体提供支持,同时将多个图层整合叠放,为通过程序代码控制其显示方式提供支持。
Photoshop是一款图像处理软件。本系统界面部分的位图,即背景、插图、标题、框体、按钮等的图样设计都是在该软件下完成的。本系统注重用户操作体验,实现了界面的新颖亮丽与页面布局科学性的统一,窗体元素大小适中,安装及操作方式与大部分软件相符合,上手容易。
2 系统原理
2.1 快速查询
本模块的功能是为乘客提供最短路径的图像显示。线路图由Mapinfo绘制,每个站点用一个小圈表示,并添加不同的ID,站间区段按照每条轨道交通规定颜色着色。建立Access数据库将站点名称及ID导入,并添加线路内站点序号,便将线路图与数据库联动起来,将以上数据构建矩阵由改进的Floyd算法求得最短路径,在显示查询结果界面的MapX控件中将算得的路径分层绘制出来,这就实现了最短路径的图像显示。其中站点输入框采用Inser字段引索,若输入错误信息会弹框提示。在MapX控件上设有集合大小缩放、全图显示按钮的工具栏,方便对线路图的查看。
2.2 分类查询
本模块的功能是为乘客提供直观目的地的线路查询,并以表格形式显示详细信息。该模块的设计关键是数据库的应用,将交通、购物、住宿、旅游、餐饮5个项目各自建表,把松江大学城站到各个具体地点的换乘方式、行车用时、乘坐站数、票价一一分类导入5张表中,不同地点编以不同ID,同一地点存在多种换乘时,编以相同ID。使用SQL语句查库并剔除相同项后,将目的地名称显示在TabControl容器里的Listbox控件中。双击所选目的地,进入显示结果界面,将换乘方式、行车用时、乘坐站数、票价作为Datasource显示在DataGridView控件中,有不止一种换乘方式时,将全部显示出来。TabControl容器提供两个选项卡:按由近到远或搜索热度对目的地进行排序,前者直接使用SQL语句对乘坐站数进行降序排列即可实现;后者需先在数据库中增设“点击次数”列,初始值都为零,每次对某目的地查询一次,该项加一,再按照点击次数进行降序排列即可实现既定功能。 2.3 关于Floyd算法的应用
Floyd算法又称为弗洛伊德算法、插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。Floyd算法相比Dijkstra算法具有更高的效率,在交错复杂的轨道交通线路中找到最短的换乘方案有着很大的优势。Floyd算法的核心是利用一个三重循环产生一个存储每个结点最短距离的矩阵,使用图的邻接矩阵来存储带权有向图。该算法的基本思想是:构造n阶方阵D(k),令其对角线上的元素都等于0,元素d(k)ij表示点i到点j的路径长度,k表示运算步骤。路径长度为两个点间有向边的权值,没有有向边时,路径长度为∞,当k = 0时,d(0)ij = A,以后逐步在原路径中加入其他中间点继续运算,如果增加中间点后,得到的路径长度比原来缩短了,则以此新路径代替原路径,修改矩阵元素。在本系统的算法程序中,考虑到实际线路中站点间的无差异性,所以令线路图中的每个站间路段的权都相等,从线路图的带权邻接矩阵A = [a(i,j)]n × n开始,递归地进行n次更新,即由矩阵D(0) = A,按一个公式,构造出矩阵D(1);又用同样的公式由D(1)构造出D(2)……最后又用同样的公式由D(n - 1)构造出矩阵D(n)。最后矩阵D(n)的i行j列元素便是i号顶点到j号顶点的最短路径长度。使用嵌套的for循环结构实现上述运算后,将值在数据库中查出,并在绘图语句块中调用,将结果在MapX控件中绘制出来,这就是“快速查询”模块的核心所在。2.4 关于MapX控件的应用
查询结果所显示的轨道交通线路图是由Mapinfo软件制作的,共3个图层,最底层为去色的上海城市轨道交通线路图原图,以此来作为背景,中间层为路段(以彩色线段表示,各个小段连成完整的线路,但每个小段之间各自独立,并都有各不相同的ID,以便在代码中调用),最顶层为站点(以小圆圈表示,每个小圆圈都有一个独有的ID,以便在代码中调用)。将3个图层加载进MapX控件中,在Microsoft Visual Studio 2005中调用。中间层和最顶层的默认可见状态是Hide,在绘图语句块绘制指定线路时,指定线路所对应的路段及站点的可见状态变为Show,这样就实现了将所查线路突出显示出来的效果。如图1所示,当前所查为七宝—长江南路的路径,图层1和图层2中这一路段ID所对应的点和线段的状态变为Show,而其余部分处于Hide状态。
3 结 论
上海作为享誉国际的大都市,外来学习、务工、游玩的人众多,这迫切需要上海的交通枢纽进一步提高它的服务水平。但是,上海轨道交通作为其中重要的一环,其网络覆盖面不断拓广的同时,面向乘客的交通信息的获取方式却不能紧跟其步伐。目前,仍没有一款软件是专门面向城市轨道交通路径信息查询、优选而设计的,这一定程度上限制着轨道交通的进一步经营和发展。因此,设计一款涵盖信息量广、有针对性并且操作便捷的兼备路径信息查询和优选的软件是非常必要的。本系统结合多方软件配合,经过合理的模型构建,实现了两种不同的线路查询、优选、显示的功能,为不同需求的乘客带来了便利。软件界面美观、操作简便、硬盘空间占用极小、运行效率高,体现了人性化、便捷化、智能化宗旨。
主要参考文献
[1] 郭彦云. 城市轨道交通有效路径问题研究[D]. 北京:北京交通大学,2011.
[2] 聂佩林,余志,何兆成. 基于MapInfo电子地图的Paramics仿真基础路网构建[J]. 系统仿真学报,2008(1).
[3] 邓凯英. 城市交通系统的最短路径高效搜索算法研究[J]. 科教文汇:下旬刊,2010(1).
[关键词] 城市轨道交通; VB.NET; Floyd算法; Mapinfo
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2013 . 22. 047
[中图分类号] TP311 [文献标识码] A [文章编号] 1673 - 0194(2013)22- 0074- 02
0 引 言
在上海城市轨道交通网络化进程的快速推进中,线网日趋交织复杂,耦合度越来越高,运营过程中存在以下问题: ① 不熟悉线路的乘客无法直接获得换乘信息,造成出行不便,增加了出行时间; ② 为帮助乘客选择路线,需加大人工引导,降低了地铁站工作人员效率,增加了运营成本; ③ 存在多种线路换乘选择时,有可能因为乘客集中选择某条线路,造成该线路客流量显著增大,为运营管理和客流管控带来困难。
轨道交通作为生态型、高技术密集、高端服务型产业,更要依靠信息化技术来服务大众,以提高自身的服务水平。该“城市轨道交通线路优选系统”的开发,是基于现有的上海城市轨道交通网络来构建相关框架、模型,是面向乘客的结合线路信息查询及优选的一款软件,以实现为乘客提供简单、快捷、实用的轨道交通信息查询方式,提升乘客满意度与出行效率,为运营管理服务提供便利的目的。
1 系统构成
1.1 功能介绍
本系统分为“快速查询”、“分类查询”两个主要模块。在“快速查询”界面里输入起点与终点的站点名称,点击“一键查询”即可显示一张最短路径线路图,并可进行放大、缩小查看,若输入的站点有误,系统会自动报错,提示修改;在“分类查询”界面里共分交通、购物、住宿、旅游、餐饮5个板块,点击相应板块系统可显示属于该分类的全部相关地名而非站点(如选择“交通”,则列表框里会显示上海火车站、虹桥国际机场、上海南站等交通枢纽;选择“旅游”,则列表框里会显示豫园、外滩、田子坊等旅游景点),并可根据需要按由近到远或搜索热度排序,双击要去的地名即可显示从松江大学城站到距离该地最近的站点的线路换乘方式、乘坐站数、行驶时间、票价。在“分类查询”模块中还包含多线路显示功能,当换乘方案不止一种时,可以将所有可到达的换乘方式显示出来供乘客参考选择。
1.2 开发平台
开发本系统所用的主要软件:Microsoft Visual Studio 2005,Mapinfo professional 7,Mapinfo MapX,Adobe PhotoshopCS4。
Visual Studio是微软公司推出的开发环境,本系统主体在Microsoft Visual Studio 2005平台上采用VB.NET编写,整体框架科学合理,给使用者以简洁醒目的操作体验。该系统为安装版的单机exe应用程序,在任何装有Microsoft .NET Framework的PC操作系统中均可运行。
Mapinfo是一款桌面地理信息系统,一种数据可视化、信息地图化的桌面解决方案。该软件用于编写本系统的线路图部分,设计思路是通过构造多个图层,分层显示信息,从而实现线路的动态模拟。
MapX是一个基于ActiveX(OCX)技术的可编程控件。它使用与MapInfo Professional一致的地图数据格式,在可视化开发环境中,只需在设计阶段将MapX控件植入窗体中,并对其进行编程,设置属性或调用方法或相应事件,即可实现数据可视化。本系统中,该控件给线路图嵌入程序框体提供支持,同时将多个图层整合叠放,为通过程序代码控制其显示方式提供支持。
Photoshop是一款图像处理软件。本系统界面部分的位图,即背景、插图、标题、框体、按钮等的图样设计都是在该软件下完成的。本系统注重用户操作体验,实现了界面的新颖亮丽与页面布局科学性的统一,窗体元素大小适中,安装及操作方式与大部分软件相符合,上手容易。
2 系统原理
2.1 快速查询
本模块的功能是为乘客提供最短路径的图像显示。线路图由Mapinfo绘制,每个站点用一个小圈表示,并添加不同的ID,站间区段按照每条轨道交通规定颜色着色。建立Access数据库将站点名称及ID导入,并添加线路内站点序号,便将线路图与数据库联动起来,将以上数据构建矩阵由改进的Floyd算法求得最短路径,在显示查询结果界面的MapX控件中将算得的路径分层绘制出来,这就实现了最短路径的图像显示。其中站点输入框采用Inser字段引索,若输入错误信息会弹框提示。在MapX控件上设有集合大小缩放、全图显示按钮的工具栏,方便对线路图的查看。
2.2 分类查询
本模块的功能是为乘客提供直观目的地的线路查询,并以表格形式显示详细信息。该模块的设计关键是数据库的应用,将交通、购物、住宿、旅游、餐饮5个项目各自建表,把松江大学城站到各个具体地点的换乘方式、行车用时、乘坐站数、票价一一分类导入5张表中,不同地点编以不同ID,同一地点存在多种换乘时,编以相同ID。使用SQL语句查库并剔除相同项后,将目的地名称显示在TabControl容器里的Listbox控件中。双击所选目的地,进入显示结果界面,将换乘方式、行车用时、乘坐站数、票价作为Datasource显示在DataGridView控件中,有不止一种换乘方式时,将全部显示出来。TabControl容器提供两个选项卡:按由近到远或搜索热度对目的地进行排序,前者直接使用SQL语句对乘坐站数进行降序排列即可实现;后者需先在数据库中增设“点击次数”列,初始值都为零,每次对某目的地查询一次,该项加一,再按照点击次数进行降序排列即可实现既定功能。 2.3 关于Floyd算法的应用
Floyd算法又称为弗洛伊德算法、插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。Floyd算法相比Dijkstra算法具有更高的效率,在交错复杂的轨道交通线路中找到最短的换乘方案有着很大的优势。Floyd算法的核心是利用一个三重循环产生一个存储每个结点最短距离的矩阵,使用图的邻接矩阵来存储带权有向图。该算法的基本思想是:构造n阶方阵D(k),令其对角线上的元素都等于0,元素d(k)ij表示点i到点j的路径长度,k表示运算步骤。路径长度为两个点间有向边的权值,没有有向边时,路径长度为∞,当k = 0时,d(0)ij = A,以后逐步在原路径中加入其他中间点继续运算,如果增加中间点后,得到的路径长度比原来缩短了,则以此新路径代替原路径,修改矩阵元素。在本系统的算法程序中,考虑到实际线路中站点间的无差异性,所以令线路图中的每个站间路段的权都相等,从线路图的带权邻接矩阵A = [a(i,j)]n × n开始,递归地进行n次更新,即由矩阵D(0) = A,按一个公式,构造出矩阵D(1);又用同样的公式由D(1)构造出D(2)……最后又用同样的公式由D(n - 1)构造出矩阵D(n)。最后矩阵D(n)的i行j列元素便是i号顶点到j号顶点的最短路径长度。使用嵌套的for循环结构实现上述运算后,将值在数据库中查出,并在绘图语句块中调用,将结果在MapX控件中绘制出来,这就是“快速查询”模块的核心所在。2.4 关于MapX控件的应用
查询结果所显示的轨道交通线路图是由Mapinfo软件制作的,共3个图层,最底层为去色的上海城市轨道交通线路图原图,以此来作为背景,中间层为路段(以彩色线段表示,各个小段连成完整的线路,但每个小段之间各自独立,并都有各不相同的ID,以便在代码中调用),最顶层为站点(以小圆圈表示,每个小圆圈都有一个独有的ID,以便在代码中调用)。将3个图层加载进MapX控件中,在Microsoft Visual Studio 2005中调用。中间层和最顶层的默认可见状态是Hide,在绘图语句块绘制指定线路时,指定线路所对应的路段及站点的可见状态变为Show,这样就实现了将所查线路突出显示出来的效果。如图1所示,当前所查为七宝—长江南路的路径,图层1和图层2中这一路段ID所对应的点和线段的状态变为Show,而其余部分处于Hide状态。
3 结 论
上海作为享誉国际的大都市,外来学习、务工、游玩的人众多,这迫切需要上海的交通枢纽进一步提高它的服务水平。但是,上海轨道交通作为其中重要的一环,其网络覆盖面不断拓广的同时,面向乘客的交通信息的获取方式却不能紧跟其步伐。目前,仍没有一款软件是专门面向城市轨道交通路径信息查询、优选而设计的,这一定程度上限制着轨道交通的进一步经营和发展。因此,设计一款涵盖信息量广、有针对性并且操作便捷的兼备路径信息查询和优选的软件是非常必要的。本系统结合多方软件配合,经过合理的模型构建,实现了两种不同的线路查询、优选、显示的功能,为不同需求的乘客带来了便利。软件界面美观、操作简便、硬盘空间占用极小、运行效率高,体现了人性化、便捷化、智能化宗旨。
主要参考文献
[1] 郭彦云. 城市轨道交通有效路径问题研究[D]. 北京:北京交通大学,2011.
[2] 聂佩林,余志,何兆成. 基于MapInfo电子地图的Paramics仿真基础路网构建[J]. 系统仿真学报,2008(1).
[3] 邓凯英. 城市交通系统的最短路径高效搜索算法研究[J]. 科教文汇:下旬刊,2010(1).