掌上公交查询系统
2014-12-31翁伟等
翁伟等
摘要:当前城市公交是人们上班下班出行的主要交通工具,对公交系统信息的查询是一种普遍、急切的需求。用户量众多的android智能手机是便捷的查询终端设备,该系统基于百度地图API研发了一种方便的公交查询系统,支持模糊的线路查询和站点查询等功能,并且设计了本地化数据库方便离线查询,具有较好的实用价值。
关键词:Android;掌上公交;GPS;百度地图API
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)35-8427-02
目前几乎大部分的交通调频广播、车载导航灯信息面向的对象都是面向驾驶员,而面向出行者的信息缺失严重不足,无论是从鼓励低碳环保的公交优先,还是从重视出行者角度,都有必要设计一个面向出行者的公交信息平台。当前各国家纷纷投入大量人力、物力以及巨大的财力开始进行城市公交信息系统的研究,多年来研究成果包括GPS 定位[1]、电子地图、交通流诱导、实时交通和路径规划等先进技术,力图形成了通信、信息、网络、服务为一体的较为完善的公共交通查询管理系统。我国的城市交通系统与发达国家相比还存在很大的差距,我国现有公交查询网站普及率不好,使用不方便,公交路线不完整,站点的准确率低。此外国内许多公交查询系统只能通过PC网页的方式查询,对出行在外的乘客不能及时查询,非常不便捷的。
掌上公交查询系统是面向公交车为主体,地铁、BRT为辅的常规公共交通乘客的交通信息系统。掌上公交查询系统作为移动端的APP,安装和使用方便,携带便捷,提供给乘客用户公交出行路线、乘坐公交号、换乘方案和出发时间的选择信息,能够大幅度改善公共交通出行者的便捷程度。目前作为Android平台的移动端APP,可以安装在大部分安卓智能手机上,使用方便。
1 系统分析与设计
1.1 需求分析
当前本系统的用户主体群在于持有安卓智能手机并且能够熟练使用智能手机上网,使用轻松上手APP的非驾车出行乘客。此用户群主要采用的出行方式包括:步行、公交车、BRT和地铁等。因此在对此类用户主体分析定位上,要考虑一下几个问题:
1) 非驾车出行乘客用户数量巨大
近年来,我国城市居民的出行方式包括步行、自驾车、摩托车、公交车和自行车。其中非驾车出行者占有比例巨大。因此,研究非驾车出行者的出行需求特征是十分必要的,分析此信息才能更好的设计出符合此类用户使用需求的系统。
2) 与国家推行公交政策相协调
由于汽车保有量的增加,汽车尾气排放增多,环境污染问题和交通拥堵问题日益严重。为了整治城市交通,使城市交通结构合理,鼓励低碳环保出行,国家政策正千方百计地鼓励城市居民选择公交出行的方式出行。政策推行下,公交线路相比从前增加,公交涉及区域扩大,公共交通乘客对公交信息的需求也大打增加了。目前,公共交通运输速度慢,换乘不便,公交到站时间不确定等问题成为影响公交出行普及率的一大问题。因此,政府除了不断对公交路线进行科学规划外,还不断的鼓励公交信息系统的建设,目的就是通过对此系统建设的鼓励为大众打造一个信息全面准确,使用便捷,服务完善的公共交通系统。
非驾车用户作为掌上公交查询系统的主体用户,我们可对其使用特征进行分析:
1) 用户使用时间特点。出行乘客可能在出行前或者出行中访问掌上公交查询系统,任务发起时间比较随意,因此系统必须保证全天候工作,保证用户随时请求服务都能得到系统快速的相应。
2) 用户使用空间特点。本系统的服务区域应该包括在GPS和移动网络信号覆盖的空间[2],特别是使用用户相对集中的居民区、公交站、商业中合体等交通枢纽区域。
3) 用户使用内容需求特点。用户对此系统的需求内容主要包括:公交站点名称和地点、公交路线查询、公交到站时间、公交运营时间等信息。对内容上要求实时准确,简明易懂。
4) 用户使用特点。目标用户群集中于安卓智能机用户,因此系统应该具有美观简洁的用户交互界面,有简明易上手的操作指令,对常用站点及记忆,对未知站点的模糊搜索等等。有些只知道一个站的某几个字或一个车次的某几个数字,所以本系统将给出站点的模糊查询,方便用户的查询。
1.2 系统功能设计
掌上公交查询系统的基本功能是为出行者提供公交查询服务,在最短的时间内为出行者指出一条或多条到达目标地的公交线路,结合实时公交或者BRT信息为用户提供合适的服务。客户端是目前主流的安卓平台智能手机,当没有网络时,使用者可查看手机本地数据信息;当连接网罗时,获取实时公交信息,并获取GPS定位信息。通过仔细分析用户需求之后,该系统要完成以下功能:
1) 公交、BRT或者地铁线路查询。输入出发地和目的地,显示出可供用户选择的多条到达目的地的公交线路。
2) 电子地图查询。使用提供的百度地图API,查看厦门市街道地图。
3) 具体公交车信息。查看具体车号公交车信息,包括始发时间,最晚班次时间,班次间隔时间。
4) 个人定位功能。用户通过GPS定位自己在地图上的方位[3]。
5) 地图显示。能够对地图进行拖动、放大、缩小[4]。
6) 用户应该能够从服务器中下载相应城市的公交数据,这样就不必每次都要登陆服务器,提高查询效率。
7) 站点查询。能够查看经过某个站点的所有公交车次信息。
1.3 数据库设计
掌上公交查询系统的一大核心就是数据库,本系统采用的数据库是Android自带的SQLite轻型数据库。系统的信息交获取要是通过本地数据库和服务器来实现的,因此在数据库结构设计至关重要。通过对系统各功能数据的分析后,进行合理归纳提取,在SQLite 数据库和服务器数据库中分别有3 张表,分别为bus表、bus_catalog表、bus_intro表和site表,各表结构分别如表1、表2 、表3和表4所示。
2 系统详细设计与实现
本部分重点讨论公交查询功能。该功能分为三个子模块,这个界面的activity继承tabactivity创建3个TabHost,分别为换乘查询、线路查询、站点查询。
1) 换乘查询:通过输入起点站和重点站,查询有的公交路线,如需转车,系统采用最佳换乘路线算法,得到最佳路线(包括直达线路、一次换乘或二次换乘等)。如果输入为空,跳出错误提示。此界面还有查询历史功能,可以对此前输入过的历史记录进行查看,方便再次查询时的使用。
如果未输入起点或者终点值即点击换乘查询,使用edittext的seterror(“不能为空”)方法系统会跳出提示框。
在输入框输入起点或者终点时,系统会按照模糊查找功能,给出相关站点的选择框,方便用户查找相关站点。此功能的提示使用了AutoCompleteTextView控件监听输入的内容,并向数据库模糊查询,用listview显示出来,如图1(a)所示。
起点和终点输入完成后,点击“换乘查询”按钮,系统会在1秒内,显示出结果。此功能是对数据库的查询,首先查询站点1在查询站点2的线路上有没有数据;其次查询站点1的站点顺序和站点2的站点顺序,用站点1的站点顺序减去站点2的站点顺序,如果小于0则添加进直达路线的容器里,否则不做处理。展示方式是用listview展现出来,并对listview进行了布局复用和控件封装减少内存占用和减少查找次数的优化,提高了应用的性能,如图1(b)所示。
如需转车可点击相应路线查看到哪转车。这是调用AlertDialog展示出来,并设置点击事件,点击后将起点和终点自动添加到换乘查询,并进行查询操作。
点击“查询历史”按钮,可查看查询历史记录,并可对此记录进行删除。查询历史也是用了activity和listview展现出来。
2) 线路查询:此功能可以查看相对应路线公交的详细信息,包括:公交始发时间,末班时间,票价,路径经过的站点等等。
用户在主界面点击界面上方的“线路”按钮,或者再得出换乘路线结果时点击相应路线,即可进入路线查询界面。如图2(a)所示。
此输入框也有模糊查找相应公交功能,跳出选择框。如图2(b)所示。
3) 站点查询:此功能可以进行站点查询,在后台数据库中查找经过该站点的公交线路。如果存在查询结果,则将其结果显示,否则提示站点不存在。选择该站点所列的线路信息列表中的线路时,则能显示该线路详细信息。包括:此站点具体有哪些公交线路经过,分别经过多少个站。
用户在主界面点击界面上方的“站点”按钮,或者再得出路线结果时点击相应站点,即可进入站点查看界面。
参考文献:
[1] Lange M,Liebergeld S,Lackorzynski A.L4Android:a generic operating system framework for secure smartphones [C].Proceedings of the 1st ACM workshop on Security and Privacy in smartphones and mobile devices, Chicago, Illinois, USA, ACM, 2011:32-41.
[2] 舒贤华. 基于Android平台的手机Web地图服务设计[D].大连:大连海事大学,2009:32-34.
[3] 祝洪娇. 基于Android平台的位置服务系统的设计与实现[D].北京:北京交通大学学报,2012:2.
[4] 雍宾宾. Android应用快速开发系统设计与实现[D].兰州:兰州大学,2012:10-14.