张旭春,董贵胜
(潍坊工程职业学院,山东 青州 262500)
随着城市化进程的进一步加快,道路交通建设成为城镇化发展的关键环节,近年来我国路网里程不断增加,据最新资料显示截止至2018年年底已超过484.65万km,处世界第一位.与此同时,路网密度也在不断提升,据悉我国36个主要城市的平均路网密度为5.96 km/km2,较2017年增长了1.24%[1].交通线路的密集与延伸也为人们的交通出行带来了挑战,交通压力日趋严重,如何有效解决人们的交通出行问题是智慧城市建设的重点内容.在互联网全面发展的时代下,交通出行服务需紧密结合“共享”“聚合”等关键词,深化“互联网+交通”来缓解交通压力,提升出行服务效率,实现现代化公路管理.
随着城市交通建设的发展,越来越多人们关注公共交通出行,西方发达国家建立交通信息服务系统,如美国的511交通信息系统、日本的VICS信息系统为出行者们提供道路路况、公交等查询信息查询服务,从而方便人们出行[2].我国也不例外,研究者们对智能交通出行服务展开了丰富的研究,白罩峰与曹静(2017)利用动态分段技术与空间数据库开发了一款公共公交查询系统,其研究成果显示有效减少了数据冗余问题,还提供了优秀的可视化出行服务规划[3];翁剑成与王月玥等人(2017)基于个人出行的数据构建了公共交通出行链信息模型,结果显示模型判别准确率高达100%,这为人们交通出行奠定了数据基础[4];王芳杰与王雨晨等人(2019)则基于LightGBM算法构建了公交行程时间预测模型,提供更高效的出行服务[5].可以看到研究者们从算法、技术等多角度来进行了交通出行系统构架研究,但是采用聚合数据构建交通出行系统JP的研究并不多见,对此本文提出了基于聚合数据的交通出行查询系统,使得人们的交通出行更为便捷化、高效化.
聚合数据是一个综合性云数据平台,其主要为广大开发者们、图商们提供原始数据API服务[6].据统计显示目前聚合数据平台上共提供了超过160类行业的基础数据API接口,包括生活服务、交通地理、金融科技等多种类别,且数据质量很高.简单来说聚合数据平台相当于数据库,开发者通过接口可从中直接调用所需数据并进行二次开发,极大地节省了开发时间与开发成本.聚合数据API的使用方法非常简便,仅需在聚合数据平台进行注册认证并申请所需要的APPKey即可.在本次的交通出行系统设计与构建过程中,将聚合SDK嵌入系统中能保证开发高效完成,确保利益最大化.
百度地图是百度为广大用户提供的一款地图搜索服务服务引擎,其中包含了行车导航、出行换乘、公交路线以及附近搜索等丰富的查询功能,这为用户的出行与日常生活提供了便利化的工具.另外,百度地图还为开发者们提供了丰富的API,包括Android SDK,JavaScript API和IOS SDK等,适合多种开发平台[7].其中,百度地图SDK提供的接口服务不受次数限制且是免费的,调用方式也非常简单,与聚合数据API类似,也只需成功注册后申请开发所需key,然后嵌入到开发的系统中就可便捷访问与调用百度地图的数据[8].作为交通出行查询系统,在开发中引入百度地图能减少开发成本,提高开发效率.因此本次系统设计在申请百度地图key成功后,选择“公交查询系统”Jar 包,和对应的So文件,放置到对应的目录文件下,并在对应的xml文件中添加申请的秘钥,完成了百度地图数据调用接口搭建.
任何一款应用程序或者系统在开发之前都应充分做好需求分析工作,从用户的需求出发,这样才能保证系统的实用性,从而增强用户的体验度与满意度.对此需从功能需求和非功能需求两个方面进行全面分析.
本次设计的交通出行系统主要是面向广大的公共交通乘客,因此需紧密围绕用户的切身需求展开.根据对乘客交通出行的需求进行调查与归纳发现,主要分为线路查询、站点查询以及换乘查询这三种需求,具体的功能需求详见表1.对此用户用例可描述为如图1所示.
表1 交通出行系统基本功能及描述
图1 交通出行用户需求用例图
除了功能系统外,作为系统需求的补充,非功能需求必须能够提供有效保证.对于本次设计构建的交通出行查询系统来说,需充分考虑到易用性、安全性以及准确性等需求[9].易用性要求系统操作简洁明了,提供友好的人机交互界面,对此本次系统设计遵循人性化理念,采用Android 平台的界面设计,确保操作界面的直观与简洁;安全性是系统运行的基础,对此在设计时考虑到用户的身份安全问题,设置了管理权限的同时采用MD5算法进行信息加密;除此之外,交通出行查询最重要的在于提供数据的准确性,而聚合数据与百度地图具有很高的数据质量,保证了数据的准确性.
本次设计的交通出行查询系统是基于Android 平台上开发的,采用的是SSH框架,通过MVC模式来构建系统.MVC模式是目前软件开发最常用的开发模式,其具有低耦合性、开发成本低与易维护等特性,非常适用于本次设计的系统构建.具体架构设计如图2所示,其中视图层由Fragment与Activity共同构建,并且调用了百度地图与聚合数据等API接口,从而实现地图浏览与站点、线路等信息查询;控制层则由封装了所有Activity调用的UIHelper 与Adapter构成;模型层则由持久化层与实体层组建而成.
本系统所对应的物理架构如图3所示.
图2 交通出行查询系统架构
图3 系统的物理架构
根据用户需求,设计的这款智能交通出行查询系统共可分为以下用户管理、后台管理以及交通查询三大模块,系统具体的功能模块结构图如图4所示.其中用户管理模块设置是为保障用户信息安全性,并同时拥有记忆功能,对查询的信息以及用户资料进行记录.后台管理主要是系统管理人员使用,主要包括维护与管理信息数据以及相关APK的下载与打包工作.交通查询模块是本系统的核心内容,会通过接入的聚合数据获取用户所在的经纬度信息来完成定位后,同时对百度地图SDK进行调用从而来实现换乘、线路以及站点查询工作.
图4 交通出行查询系统功能模块结构图
本系统设计采用SQLite 数据库,该数据库属于轻量级,适用于移动客户端,能满足系统所需的响应速度要求.根据查询系统的E-R图(见图5),数据库内应存放如下站点信息表、线路信息表以及换乘信息表见表2,表3,表4.
图5 交通出行查询系统的E-R图
字段名类型说明BusStop_idinteger表的主键BusStopNamevarchar(10)站点名称BusStopAddressvarchar(50)站点地址
表3 线路信息表
表4 换乘信息表
设计智能交通出行查询系统的线路查询、站点查询以及换乘查询流程示意图如图6~图8所示,在流程图中均要判断输入的线路/站点/目的地等信息是否有效,然后才能对查询算法以及调用聚合数据与地图数据,最终输出结果列表.同时对系统进行了功能模块测试,测试结果显示系统稳定性良好,各模块功能得以实现,线路查询、站点查询与换乘查询响应时间短,均在10 s内完成查询搜索,具有很高的易用性与实用性.
图6 线路查询流程图7 站点查询流程
图8 换乘查询流程
为顺应 “互联网+交通”的应用要求,在充分调研系统需求的基础上设计了一款基于聚合数据的交通出行查询系统,采用MVC模式进行系统架构搭建,并完成了站点、线路以及换乘等功能模块的实现,并通过了系统测试.设计结果显示能满足用户对于交通出行的基本需求.