APP下载

智慧公交系统的研究与应用

2019-10-11段芃芃

计算机技术与发展 2019年10期
关键词:空间数据换乘步行

刘 锂,段芃芃

(成都理工大学 工程技术学院,四川 乐山 614007)

0 引 言

现代城市的发展是离不开公交车,公交已成为现代城市的象征,是一种现有的城市文化,无论是生活还是工作,公共汽车已经成为重要的城市交通工具。随着社会经济的飞速发展,城市建设规模的加大,公交线路增多,因此对智慧公交查询系统的需求也相应加大。

城市是人类高度集中的活动中心,随着城市化建设加快,人们的出行也面临着相应的困难。加之科技的进步和经济的快速发展,城市公共交通系统也越来越复杂,数据和信息也越来越多,服务要求越来越高,智慧公共系统[1-3]的管理面临着新的挑战。GIS技术主要用来管理和分析空间数据,适用于智慧公交系统[4]的设计与开发。

GIS技术具有强大的可视化、查询分析和网络分析功能。将交通网络信息、公交网络信息和地理空间信息有机联系起来,进行相关数据的处理和查询分析,能提供较好的实现方法。

文中依托GIS的空间构造[5]能力和网络分析特性,设计了城市公共交通网络图[6-8],集成城市的基础空间信息、路径信息、公交站点空间数据和在营的线路数据等信息,结合空间综合分析和公交路径算法实现了智慧公交系统。

1 系统设计

系统采用数据管理层、中间逻辑层、显示层三层架构模式。数据管理层包括了空间数据和属性数据,主要是通过ArcSDE数据引擎连接空间数据和关系数据库。在服务器与客户端间,ArcSDE先将收集到的所有数据暂时存放于缓冲区,再一次性发送到客户端,这种传输方式大大提高了通过网络传输大数据的效率,减少了传输时间。中间逻辑层主要采用ArcGIS Engine技术,即组件式GIS集成二次开发[9-10],支持多种编程语言和开发工具,支持多种数据库管理系统GIS功能组件化,既方便用户进行开发,也方便GIS内部调用,与数据库连接灵活,仅需对原有数据进行更新,就能更新空间数据信息。显示层采用控件技术,可以灵活方便地构建各种界面,操作方便,界面友好。具体系统架构如图1所示。

图1 系统架构

显示层:客户端PC机上显示该系统的界面。显示层需要调用核心的逻辑业务模块,并显示具体逻辑功能处理的信息数据,满足客户的需要。显示层是一个展示层,展示用户与系统交互的最终结果。

中间逻辑层:即调用的核心业务代码,用来实现应用程序的业务功能。业务层接收显示层传输的客户请求消息,并调用对应业务功能模块进行模块化的信息处理,并将结果传输给显示层展示。

数据管理层:主要对地理空间数据进行管理。

2 空间数据库的设计

空间数据模型是关于现实世界中地理实体及其相互间联系的概念,为描述空间数据的组织和设计数据库模式提供基本方法。空间数据模型与空间信息有关的信息模型有三个,即基于对象的模型、网络模型、场模型,该系统主要运用了网络模型。

在网络模型中,公交站点、道路被抽象为链、节点等对象,同时要关注它们之间的连通关系。

在实现最短路径查询前,都必须具备一个道路网络数据,否则该功能无法实现,而道路网络数据主要由道路、公交车站、公交路线和连接点信息等构成,它们是道路网络数据的核心。在设计道路网络时,值得注意的是,对于线路与线路相交的点,可以表示出当前道路通向方向。在设计空间数据时,需要存储每条路径间交点的空间信息和记录每条路径的首节点和尾节点的空间信息,来表示道路与站点、道路与道路间的几何关系。

该系统采用ArcSDE多源空间数据库,保证了空间数据和属性数据的存储。采用Geodatabase数据模型,通过ArcCatalog将数据库中的数据转换为Geodatabase数据模型,再使用ArcSDE加载到数据库中。系统的空间数据库体系结构如图2所示。

图2 空间数据库体系结构

3 公交路径算法设计

路径问题是图论算法中经常讨论的一个问题,在于寻找图(由节点和路线组成)中两节点之间的最优路线。首先线路分析的数学模型[11]有很多种,它们都有各自的优缺点。对于线路复杂的城市公交网状路线,要将复杂的交通路线情况抽象化成简单的拓扑模型并不简单,反而增加操作实现的难度。另外还有很多优秀的算法,如Floyd算法[12-13]。那些相对简单的图,采用多次Dijkstra算法相对适用,而复杂的图,Floyd算法相对合适。而且,Floyd可以用来处理带负边权值的图。除此之外,还有很多现实情况下必须考虑的因素。

在出行选择公交线路时会考虑很多因素,如:换乘次数、耗时、乘车费用、车辆始发数量、站点负载压力等[14-15]。面对这些因素,做出最佳的选择也不是一件容易的事情,所以必须给出一定的提示和多种选择方案。大多数乘客在选择出行公交线路时,第一考虑的因素是直达车。例如换乘次数,一般就考虑换乘一次,一般不会多于两次,最后是乘车时间最短。中间换乘还要考虑换乘等待时间,需要步行的话还要考虑步行花费时间;乘车所花费的费用也是重要的考虑因素。在同时考虑换乘次数、花费时间与乘车费用等多重因素的前提下,通过设计查询系统提出最佳路径选择。

公交线路的形式有三种:去程和返程路线一致,去程和返程路线不一致和环形路线,如图3所示。

图3 公交线路的形式

由于线路的方向不同,以上三种线路形式全都以去程线路和返程线路抽象成两条线路处理。

3.1 算法建模

通过分析线路与站点、站点与站点的连接矩阵[16],只考虑在不超过两次换乘的情况下,建立公交汽车线路与站点的交通模型,以及加上步行的模型。

模型一:

(1)以中途转车最少为第一要素,路程最短为次要要素;

(2)路程最短为首要要素,转车次数最少为次要要素。

模型二:步行一段路的复杂模型。

为了简化算法,很多因素暂不予考虑。

(1)出行选择乘车路线,换乘次数不大于两次;

(2)在行驶中,公交车为匀速畅通行驶,每站行驶时间相同;不考虑堵车、乘车高峰等问题;

(3)假如坐车期间需要步行,设定换乘次数仅一次;

(4)设定一次出行时步行次数最多为三次;

(5)假设每次步行的时间和距离相同。

具体实现步骤如下:

(1)Loci(A)表示站点A在第i条线路中的位置;

(2)Loci(A,B)表示从站点A到站点B的第i条线路;

(3)Ci(A,B)表示第i条线路从站点A到站点B的直达费用;

(4)Ti(A,B)指两地间的非换乘情况下的时间耗费,t表示相邻站点之间平均行驶时间,t1表示一次步行的时间;

(5)Ni(A,B)表示第i条线路从站点A到站点B经过的站数;

(6)d表示一次步行的距离;

(7)G(A,d)指范围d以内的所有附近点;

(8)V代指矩阵。

从A地到B地线路多种多样,站点线路如图4所示。

图4 站点线路

3.2 模型一:纯公交车模型

从站点A到站点B的行车线路:

(1)是否有从站点A到站点B的直达线路。如果有,首先考虑直达;假设含有多个直达,选择时间耗费最少的那一个。

(2)如果没有直达线路,优先选择一次换乘的方案。如果经过站点A的线路和经过站点B的线路存在公共站点,就能在这里转车。

然后假设不存在一次换乘的方案,再延续这种思路方式,继续寻找解决方案。最后在可选择的方案中,经过仔细对比时间、费用、换乘次数,直到找到最理想的方案。现在交通一般路线的覆盖面积都比较广泛,需换乘两次以上的事件概率相对较低。其次,必须理解乘客的内心想法,乘客肯定都是希望直达的,有时即使是多耗费点时间和乘车费用,也不愿意选择换乘。

首先构造线路与站点的连接矩阵Vk*n=(Vi,j)k*n,其中Vi,j=1表示站点j在第i条线路上,Vi,j=0表示站点j不在第i条线路上,k为线路总数,n为站点总数。即使是去程、返程路径相同,按两条路径来计算。

(1)录入出发的站A和要到的站B;

(2)求出经过出发点A的所有线路,再寻找B在不在其中,如果存在,就是直达;如果不存在,就不是直达;

(3)在矩阵中寻找经过出发点A的所在每一项,再看B和每一项的交集是否为1,如果都是1,则是直达;反之,就不是直达;

(4)假设有且仅有一条直达或是没有,输出结果。反之,则向下执行;

(5)假设存在多条直达,进行筛选,将需要时间最低的列在前边,需要时间多的根据大小依次列表输出。

一次换乘数学模型算法设计:

(1)输入起始站点A和目的站点B;

(2)求出经过A的所有线路集合Loci(A,C),i=1,2,…,N和经过B的所有线路集合Locj(D,B),j=1,2,…,N;

(3)取出其中一条线路Loci(A,C)与Locj(D,B),判断是否存在公共站点,在连通矩阵V中,将第i行与第j行相加,如果结果中有2,说明具有公共站点;

(4)如果线路Loci(A,C)与Locj(D,B)存在公共站点,则C=D,判断其同向关系,否则重新搜索线路;

(5)在搜索结果中进行筛选,将需要路程最短的列在前边,需要路程长的根据大小依次列表输出。计算出所有一次转乘措施的乘车时间,耗费时间最少的就是最佳换乘线路。

两次换乘数学模型算法设计:

(1)输入起始站点A和目的站点B;

(2)求出经过A的所有线路数据Loci(A,C),i=1,2,…,N和经过B的所有线路数据Locj(D,B),j=1,2,…,N;

(3)任取一条线路Loci(A,C)与Locj(D,B),再在所有公交线路中取一条不同于线路Loci(A,C)与Locj(D,B)的线路Lock(E,F),其中k=1,2,…,m,m为线路总数。判断线路 Loci(A,C)与Lock(E,F)以及Locj(D,B)与Lock(E,F)是否存在公共站点C=E和F=D,如果存在,继续判断站点A与C、C与D以及D与B是否同向;

(4)假设有这样的公共汽车站点,站点C和站点E是同一站点,站点F和站点D是同一站点,而且站点A、B、C、D方向全都相同,符合上述情形的路径,就是转乘两次的方法,在搜索结果中进行筛选,查找所有两次换乘措施,耗费时间最少的就是最佳换乘线路。将需要时间最低的列在前边,需要时间多的根据大小依次列表输出。再求转车地点,输出结果,结束运算。

3.3 模型二:考虑步行数学模型

在上述算法中并没有考虑通过步行一段距离来进行换乘,而现实生活中往往是需要选择的。这样,上面第一种算法计算出来的结果就不实用。假设现在在A站,附近的B站有需要的线路;按照第一种方法,计算出来的结果是在A站乘车出发,到B站转乘。这样计算就多了一次转车。步行一段距离的情况有如下三种:

(1)可以原地就近站点乘车,也可以步行一段距离后,到远一点的站点乘车,寻找直达更方便的线路;

(2)在需要转车的情况下,下车的地方不一定是要转车的地方,也可以选择走一段路程,到另一个附近站点换乘更佳的线路;

(3)也可能出现在下车之后,距离目标点很近,步行小段距离就可到达目的地的情形,这样就不需要再换乘。

换乘数学模型算法与设计:

(1)输入起始站点A和目的站点B;

(2)任取站点M∈(A,d),任取经过M的一条线路Loci(M,X),设M在Loci(M,X)上可到达的站点为M1,M2,…,Mn;任取站点C∈(B,d),任取经过C的一条线路Locj(X,C),设C1,C2,…,Ck为线路Locj(X,C)上可到达站点C的所有站点,对每一个Ck判断是否属于G(Mn,d)。若属于,则Loci(M,X)与Locj(X,C)为A到B的步行换乘一次线路。此时,若A=M,Mn=Ck,站点B与站点D是同一个站点,表示不需要走路;假设只有两个站点相同,表示需要走一次路;假设有且仅有一个站点相同,表示需要走两次路;不然,就需要走三次路。若Ck不属于G(Mn,d),则转下一步;

(3)对所有Ck进行搜索,对经过站点C的所有线路Locj(X,C)进行搜索,对G(B,d)中的所有站点进行搜索;对经过站点M的所有线路进行搜索,对G(A,d)中的所有站点进行搜索。

4 实验分析

系统的开发平台采用VS 2012,数据库采用SQL SERVER 2008,交通网络矢量化使用ArcGIS 10.2。

系统实验平台采用四川省乐山市市中区交通路线为实验数据,进行了交通网络矢量图、公交网络矢量图的设计和制作以及空间数据的制作和数据导入,并根据公交站点间的距离和交通情况,生成了交通网络分析数据和公交网络分析数据。

通过对现代化城市公交系统状况和GIS特点优势进行探讨,进行了基于GIS智慧公交系统的设计,并以乐山市公交系统为研发案例,在用ArcGIS建立乐山公交电子地图的基础上,基于ArcEngine的c#二次开发,根据乐山市市中区公交线路、公交站点的分布情况,实现公交线路查询、站点查询和线路分析。该系统初步实现了对电子地图放大、缩小,距离测量,鹰眼等功能,同时乘客可在系统中进行公交线路查询、公交站点查询、换乘查询等。

公交路线查询如图5所示,输入需要查询的路线的相关信息(路线名或路线代码),电子地图突出显示相应的路线,并以文本显示该路线的信息(该路线通过的所有站点和发车时间等信息)。

图5 公交路线查询

输入需要查询的起点和终点的相关信息,如站点名、地点名点击查询按钮,文本框列出可以乘坐的所有车次供选择,并提供一种路径最短的建议,地图高亮显示相应的路线,并显示站点的信息(通过该站点的路线名称等)和图片信息,系统会根据交通路径网络和公交路径网络进行分析,生成最佳的路线以及换乘的路线,如图6所示。

图6 路线换乘

5 结束语

研究了GIS组件式开发的结构和模式,结合ArcSDE建立了空间数据库与关系数据库之间的通信服务,采用GIS技术的空间特性和网络图设计的特性,将城市的交通网络线、公交网络线、各站点信息、道路信息以及空间位置信息进行有效整合,建立基于城市公交网络的空间数据并进行公交网络路径分析。通过分析公交换乘的两种模型,设计了对应公交算法,实现了智慧公交系统,实现了精准、智能、快捷的路径换乘方案和智能的路径导航等功能。最后以乐山市市中区的数据进行系统验证,通过实验证明该设计方案和算法的正确性和实用性,为智慧公交系统的研究提供了一定的理论和技术参考。

猜你喜欢

空间数据换乘步行
魔方小区
换乘模式下货物运输路径问题
步行回家
10项空间数据与信息传输领域国家标准正式发布
GIS空间数据与地图制图融合技术
北京地铁连拱换乘通道下穿引桥施工沉降控制研究
地铁车站换乘形式对比与分析
城市轨道交通三线换乘站布置分析