1、毕业设计论文沈阳航空航天大学毕 业 设 计 任 务 书院(部) 计算机学院 专业 计算机科学与技术 班级 24010105 学号 2012040101234 学生姓名 毕业设计题目 安卓校园地图定位APP的设计与实现 毕业设计时间 年 月 日至 2016 年 6 月 17 日毕业设计地点 毕业设计内容及要求:对于新学生来说,由于我校校园较大,无法很快地找到自己在校园内的位置,手机设备上的APP是目前地图定位和导航的首选,而目前传统的谷歌地图APP,百度地图APP或者高德地图APP都没有提供校园高精度地图。因此,本毕业设计要求一个安卓客户端APP,帮助师生在校园内部进行位置定位,其中包括一下功能
2、:1. 在程序中展现校园地图,并实现对地图的放大,平移,缩小。2. 实现通过手机信号和GPS信号的位置定位,并在地图上显示当前位置。3. 对校园地图中每个主要的楼宇进行名称标示。4. 实现路线规划功能,根据要求客户端可以返回相应的两点间的路线规划,并描绘在地图上进行显示。指导教师或负责教师签字 年 月 日共1页 第1页安卓校园地图定位APP的设计与实现学 院计算机学院专 业计算机科学与技术班 级24010105学 号2012040101234姓 名 指导教师 负责教师 沈阳航空航天大学2016年6月 摘 要随着二十一世纪的到来,信息化大数据已经向我们走来,这个时代的标志就是计算机以及智能手机的
3、广泛使用。如今社会上智能手机已经达到了十分普及的程度,公交车或是地铁上随处可见智能手机的身影,可见智能手机的使用率之高,而智能手机的系统主要分为安卓系统和苹果系统两种。市面上除了IPhone以外大多数智能手机采用的都是安卓系统,我校统一使用的校园机也是安卓系统。对于新生来说,由于我校校园较大,无法很快地找到自己在校园中的位置,安卓设备上的地图APP是目前定位和导航的首选,而目前传统的谷歌地图APP,百度地图APP或是高德地图APP都没有提供校园高精度地图,因此要求设计一个具有定位和路线规划功能的高精度校园地图APP。本毕业设计基于百度地图,把百度基础地图引入APP并对基础地图予以修改来提高地图
4、的精度,加上定位和路线规划功能,使同学们更加容易的在校园中定位自己位置并找到目标楼宇。其中提高地图精度的部分是通过自己实地考察各个楼宇的经纬度并把经纬度转化为百度地图的火星坐标来修改基础地图中的地图,使原地图变为高精度地图,定位和路线规划系统则通过编程代码实现。通过导入百度地图API的定位SDK和使用地图SDK中的POI检索功能实现路线规划,在最终的APP中完成了以上功能,且界面美观,达到了预期效果。关键词:高精度地图;定位系统;路线规划The design and implementation of campus map Android APPAbstractWith the arrival
5、 of twenty-first Century, information technology has come to us big data, the era of the logo is the computer and the wide use of smart phones. Now society smart phone has reached a very popular, or bus is subway everywhere visible smart phone figure, visible smart phone use the high rate, and smart
6、 phone system is divided as Android and IOS systems. On the market in addition to IPhone, most of the smart phones are used in the Android system, the campus of the unified use of our school is also a Android system. For freshers, due to the greater our school campus to quickly find their place in t
7、he campus, the Maps app on Android devices is currently positioning and navigation of the preferred, and the current traditional Google Maps app, Baidu map app or High German map app without providing campus map with high precision. Therefore, it is necessary to design a localization and path planni
8、ng function of high precision campus map app. This graduation design based on Baidu map, the Baidu base map into the app and on the basis of the map to be modified to improve map accuracy, positioning and path planning function and, make the students more easily in the campus location position thems
9、elves and find the target building. Which improve the accuracy of the map is through their field trips each building of longitude and latitude and longitude and latitude transformation for Baidu map of Mars coordinates to modify the base map in the map, the original map variable for high precision m
10、ap, localization and path planning system is through the programming code to achieve. Through the introduction of Baidu map API positioning SDK and the use of map POI in the SDK search function to achieve the route planning, in the final APP to complete the above functions, and beautiful interface,
11、to achieve the desired results.Keywords: high precision map; positioning system; route planning;目 录1 前言51.1选题背景51.2项目内容51.3项目意义52 需求分析及相关技术介绍62.1用户需求62.2可行性分析62.2.1经济可行性62.2.2技术可行性63 系统分析及设计73.1系统描述73.2系统分析73.2.1初始化界面73.2.2 关于作者83.2.3校园地图显示83.2.4定位系统83.2.5路线规划系统84 详细设计94.1总述94.2详细设计实现94.2.1初始化界面和关于作
12、者94.2.2校园地图显示104.2.3定位系统134.2.4路线规划系统145 运行及调试155.1运行环境155.2调试时发现的错误155.3测试结果166 总结19参考文献20致 谢211 前言1.1选题背景随着科学技术的不断发展,日新月异的新科技层出不穷,而目前最普及的便是智能手机和电脑,地图是一种十分熟悉的功能性道具,现阶段地图的定义是:以一定的数学法则(即模式化)、符号化、抽象化反映客观实际的形象符号模型或者称为图形数学模型。从几十年前的纸质地图到现如今智能手机里的各种地图,如百度地图,谷歌地图,高德地图等等,但是对于新生来说,由于我校校园较大,无法很快地找到自己在校园中的位置,安
13、卓手机设备上的APP是目前地图定位和导航的首选,而目前传统的谷歌地图APP,百度地图APP或是高德地图APP等都没有提供校园高精度地图,因此我认为这样的题目会对以后来我校学习的新生有一定的帮助。故选了这个题目。1.2项目内容为了方便新生们使用加入了定位以及路线规划系统,用户可以使用该软件定位自己在校园的位置,并输入目标楼宇即可返回当前位置到目标楼宇的路线规划。本项目需要完成的内容:(1) 在程序中展现校园地图,并实现对地图的放大缩小和平移。(2) 实现通过手机信号和GPS信号的位置定位,并在地图上显示当前位置。(3) 对校园地图中的每个主要楼宇进行名称标示。(4) 实现路线规划功能,用户可输入
14、重点楼宇得能改成,客户端即返回相应的两点间的路线规划,并描绘在地图上显示。1.3项目意义本系统的开发,旨在为新入学的学生提供一个方便快捷的生活方式,由于我校校园较大,ABC三座教学楼错综复杂,经常有新同学找不到教学楼的位置,导致上课迟到,经管楼,艺术楼机械馆等楼宇也是很难找到,尤其是外省市的学生来此会更加着急,故而这个系统只为了方便学生找到目标建筑物,不至于迷路在校园中,成为一个实用的软件,降低新生上课迟到率,为学生提供一个便捷的生活环境。2 需求分析及相关技术介绍2.1用户需求本系统的用户是广大学生以及教师,方便用户们能在校园中迅速的找到想要去的楼宇,并标示出自己的位置以及路线,准确的查看到
15、校园中的各个教学楼,宿舍楼,食堂等建筑物,可以对地图进行放大平移缩小等操作。2.2可行性分析软件的可行性分析最基本的是:如果这个问题不值得解决,那么分析员应该建议上级部门取消该软件的编码,来避免时间,金钱,人力和资源的浪费;如果这个问题值得解决,分析员应该为工程制定一个初步的方案。2.2.1经济可行性开发安卓软件系统实际上也是一种投资,希望能在将来获得更大的经济利益,而软件系统的经济利益通常表现在减少运行费用和增加收入两个方面,下面从软件开发的成本以及系统投入使用后所带来的经济利益来对本系统进行分析开发本系统需要电脑一台,折旧费用是1000元,开发人员一名,开发3个月日常花销1000元,总计3
16、个月下来2000元。本系统投入使用后能方便我校的师生使用,能够避免部分新生因为找不到教室或者是教学楼等楼宇从而导致上课迟到的问题。降低了挂科率并降低了重修降级的可能,所以在经济上是完全可行的。2.2.2技术可行性本系统使用的编程语言是JAVA语言,使用的编程环境是Eclipse,JAVA语言是一种面向对象的编程语言。JAVA技术具有超群的通用性,高效性,被广泛应用到个人PC,数据中心,互联网等多个领域。是一种拥有全球最大的开发者专业社群的编程语言,在目前全球云计算和互联网的产业环境下,JAVA更是具备了辽阔前景和明显优势,并且能够兼容同为面向对象类型的C+编程语言和面向过程类型的C语言,JAV
17、A是一种优秀的高级编程语言,可以完成本次毕业设计的要求。3 系统分析及设计3.1系统描述本系统整体实现的具体步骤如下:打开APP显示初始界面可以选择校园地图总览与定位,退出和关于作者三个按钮。若点击关于作者按钮会显示出作者的学校名称,学号,班级,姓名等信息,点击校园地图总览与定位会进入总览地图,由于路线规划和定位系统均被设计在地图的布局中,所以点击总览地图即可进入项目的主界面。可以在主界面中对地图进行放大缩小平移等操作。亦可点击开启定位或是点击南区路线规划和北区路线规划按钮。分别实现定位自己位置以及显示出当前位置到目的地点的路线规划图,方便学生们迅速的找到目标楼宇。该系统具有以下特点:该系统的
18、校园地图具有极高的精度,全部数据均采用GPS定位系统测得系统的稳定性好,能够在各种条件下运行该APP。系统成本低,只有一小部分的运行成本。连上移动数据和WIFI均可使用APP中的各个部分的功能。开发成本亦然。3.2系统分析一个模块化的系统是指这个系统把一系列松散耦合的模块组成起来。自顶而下逐层的把系统划分成多个不相干的多个模块的过程。应用模块化的概念与耦合.内聚的概念对软件的结构进行开发,能够得到一个模块化的系统结构。根据本系统的要求,进具体分析,画出模块图如图3.1所示。3.2.1初始化界面这个模块中有3个按钮,以及一个文本显示工具,三个按钮分别是校园地图总览与定位,退出和关于作者,背景采用
19、我校图书馆的照片作为背景。点击关于作者会进入关于作者模块,点击校园地图总览与定位可进入校园地图总览模块,该模块的背景设定为我校青阳湖上的小桥以及教学楼C座的一张照片。该模块中点击总览地图即可进入校园地图显示模块,点击返回可以返回上一级菜单。安卓校园地图定位APP初始化界面关于作者路线规划系统校园地图显示定位系统图3.1系统构成模块3.2.2 关于作者在初始化界面中点击关于作者就会来到这个模块这个布局文件中由4个文本显示工具和一个按钮构成。文本显示工具显示了作者的基本信息,点击按钮可以返回初始化界面。3.2.3校园地图显示进入校园地图显示模块之后,手机中会显示出地图放缩大小的级别为17级的校园地
20、图,每个楼宇的坐标均为实际测量,精确度很高,地图的中心点在我校的青阳湖上。屏幕中有3个按钮,右上角按钮为开启定位,点击之后可以进入定位模块,左侧上方有两个按钮分别是南区路线规划和北区路线规划。点击即可进入路线规划模块。3.2.4定位系统这个模块顾名思义是进行定位的,实现的功能是定位自己在校园中的位置,点击开启定位之后会有一个蓝色的小标示来标注自己的当前位置。3.2.5路线规划系统这个模块可以实现的功能是实现路线规划的功能,当我们定位了自己的当前位置之后,通过选择自己想要去的目标楼宇是在南区还是北区,然后点击路线规划按钮,找到并点击自己想去的目标楼宇名称,即可显示出想要的路线规划地图。注意:其中
21、每次使用路线规划系统的时候均需要在使用之前点击开启定位,才可以显示出想要的路线规划图。 4 详细设计4.1总述由于是一个关于地图方面的毕业设计,题目要求制作一个高精度的校园地图,因此本APP采用的基础地图是百度地图,通过学习百度地图api,来导入百度地图进行修改,在百度地图的基础上实现毕业设计中要求的各个要求。 定位系统通过百度地图的定位SDK加上代码编程实现,路线规划功能通过使用POI检索功能,查询出不行的路线规划4.2详细设计实现本系统一共包括五个模块,分别是初始化界面模块,关于作者模块,校园地图显示模块,定位系统和路线规划模块。5个模块的关系如图4.1所示。 开始初始化界面关于作者校园地
22、图显示定位系统路线规划图4.1各模块之间的关系进入APP之后首先进入初始化界面,其中可以选择按钮进入关于作者和校园地图显示,进入校园地图显示之后可以分别开启定位和规划两个模块。4.2.1初始化界面和关于作者初始化界面是这让个APP的初始界面,所有用户打开APP之后都会进入初始化界面,其本质就是一个layout的XML文件,其中包含的几个组件,具体组件已经在概要设计中说明,layout采用的是RelativeLayout的相对布局。点击校园地图总览与定位会进入校园地图模块,点击关于作者会进入关于作者模块。关于作者模块本质也是一个layout的XML文件,通过setContentView来调用关于
23、作者这部分的XML文件,即可显示出作者的个人信息。开 始是否点击关于作者进入关于作者结 束是否点击校园地图点 击 退 出进入校园地图显示模块结 束结 束YYNN如图4.2所示,描述了初始化界面的具体流程图。图4.2 初始化界面流程图4.2.2校园地图显示这个模块是本次毕业设计中比较核心的一个模块,由于毕业设计的题目是安卓校园地图的设计与实现,毕设要求中提到需要制作高精度的校园地图,目前网上的谷歌地图,百度地图,高德地图等地图都没有做到高精度这一点。故而本次毕业设计采用的是百度地图为模板,通过学习百度地图API,来导入百度地图到程序中,然后经过亲身去我校各个主要楼宇采集GPS经纬度,再把这些采集
24、到的经纬度使用百度Demo中的坐标转换功能,转换为百度地图的坐标,借此来做到毕设要求中的高精度地图。以及可以平移放大缩小的校园地图。下表为实地测量的我校各个主要楼宇的GPS经纬度:表4.1 我校北区主要楼宇经纬度楼宇名称经度纬度逸夫馆123.394495741.9242879工程训练中心123.394502941.9248583机械馆123.397517141.9249268艺术馆123.397985541.9259733图书馆123.398908541.9248000体育(羽毛球)馆123.399911441.9259617北区足球场(体育场)123.402023441.9253931北区食
25、堂123.403074041.9253108北区1号,2号宿舍123.403845641.9258102北区3号宿舍123.403944641.9265912北区4号宿舍123.403933641.9269131北区5号宿舍123.404154541.9260998北区6号宿舍123.404110141.9265150北区7号宿舍123.404062041.9268872北区篮球场123.405158741.9260429重点实验室123.407001541.9254810大学生活动中心(大活)123.402662941.9241183青阳湖123.401200841.9233847航宇馆12
26、3.396040641.9232128表4.2 我校南区主要楼宇经纬度楼宇名称经度纬度南区食堂123.402470841.9214760南区1号宿舍123.402834941.9215615南区2号宿舍/校医院123.403455241.922.933南区3号宿舍123.404618441.9216441南区4号宿舍123.404654341.9220404南区5号宿舍123.404561341.9223825南区篮球场123.404515741.9210930留学生公寓123.404400041.9205230南区10号宿舍123.404342641.9201145南区11号宿舍123.40
27、3648241.9203201南区12号宿舍123.402611641.9203316南区13号宿舍123.401904141.9199759南门123.402651541.9199446南区足球场123.401178541.9210662C座教学楼正门123.398359341.9227804B座教学楼正门123.397626541.9228670A座教学楼正门123.396908941.9224448行政楼123.394332741.9222013正门123.393119541.9205514 表4.1和表4.2中的经度纬度数据真实有效,均为实地测量。得知上述的40组数据之后,再通过Add
28、Overlay的方法,把上述数据全部标注在之前导入APP的地图上,并设定中心点以及初始的放缩级别。完成了高精度的校园地图的制作。4.2.3定位系统毕业设计的要求中提到,需要定位自己在校园中的位置,故而就需要这样的一个定位系统,这个系统实现的功能是通过GPS或是数据信号定位自己的坐标,并把坐标显示到地图上,首先需要开启定位,之后需要设定一些参数,这些参数包括:定位模式,定位结果坐标系,是否仅定位一次,是否使用GPS,是否当GPS有效时按照1s一次的频率输出GPS结果,是否需要位置语义化结果,是否需要POI结果,是否在stop的时候杀死这个进程,设置是否收集CRASH信息,设置是否需要过滤GPS仿
29、真结果等。设置参数之后返回定位的结果,然后把定位结果标注在地图上,并留着数据进行路线规划模块的制作。如图4.3即是定位系统具体流程图。开 始开启定位设置参数返回结果并标注在地图上结 束图4.3定位系统流程图4.2.4路线规划系统由于我校校园较大,楼宇众多,南北区错综复杂,经管楼,艺术楼,机械馆,艺术馆经常让人混淆,有些新生因为找不到楼宇而错过上课时间,错过实验时间,最终到时实验未通过,这样得不偿失,而路线规划系统就是解决了这个问题。由于大部分学生在我校的主要活动方式基本是行走,因此我采用的是行走方式的路线规划,利用其中的百度地图API里面的POI检索,先设置路线规划中的起点,在这里就是定位系统
30、定位到的数据,然后设置路线规划的终点,在校园地图显示模块中可以分别选择南区路线规划或是北区路线规划,然后查找并点击想要去的目标楼宇名称即可返回当前位置到目标楼宇的路线规划图。如图4.4即是路线规划系统具体流程图。开 始开启定位,取得当前位置坐标选择目标楼宇是南区还是北区结 束点击目标楼宇按钮显示出路线规划图图4.4 路线规划流程图5 运行及调试软件的最终目的就是运行,并能够满足要求的实现某些目标,而调试是当编码出现错误时,通过调试逐步的检查最后修改完成毕业设计,因此运行和调试彼此是分不开的。5.1运行环境硬件环境:机器:一台智能手机。内存:1G以上软件环境:操作系统:Android4.0.0以
31、上的操作系统Java环境:eclipse从以上配置来看,本APP在一般的Android智能手机上均可运行5.2调试时发现的错误表5.1调试时发现的错误及解决办法调试时出现的问题解决办法APP无法全屏显示,仍然会留下应用程序的名字以及电量图标WIFI等状态栏导致做界面的时候不美观。添加代码:this.requestWindowFeature(Windou.FEATURE_NO_TITLE);this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FUL
32、LSCREEN);测量的GPS经纬度坐标直接显示到APP中,发现偏差巨大。使用百度Demo中的坐标转换方法,把实际的经纬度坐标转化为百度坐标即可实现精准的标注楼宇名称通过添加表格中的代码和使用百度Demo中的坐标转换方法即可解决上述问题,完成了毕业设计。5.3测试结果初始化界面如下图5.1所示: 关于作者界面如下图5.2所示: 图5.1 初始登录界面 图5.2关于作者界面校园地图显示界面如下图5.3所示: 定位系统如下图5.4所示: 图5.3校园地图显示界面 图5.4定位系统注:由于编写论文时是在家编写的,所以图5.4中的蓝色小点即是我家的位置。路线规划系统:路线规划中分为两个部分,南区路线规
33、划和北区路线规划,如下图5.5是南区路线规划列表 : 图5.6是北区路线规划列表: 图5.5 南区路线规划列表 图5.6北区路线规划列表下图是从我家为起点到行政楼的路线规划图,总体图片:图5.7路线规划整体路线图下面两个图片是我家到行政楼路线规划的起点终点位置的放大图片。起点位置如下图5.8所示: 终点位置如下图5.9所示: 图5.8路线规划起点位置放大图 图5.9路线规划终点位置放大图以上系统均可实现毕业设计的所有要求。完成了毕业设计的设计。6 总结本论文的题目是安卓校园地图与定位APP的实现。地图是人们日常生活中常用的一种工具,而我校校园较大,许多新生经常在学校找不到方向,而目前市面上常用
34、的百度地图APP,谷歌地图APP和高德地图APP都没有校园的精确地图,对学生来说并不适用,因此我选择做这个毕业设计。毕业设计一个要求有四个功能,分别是高精度地图,平移,放大,缩小校园地图,定位系统和路线规划系统,因此我按照如下的步骤进行了编程。对于目前我的安卓编程水平来说,自制一个高精度的校园地图的难度实在太高,我认真的学习了百度地图API,把百度地图的基础地图导入毕业设计中,实现了放大平移缩小的部分。然后通过去校园中的各个主要楼宇,使用GPS定位工具,实地测量了各个楼宇的经纬度,并把它们转化为百度地图坐标,显示在APP中,提高了校园地图的精确度,完成了高精度地图的制作部分,然后引入百度地图A
35、PI中的定位SDK,加上学习了POI检索的相关知识,完成定位系统和路线规划系统两个部分,并最后编写界面,完成了毕业设计的设计部分。参考文献1 牟式标,楼越升。 基于工程项目的Android设计研究J. 数字技术与应用,2015,12:75-76.2 刘晓明。 Android应用异常检测方法研究J. 无线互联科技,2015,24:121-122.3 韦江华,李福章,林川。 基于Android平台定位系统的客户端设计J. 信息系统工程,2016,04:102-103.4 韩超,梁全,Android 系统原理及开发要点详解J.北京:电子工业出版社,2009:16-102.5 百度地图API官方网站。
36、致 谢大学四年做了四年的课程设计,终于来到了毕业设计,它和以往不同,以往所做的课程设计都是本学期学过的内容,而这次的毕业设计是我在学校从没有学过的,我通过去学校图书馆查阅书籍,在网上查阅相关资料,来慢慢的学习Android方面的知识,从布局到控件。从基础地图到定位规划。逐渐的我已经对Android方向的编程有了一点点的了解。我从一个对于Android编程甚至是对Java语言几乎一点都不懂的小白,慢慢的也能编写出几个简单的小程序,现在已经能够独立的完成毕业设计,这与赵亮老师是分不开的,我十分感谢的赵亮老师对我的悉心督促,经常会问我进度怎么样,并耐心的给我解答我向老师提出的问题,没有赵亮老师,我也不会进步那么快,总之是非常感谢赵亮老师的关心和栽培。谢谢您了。同时感谢沈阳航空航天大学四年来的栽培,我定不会忘记四年来航院老师的谆谆教导,不会给老师们丢脸,老师们辛苦了。20