基于android平台的实时公交查询系统毕业设计论文.docx
- 文档编号:28432953
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:51
- 大小:1.73MB
基于android平台的实时公交查询系统毕业设计论文.docx
《基于android平台的实时公交查询系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于android平台的实时公交查询系统毕业设计论文.docx(51页珍藏版)》请在冰豆网上搜索。
基于android平台的实时公交查询系统毕业设计论文
HUNANUNIVERSITY
毕业设计(论文)
设计论文题目:
基于Android平台的实时
公交查询系统
学生姓名:
唐鹏
学生学号:
20112601608
专业班级:
软件工程11级6班
学院名称:
信息科学与工程学院
指导老师:
王涛
学院院长:
李仁发
2015年5月30
基于Android平台的实时公交查询系统
摘要
目前公交已经成为了城市必不可缺交通工具,丰富交错的公交车线路网络让人们的出行,上下班获得了巨大的方便和实惠。
然而,因为公交线路的错综复杂,而且信息来源较为缺乏,使得人们难以便捷地获得准确的公交信息,这样对一些人的出行就会产生一定的影响。
随着信息技术的高速发展,互联网已经融入到千千万万的家庭中,为他们带来了很大便利。
在如今4G时代,智能手机必将成为出行者导航、信息查询的良好终端。
本课题将研究城市公交的实时运行线路及乘客的需求状况,目的在于帮助出行者随时随地快速选择正确的乘车线路。
实现的方式将通过Android平台设计出相应的方案,做出能够运行在Android系统的手机客户端。
实时分析的基本思想是将公路上的人流信息以唯一标识、时间、位置为属性进行统计分析,找出每天每个人在公路上在特定时间内的流动规律,以此推断公交的到站时间,并在手机app中显示,以此作为乘客的候车依据,从而实现“实时”。
为了完成这个应用的开发,以C/S作为开发模式,需要开发客户端用户交互界面、数据的获取与分析处理以及基于B/S结构的后台管理系统。
关键词:
Java;手机公交查询;Android;SQLite
Real-timePublicTransportationQuerySystem
BasedonAndroidplatform
Abstract
Currentlythebushasbecomeindispensableurbantransport,richstaggeredbuslinenetworktoletpeopletravel,commutingwasagreatconvenienceandbenefits.However,sincethebuslinesarecomplex,butmorealackofsourcesofinformation,makingitdifficulttoeasilyobtainaccuratepublicinformation,sosomepeoplewillhavetotravelacertainimpact.Withtherapiddevelopmentofinformationtechnology,theInternethasbeenintegratedintomillionsofhomes,astheybringalotofconvenience.
Intoday'seraof4Gsmartphoneswillbecomethetravelersnavigate,goodinformationinquiryterminal.Thispaperwillexaminetheneedsofreal-timestatusofcitybusroutesandpassengers,isdesignedtohelptravelersanywherequicklychoosetherightcarlines.ThewaytoachievethroughtheAndroidplatformdesigntheappropriatesolutionstomakethesystemtorunonAndroidmobileclient.Thebasicideaofreal-timeanalysisoftheflowofinformationisontheroadtouniquelyidentify,time,locationofpropertyforstatisticalanalysistoidentifyeveryoneontheroadseverydayflowpatternwithinaspecifictime,inordertoinferthearrivaltimeofthebus,anddisplayedinthephoneappasapassengerwaitingbasis,inordertoachieve"realtime."ToaccomplishthisthedevelopmentofapplicationstoC/Sasadevelopmentmode,weneedtodevelopaclientuserinterface,dataacquisitionandanalysisprocess,andbasedonB/Sstructureofthebackofficesystems.
Keywords:
Java;Mobileandqueryingtraffic;Android;SQLite.
第一章绪论
1.1课题背景
随着我国社会经济、科技的高速发展,城市规模的扩大,人们上班、上学、出游等活动量也随之增长,导致部分城市严重拥堵,比如上海、北京、深圳这样的大城市,公交线路系统庞大,车辆众多,交通拥堵不断加剧,给出行带来诸多不便。
智能公交的发展对于广大出行者来说显得越来越重要[1]。
然而现有公交系统存在诸多问题,人们去公交站点乘公交车常常会遇到以下几种情况:
(1)马上就要到公交站点了,却眼看着公交车刚刚开走。
(2)在公交站点等了很长时间也没来车,犹豫着是改用其它交通工具还是再等一等。
(3)换乘站点有多路车可供选择,有的离目的地近,但是车次间隔长;有的离目的地稍远,但是车次间隔短,不知乘哪一路更好。
(4)对于外地人员或者对某些地区不太熟悉的人员不知乘坐什么线路公交车才能到达目的地。
随着移动3G、4G网络的发展的日渐成熟,目前大部分智能手机都能通过应用客户端从互联网获取大量信息,基于智能手机平台开发的实时公交查询系统就是通过从服务器获取公交线路信息、地理位置分析乘车方案及公交实时到站信息。
目前很多手机软件,如“高德地图”,“XX地图“,”车来了“,”无线城市“,”掌上公交’等,都具备公交查询和路线选择功能,然而他们多数是基于静态数据的查询,无法反映实时交通路况,解决不了以上问题,当然也有少数一些具备实时查询功能,但却并不完善,存在信息不全、信息不稳、系统不稳等问题c。
1.2研究内容
本课题通过调研城市实际交通状况、查阅相关文献资料,根据自己所学知识,开发一个基于android平台的实时公交查询手机应用。
实时分析的基本思想是将公路上的人流信息以唯一标识、时间、位置为属性进行统计分析,找出每天每个人在公路上在特定时间内的流动规律,以此推断公交的到站时间,并在手机app中显示,以此作为乘客的候车依据,从而实现“实时”。
研究内容主要分为三个部分:
公交线路、站点数据,手机客户端,PC服务器端。
公交线路、站点数据方面,从互联网资源获取各城市的公交信息,并存储在本地数据库中,以便手动更新及客户端的调用。
手机客户端方面,先设计好简洁、美观的显示和操作界面,根据从服务器下载下来离线公交信息,为用户提供合适的外出乘车方案,并能随时随地离线查询公交线路、站点信息。
PC服务器端方面,根据公交查询系统的功能需求,设计服务器与手机客户端之间的交互流程和通信机制,管理各个城市的公交线路、站点数据,实现公交数据的增、删、改、查。
根据用户乘车方案以上传的实时位置信息,分析公交的实时位置信息,预计公交到站时间。
1.3工作内容
在整个课题设计中,使用了数据库系统设计、WEB系统实现、Android应用开发技术,其中包括SSH框架、JSP、HTML、CSS、JavaScript等技术。
具体工作内容,包括以下四五个部分:
1.设计系统的整体框架和交互机制,包括客户端与服务器之间的通信机制、通信接口的设计,在系统各个实体之间的交互流程的设计、服务器各组件间交互设计;
2.数据库系统的设计及具体城市公交数据获取;
3.服务器、客户端功能的代码实现;
模拟数据的生成、系统测试
第二章需求分析与概要设计
2.1需求分析
2.1.1总体需求分析
基于Android平台的手机实时公交线路查询软件最基本的功能是能够有效的为用户提供查询服务,在最短的时间内给用户一条或多条到达目标地的路径,并且能够提示公交何时到站。
整个查询过程中,公交线路数据是预先通过服务器下载到手机本地的,所以查询算在本地实现,而公交的到站时间是通过服务器实时获取的。
实时信息的获取是通过对公交运行状态(某时间点下对应的地理位置)的历史统计数据来建立对应的模型和分析,根据分析结果预测公交车在未来某个时间点的运行状态,综合当前实时运行信息与历史交通流量模型,实时预测公交车位置和公交车到站时间,以此作为依据向用户推荐计算出来的实时公交出行方案[2]。
乘车方案查询是计算用户请求的两点之间符合用户要求的综合最优的实时公交出行方案。
查询算法包括直达算的和一次换乘算法。
2.1.2系统数据库需求分析
实时公交查询系统以公交信息数据为基础,公交数据又分为静态和动态数据,其中静态数据包括公交车的线路信息、站点信息、公交的线路轨等,动态数据包括公交车的实时位置数据、实时路况等[3]。
本系统的静态公交数据通过相关网络资源获取,根据这些原始数据的数据库和编码规则,将这些信息完整有效地、完整地组织起来并存储到本地SQLite数据库中,并能够进行数据的增、删、改、查操作。
在动态公交数据方面,主要是用户上传到服务器的实时位置信息,只要设计出相应的能存储用户名、对应的位置和时间信息的表即可。
2.1.3服务器端需求分析
服务器作为后台,需要专业人员对服务器操作和维护,一般情况可由非专业人员借助管理软件对服务器进行常规维护。
服务器可以通过数据库同步,为客户端数据库提供数据。
通过仔细分析服务器需求之后,服务器端要完成以下功能:
1、服务器后台管理功能
服务器后台管理是针对数据库进行操作,具有增、删、改、查功能。
2、数据同步功能。
采用Servlet技术,响应客户端请求,返回给客户端一端数据流,该数据流按照Xml语言规范写入数据流。
服务器端功能模块划分如图2.1所示。
图2.1服务器端功能模块图
2.1.4客户端需求分析
客户端主要是手机,用户无法通过手机对本地数据库进行操作,也无法对服务器数据库操作,管理员可以通过手机浏览器登录到服务器管理员页面对数据库进行操作,可以使用一些功能。
该软件应满足若干要求,比如能够随时掌握公交信息,动态更新最新数据等。
也要考虑作为手机软件可能会出现查询速度慢,数据流量过大,过度依赖服务器等问题。
通过仔细分析用户需求之后,该软件要完成以下功能:
1、登录注册功能
用户可以注册个人账号,用户登录系统。
2、线路查询功能
获得线路经过的每个站点信息以及线路的票价信息和发车时间信息。
3、站点查询功能
根据输入的具体站点,能够获得包含该站点的所有公交线路。
4、换乘查询功能
输入起点和终点,能够快速得出乘车方案,并存“查询历史”中,方便下次直接获取。
5、数据下载功能
根据客户端输入的城市名,服务响应查询结果并返回该城市公交线路数据库文件,客户端可点击下载到本地。
客户端功能模块划分如图2.2所示。
图2.2客户端功能模块图
2.1.5开发环境及工具需求分析
服务器端开发环境,以windows7操作系统为开发平台,用Tomcat6.0做为服务器,ORACLE和SQLite作为数据源,Myeclipse8.6作为开发工具,SSH作为开发框架,运行在一般的PC机上即可。
客户端开发环境,以Android手机操作系统为开发平台,用Android手机操作系统自带的SQLite作为数据源。
ADT(AndroidDevelopmentTools)作为开发工具,Java语言和Xml语言作为开发语言,实体安卓手机作为测试工具。
整个Android手机操作系统是在AndroidSDK提供的虚拟机中运行,该虚拟机运行在windows7操作系统上,所以客户端的开发是在windows7操作系统上运行的Android操作系统中进行的二次开发[4]。
2.2概要设计
2.2.1开发流程
开发流程如图2.3所示。
图2.3开发流程图
2.2.2系统数据流图
系统数据流程如图2.4所示。
图2.4系统数据流图
第三章模式设计
3.1C/S模式简介
C/S模式是一种三层结构的系统,第一层在客户机上安装了客户机应用程序,第二层在服务器上安装服务器管理程序,第三层是数据访问层。
在C/S模式的工作过程中,客户机程序向服务器发出请求,服务器程序接收客户机程序提出的请求并且作出相应处理,然后向客户机返回处理结果[5]。
C/S模式特点:
(1)C/S模式将应用与服务分离,使系统具有更高稳定性和灵活性
(2)C/S模式配备的是点对点的适用于局域网的结构模式,具有可靠的安全性
(3)由于客户端与服务器端之间没有中间环节,实现了直接连接,,因此响应速度快
(4)在C/S模式中,作为客户机的计算机都必须安装客户端程序,一旦软件系统升级,每台客户机都要重新安装升级后的客户端应用程序,因此C/S模式在系统升级和系统维护方面显得较为复杂。
3.2B/S模式简介
B/S模式是一种从传统的二层C/S(客户/服务)模式基础上而发展起来的新的网络结构模式,其本质可以说是三层网络结构的C/S模式。
只要在用户的计算机上安装如IE、火狐、谷歌等浏览器软件,将相关数据存放在服务器上并且在服务器上安装服务应用程序,服务器分为WEB服务器、邮件服务器和文件服务器等。
用户可以通过已经安装好的浏览器软件来访问服务器,进行互联网信息浏览、电子邮件传递和文件传输等服务[6]。
B/S模式特点:
(1)系统开发、维护、升级方便每当服务器应用程序需要进行升级时,只需升级服务器上的应用程序即可,而不需要修改用户计算机上的浏览器软件,从而让系统开发、升级和维护更加方便。
(2)B/S模式具有很强的开放性在B/S模式下,用户通过通用的浏览器软件进行访问,极大地增强了系统的开放性。
(3)B/S模式的结构易于扩展由于Web的平台无关性,B/S模式的结构可以进行任意的扩展,可以由仅包含一台服务器和几个用户的小型系统,扩展成为包含成千上万个用户的大型系统。
(4)用户使用方便B/S模式的应用软件一般都是基于Web浏览器的,而不同Web浏览器的界面都是相似的,对于用户未登录系统的相关功能页面,用户所接触到的界面都是一致的,从而让用户使用更加方便。
3.3B/S-C/S模式
3.3.1B/S-C/S模式定义
B/S-C/S模式是将B/S模式和C/S模式组合而来的,吸取这两种模式的优点,达到互补的作用。
B/S模式和C/S模式都是三层结构,B/S模式第一层是表现层,第二层是业务逻辑层,第三层是数据访问层。
C/S模式三层结构中第一层是客户端与B/S模式中的第一层不一样,其余两层相同。
在B/S模式和C/S模式数据访问过程和业务逻辑处理过程中是在服务器端完成,用户只需接受服务器返回的结果。
在B/S-C/S模式中,一部分数据访问过程和业务逻辑处理过程在客户端完成,另外一部分数据访问过程和业务逻辑处理过程在服务器端完成。
本手机公交线路查询软件一部分功能只要依靠手机本地数据库就可以实现,令外一部分功能需要借助互联网实现[7]。
目前不论是手机硬件还是计算机硬件,更新速度很快,而且硬件的配置水平也越来越高,在硬件条件允许的情况下把一部分业务处理、数据访问的过程放在客户端去完成,那么对服务器的硬件要求就会低一些,甚至一些高性能的PC机就可以作为服务器。
从整个作业量来看,本质上是把作业量往客户端多分摊一部分,降低服务器的作业量,因此,对客户端的硬件要求是比较高的。
B/S-C/S模式结构如图3.1所示。
图3.1B/S-C/S模式结构图
本软件系统采用B/S-C/S模式,系统框架如图3.2所示。
图3.2系统框架图
3.3.2B/S-C/S模式特点
B/S-C/S模式在继承了B/S模式和C/S模式的优点之后,还具有以下特点:
(1)可靠性高
1、客户端不必完全依赖于服务器,即便脱离服务器,还有手机数据库的支持,可以继续使用一部分功能。
2、客户端的数据丢失的时候,可以采用数据库同步的方式从服务器获得新的数据信息。
(2)省资源
一部分作业在客户端完成,服务器的访问量和作业量都会减少,省资源,维护起来会更加方便。
第四章数据库设计
4.1数据库结构
服务器数据库为总数据源,每一个客户端都拥有独立的小型数据库。
客户端数据库信息从服务器端同步获得。
服务器的数据库是基于Oracle和SQLite建立,客户端数据库是基于SQLite建立。
数据库体系结构如图4.1所示。
图4.1数据库体系结构图
4.2服务器数据库设计
4.2.1Oracle简介
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一[8]。
比如SilverStream就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在其中一种机型上学习了ORACLE知识,便能在其它各种类型的机器上使用它。
Oracle数据库目前的最新版本为OracleDatabase12c。
一个新的多承租方架构被引入Oracle数据库12c,使用这种多承租方架构可轻松地对数据库进行云部署和管理。
此外,一些创新特性可以让资源的使用率和灵活性得到最大限度地提高,如OracleMultitenant可进行快速整合多个不同的数据库,而AutomaticDataOptimization和HeatMap能以更高的压缩率来压缩数据和更高密度对数据进行分层。
这些独一无二的技术进步,再加上在安全性、可用性大数据支持方面的主要增强,使得Oracle数据库12c成为公有云和私有云部署的理想平台[9]。
4.2.2数据库设计
E-R关系如图4.2所示。
图4.2服务器数据E-R图
根据上面的E-R图,本软件服务器端定义的数据库设计了以7张表:
站点表:
site(表4.2)、线路表:
bus(表4.3)、公交详情表表:
bus_intro(表4.4)、城市表:
city(表4.5)、管理员表:
user(表4.6)、用户表:
uuser(表4.7)、用户轨迹表:
userlocation(表4.8)
本软件服务器数据库所包含的表的描述如表4.1。
表4.1数据库概况表
表名
描述
主要字段
site(站点表)
保存站点信息
site_id,site_bus_id,site_order,site_name
bus(线路表)
保存线路信息
bus_id,bus_type,bus_name,bus_site_num
bus_intro
(公交详情表)
介绍公交相关信息
intro_id,intro_bus_id,intro_text
city(城市表)
user(管理员表)
uuser(用户表)
userlocation
(用户轨迹表)
保存城市公交数据源
保存管理员信息
保存用户信息
保存用户轨迹信息
cityId,cityName,dbUrl
userId,username,password
userId,username,realName,password
ulId,userId,site,city,currentTime
表4.2站点表
字段名
数据类型
长度
主键/外键
默认值
描述
site_id
int
PK
站点id
site_bus_id
site_order
site_name
int
int
varchar
255
FK
线路id
站点顺序
站点名称
表4.3线路表
字段名
数据类型
长度
主键/外键
默认值
描述
bus_id
int
PK
线路id
bus_type
bus_name
bus_site_number
int
varchar
int
255
线路类型
线路名称
站点数量
表4.4公交详情表
字段名
数据类型
长度
主键/外键
默认值
描述
intro_id
int
PK
id
intro_bus_id
int
FK
线路id
intro_text
text
介绍信息
表4.5城市表
字段名
数据类型
长度
主键/外键
默认值
描述
cityId
int
PK
城市id
cityName
varchar
255
城市名称
dbUrl
varchar
255
数据存放地址
dataSize
varchar
20
数据大小
表4.6管理员表
字段名
数据类型
长度
主键/外键
默认值
描述
userId
int
PK
管理员id,自增
userName
varchar
255
管理名
password
varchar
255
登录密码
表4.7用户表
字段名
数据类型
长度
主键/外键
默认值
描述
userId
int
PK
用户id,自增
userName
varchar
255
用户名
password
varchar
255
登录密码
realName
varchar
255
真实姓名
表4.8用户轨迹表
字段名
数据类型
长度
主键/外键
默认值
描述
ulId
int
PK
Id,自增
userId
int
FK
用户id
site
varchar
255
站点名
city
varchar
城市名
currentTime
date
时间
4.3客户端数据库设计
4.3.1SQLite简介
Android数据库使用的是SQLiteDatabase,我们来简单的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 android 平台 实时 公交查询 系统 毕业设计 论文