3毕业设计作品(产品)
毕 业 设 计 作 品(产 品)
作品名称 基于安卓系统的城市公交app
二级学院 信息工程学院 专 业 软件技术 班 级 软件1401 学生姓名 魏红金 学 号 [1**********]1 指导教师 孙小强
2016年 11月
一、作品(产品)简介
为了提高城市公交信息化水平, 方便智能手机用户查询城市公交信息, 在深入进行需求分析的基础上, 基于Android 开发平台, 给出了以长沙城市为例的城市公交查询系统的设计与实现过程, 实现了公交线路查询、定位和路线规划等功能。软件主要功能包括:
(1)公交线路查询:输入公交车路线,从地图上显示公交车路线。 (2)定位:用户可以点击定位查找出自己的位置,以及经纬度。
(3)路线规划功能: 这个功能是输入起点和终点,然后可以驾车,公交,搜索,同时还可以满足一些条件,比如:躲避拥堵,最短距离,较少费用,时间最短,功能比较丰富。
二、软件界面展示
主界面
+ 图2.2
1. 定位
2. 公交线路查询
图2.4
3. 路线规划功能
图2.5
三、附录:毕业设计工程文档
1.引言
1.1课题背景
有些人包括市内本地人都不知道出行该乘坐什么样的车,这款软件让广大市民可以方便的了解到自己在那里,自己该怎么从出发地到目的地,该怎么样以最快速度,最短路程,最少换乘到达目的地。
Android 平台长沙公交软件的开发可以进一步让大家知道公交车的路线,让手机用户能够在第一时间方便且快捷的获取最新的公交信息,以便提前方便的知道出行的路线。
1.2参考资料与引用资源
1. 《Android 软件开发入门到精通》 2. Android SDK帮助文档
http://www.android-doc.com/reference/packages.html 3. Android API
http://www.android-doc.com/guide/components/index.html
4.android 百度地图开发
http://blog.csdn.net/fang2liang/article/details/51857927
2. 系统需求 2.1需求规定
一款查看公交的APP ,软件的功能需求如下: (1)定位自己。
(2)长沙公交车路线查询。
(3)路线规划功能,包括躲避拥堵,最短路程,最快到达等。
2.2运行环境
版本要求:Android 2.3及以上版本
图3.1
3.2 网络架构
图3.2
3.3 模块架构
模型层、接口层、核心层、界面层。模型层定义了所有的模型;接口层封装
了服务器提供的API ;核心层处理所有业务逻辑;界面层就处理界面的展示。
图3.2
4. 界面设计 4.1启动界面
此部分实现代码
4.2 主界面
此部分实现代码
这里是我用listview 来做一个列表,自定义列表,然后通过点击事件来选择不同的功能进入不同的界面
.
这里是初始化一些控件以及获取显示的控件ID
5、系统实现 5.1定位
此部分实现代码
百度地图可以使用GPS 和网络定位(WIFI 和基站)进行定位。基本定位功能还支持定
位结果的反地理编码功能,离线定位,位置提醒功能和地理围栏功能。
用户可以设置满足自身需求的定位依据:
若用户设置GPS 优先,则优先使用GPS 进行定位,如果GPS 定位未打开或者没有可用位置信息,且网络连接正常,定位SDK 则会返回网络定位(即Wi-Fi 与基站)的最优结果。为了使获得的网络定位结果更加精确,请打开手机的Wi-Fi 开关。
注意:只有在使用网络定位的情况下,才能获取当前位置的反地理编码。
5.2 公交车查询
此部分实现代码
通过判断type ,将正确的uid 添加到一个list 中。
得到了uid ,就可以结合城市参数,进行公交线路检索了。
这里主要是详细解析部分
进行公交信息检索之前,需要先进行POI 检索。使用searchInCity ()方法在每一个城市内查询公交路线号
得到poi 检索的结果时,在PoiResult 类中有通过getAllPoi ()获取poi 检索结果。
在PoiInfo 类中有个type 字段: 0:普通点、1:、公交站 2:、 公交路线 3:、地铁站 4:地铁线路
5.3 路线规划
代码实现部分
路线规划里有策略这一概念。那驾车路线规划说,就包括四种策略:躲避拥堵、最短距离、较少费用、时间优先,这四种策略组成了一个枚举类型:DrivingRoutePlanOption.DrivingPolicy 。
路线规划分为三种:驾车、换成(公交)、步行。而路线规划又
与之前的各种检索相似。
设置点的时候,传入的参数是PlanNode 类型的。该类有两个静态的方法,一个通过设置城市名和地名,一个通过设置经纬度,都可以返
回一个PlanNode 对象。
6、关键实现技术
6.1 百度地图以及公交线路的实现
首先在布局中添加百度地图控件
初始化地图
公交信息检索是把你需要检索的信息发送给百度地图服务器,然后解析得到的结果。一般步骤: 1. 设置检索参数 2. 添加检索结果监听器 3. 发起检索
4. 解析返回结果
打开程序包com.baidu.mapapi.search.busline
在BusLineSearchOption 这个类中,我们看到一个参数是城市,另一个是公家路线uid 。
一开始,我以为第二个参数是公交线号,代码编写完毕去查询的时候,总是出错。后来仔细查看了api 之后,发现不是公交线号,而是uid 。uid 我们在之前poi 检索的时候,曾经见到过,它实际上即是一个id ,是i 一个唯一标识。
所以注意:公交信息检索设置查询参数时,第二个参数是uid 。 所以进行公交信息检索之前,需要先进行POI 检索。使用searchInCity ()方法在每一个城市内查询公交路线号:
得到poi 检索的结果时,在PoiResult 类中有通过getAllPoi ()获取poi 检索结果。
7.系统出错处理
7.1 出错信息
1. 无法正常显示地图
2. 获取数据的时候卡顿假死 3. 闪退
4.key 的使用超过50次, 数据获取失败
7.2 补救措施
1. 检查key 与包名是否一致,是否一一对应的。 2. 清楚应用缓存数据 3. 卸载重装 4. 重启手机 7.3 系统维护设计