资源描述
西北大学本科毕业论文(设计)开题报告登记表学生姓名刘晓旭性别男学号2011117147学 院信息科学与技术学院年级2011专业电子信息工程指导教师姓 名刘成指导教师专业技术职务工程师开题报告日期2015.3.3论文(设计)题 目基于手机的校园导航系统开 题 报 告 内 容选题来源1教师指定()2教师课题()3创新基金项目()4自选()论文(设计)选题的背景与意义、理论与实证准备、拟解决的问题、研究(设计)方法与技术路线1、背景与意义高校的逐年扩建以及学生的逐渐增加,令来访学校的人员越来越多,但高校的面积一般都很大,各个院系和机构分布错综复杂,来访者需要经过一番周折才能顺利抵达目的地。而且高校一般很少利用纸质的地图对来访者进行引导,因此,建立具有校园信息查询,智能导航功能的手机应用,对提高高校现代化建设以及人性化服务具有很好的价值。随着移动技术的迅猛发展,手机早已不止当初的通话功能了,它现已成为集通信、电脑为一体移动计算工具,人们对手机所赋予的功能也越来越多,而传统电脑中的导航系统用安卓技术来实现早已成为可能。导航软件在智能手机中的应用已经成为热点之一,越来越多的App被安装到手机上,给人们的生活带来了极大的便利。如今全球定位系统较最初有了很大的飞跃,定位精度越来越准确,基本能够满足大范围的导航服务,然而基于GPS的导航对于周围环境要求比较严格,如若没有添加道路信息和建筑物的标注,则在局部小环境下,导航系统发挥的作用就会相对较小。而该系统可以在GPS的基础上实现对校园环境的搜索和导航,以提更加便利的服务。2、 研究内容和技术路线 (1)精确定位的实现手机定位是指通过特定的定位技术来获取移动手机或中断用户的位置信息(如经纬度坐标),在电子地图上标出被定位对象的位置的技术或者服务。定位技术目前来说主要有三种,一种是基于GPS的定位,一种是基于移动运营商的基站的定位,还有一种是基于wifi热点的定位。1 基于GPS的定位:是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。GPS定位系统是以21+3颗卫星分布模式为基础,向全球各地提供经纬度,高度,速度等信息的一种无线电导航定位系统。它由三部分组成:l 空间部分,由21颗主卫星和3颗备用卫星组成,分布在6个轨道平面,基本可覆盖全球所有位置。l 地面控制部分,由主控站、地面天线、监测站以及通讯辅助系统所组成。l 用户装置部分,也就是拥有GPS模块的手机或导航仪。 利用卫星传送过来的参数加之计算就可以确定用户的位置了。2 基于移动运营商基站的定位:这种方式通过移动运商的网络(如GSM网)获取移动终端用户的经纬度坐标,在电子地图平台的支持下,为用户提供相应服务。它的大致原理是:手机测量在不同基站的下行导频信号,得到不同那个基站下行导频的到达时刻或者到达时间差,根据该测量结果并结合基站的坐标,一般采用三角公式估算法,就能计算出移动电话的位置。而实际上该算法需要考虑更过的基站以实现更为精确的定位。3 基于wifi热点的定位:如果智能手机连接上了某个WiFi热点,那么就可以调用数据库中附近所有热点的地理位置信息,而服务器会参考每个热点的信号强弱来计算出设备的大致地理信息。其原理大致分为以下几步:l 每一个无限AP都有全球唯一的MAC地址,并且短时间内无限AP不会移动。l 移动设备在开启WiFi的情况下,即可扫描并收集周围的无线接入点信号,无论是否加密,是否已经连接,甚至信号强度不足都可以显示在无线信号列表中,都可以获取到无线接入点广播出来的MAC地址。l 设备将这些能够标识AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置信息并返回到用户设备。l 而位置服务商要不断更新、补充自己的数据库,以保证数据的准确性。 (2)地图数据的获取 百度地图的API是基于在Android2.1系统平台之上,对开发者免费开放的应用程序接口,它包括HTTP服务接口,Android API 等开发工具,可以实现显示基本地图,导航,定位,离线地图,数据存储等功能。它可以应用于各种终端,开发者可以用此接口实现自己定制的地图App。在百度提供的Sdk4.0地图开发包中包含了各种接口,用户可以调用任意的函数方法来实现相应的功能,比如用户可以利用setSatellite(boolean)来显示卫星图,setCenter(latitude,longitude)来设置地图中心点等。百度地图开发包所提供的库能够很方便的实现很多函数。(3)路径规划 路径规划是指在具有障碍物的环境中,按照一定的评价标准,寻找一条从起始状态到目标状态的无碰撞路径,在本系统中,通过百度地图,结合路网信息和建筑物信息,应用导航中所潜入的算法,来实现从所处位置到目的地的指引。目前应用较多的有以下几种路径规划算法:1 Dijkstra算法:它是从一个顶点到其余各项点的最短路径算法,解决的是有向图中最短路径问题,它的特点就是一起始点为中心点向外层层扩展,直到扩展到终点为止。它的主要特点是每次迭代时选择的下一个顶点时标记点之外距离源点最近的顶点,由于该算法主要计算从源点到其他所有点的最短路径,所以算法效率较低。Dijkstra算法目前已经广泛应用于显示现实生活中,特别是在路径规划和导航应用上。而伴随着城市越来越大,交通路网信息也越来越复杂,这使得道路交通系统变得更复杂,相应的数据量也越来越大。优点:总是能够为用户找到一条最短路径。 缺点:数据量大,效率较低。2 A*算法:它是一种在平面上存在多个节点的路径,求出最低通过成本的算法,也是静态路网中求解最短最有效的直接搜索方法。其公式表示为:,也就是说其估价值与实际值越接近,估价函数取得就越好。其中,是从初始点经由节点n到目标点的估价函数,是在状态空间中从初始节点到n节点的实际代价,是从n到目标节点最佳路径的估计代价。保证找到最短路径条件,关键在于估价函数的选取,估价值到目标节点的距离实际值,此时,搜索范围的点数多,搜索范围大,效率低。如果估价值大于实际值,搜索的点数少,效率高,但不能保证找到最优解。优点:该算法作为启发式搜索方式,搜索效率比传统的Dijkstra效率快。缺点:随着数据量的加大搜索,它自身的效率会变得越来越低,而且在障碍陷阱中易陷入死循环,不能同时进行多个节点的最优路径搜索。3 距离矢量算法:它是Arpanet网络上最早使用的路由算法,他的基本思想如下:每个路由器维护一个距离矢量表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新。每个距离矢量表包括两部分:达到目的结合点的最佳输出线路,和达到目的结合点所需要的时间或者距离,通信子网中的其他每个路由器都在表中占据一个表项,并作为该表项的索引。每个一段时间,路由器回想所有邻居节点发送它到每个目的节点的距离表,同时它也接受每个邻居节点发来的距离表。这样以此类推,经过一段时间后便可将网络中各路由器所获得的距离矢量信息在各路由器上统一起来,这样个路由器只需要查看这个距离矢量表就离异为不同来源分组找到一条最佳的路由。该算法多用于路由动态协议。在分析本系统的系统需求后,认为校园导航所需算法满足以下几点:l 校园路网和建筑物信息相对位于外界交通信息来说数据量小很多l 需要对多个节点进行同时搜索l 该算法所需运算量不要太大,适合在安卓平台上进行计算并实现路径导航综合以上三点,该系统拟采用Dijkstra算法。(4) 人机交互界面 自从智能手机问世以来,人们的生活越来越离不开手机了,手机变成了一个人们随身携带、和其生活方式紧密联系着的产品,因此手机UI的发展对吸引用户来说有着很大的意义,而人机交互界面则更是直接影响了手机用户的使用体验,虽然影响手机用户体验各方面因素所涉及的实现技术不同,但是用户直接的沟通渠道却是手机的人机交互界面。用户体验的范围广泛来说涵盖了手机和通讯网络特性、应用程序的功能、信息的可视化、浏览菜单的友好性、功能选用的便捷程度,以及设备在使用时的感觉。 目前,现有导航的界面已经在当前科学技术发展层次上已经做得很完善了,所以对本次的校园路径导航系统进行了模块规划,大致分为如下几个功能:1 定位功能:时刻了解自己所处地理位置以及周边环境,由于百度地图提供的sdk库,我们只需调用相关函数即可。2 卫星图切换功能:由于道路更新以及建筑物不断在建设,百度地图所提供的数据肯定会与周围建筑有所出入,此时若将平面地图切换到卫星地图,用户参照周围建筑物就能更加清晰地了解自己所处的位置。3 检索功能:添加文本输入框,用户输入目的地,如:西北大学南校区图书馆,点击查询,程序会在数据库中寻找相关地址,若有名称相同的地方,用户可根据周围环境进行选择即可。4 导航系统功能:在定位和目的地查询的基础上,添加此项功能,即可在当前图层上绘制出前往的步行路线。 以上为此次校园路径导航的所需要的基本功能模块,在同一个屏 幕下,尽可能地实现界面清爽,操作简单的目的。(5) 数据存储 所有应用程序必然伴随着数据的输入、输出、安卓系统也不例外,应用程序参数的设置、程序运行状态数据这些都需要保存到外部存储器上,这样系统关机后数据才不会丢失。android系统提供了一些专本的IO API,通过这些API可以更有效地进行输入、输出。如果应用程序只有少量数据需要保存,那么使用普通文件就可以了;但是如果应用程序中有大量的数据需要存储、访问,就需要借助数据库了,android系统内置了SQLite数据库,它是一个真正轻量级的数据库,它没有后台进程,整个数据库就对应一个文件,这样就可以非常方便的在不同设备间进行移植,android不仅内置了SQLite数据库,而且为访问SQLite数据库提供了大量便捷的API。(6) 开发平台:由于本系统是基于安卓的校园路径导航,所以其开发环境是以安卓应用层为中心进行开发。而安卓应用程序是由Java语言写成的,是建立在应用程序框架之上,所以安卓编程就是面向应用程序框架API编程,而Java作为一种软件编程语言,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,广泛应用于个人电脑,数据中心,移动电话和互联网。 Eclipse作为一个开放源代码、基于Java的可扩展开发平台,就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建其开发环境。由于eclipse是一个开放源码项目,任何人都可以免费得到,并可以在此基础上开发各自的插件,而android也作为一个开源平台,和eclipse相得益彰。对于eclise来说,它集成的DDMS透视图能很好的监控和控制模拟器,对于没有安卓手机的开发者来说,能在该模拟器上很方便地开发大部分安卓程序。3、技术难点与拟解决的方案本次设计基于java编程语言,在开源软件eclipse上实现android开发,采用了自底向上方法设计,运用java以及android开发知识。对于用户界面的设计以及百度地图的导入、定位、检索,这四个模块已经完成并实现了相应的功能,而其中对地图的修改和对路网信息、建筑物的提取为本次系统设计的难点。你解决的方案:方案一:注册百度商户,对地图上不完善的道路信息和建筑物进行标注,实现校园建筑物的全部覆盖,再用百度地图中自带的导航算法进行导航。方案二:建立数据库,对地图上标注信息不全的地方进行数据重写或者覆盖,建立新的地理位置图层,然后再专门针对数据库进行算法的编写与实现。方案三:设置服务器,建立一个独立的服务器用来响应用户的命令,向其它服务器传输请求,并返回结果给用户。方案一工作量大,如果原先百度地图上没有进行标注,则需要一个一个进行标注。并且如果采用百度地图自带的算法进行路径导航的话,其结果并不一定能达到本次系统所预期的最优度。方法三的只要用户连接网络,一切的定位导航部分便可以交给服务器去做,省时省力,但是却需要消耗用户流量等移动资费。并在用户离线状态下无法使用该应用。方法二能够使用离线地图,在离线情况下也可以进行导航和定位,并且相对于搭建服务器,以及网络编程来说,其开发难度要相对较小。故在安卓手机软硬件限制下,拟采取方案二。4、研究(设计)方法与技术路线系统总体结构有:UI界面设计部分,数据存储设计部分,Dijkstra算法实现部分。而数据存储设计部分和Dijkstra算法实现部分,是实现校园手机导航的核心部分。UI界面设计部分:包括地图界面,定位界面,检索目的地界面,导航界面以及卫星图切换界面。数据存储部分:利用android系统自己集成的轻量级的数据库SQLite,对目标进行标注,存储,读取,定时读取GPS数据以获得用户目前所在的位置信息,并将其保存在数据库中,用户也可以选择其他目标信息。Dijkstra算法实现部分:将地图中的建筑坐标抽象成一个一个的二维点,对其进行最短路径规划,完成之后再调用到图层上,并显示出来。下面的框图表示研究内容: 总系统地图图层界面 定位 检索 卫星/ 导航 功能 功能 地图 功能 切换 对数据的存储和读写 Dijkstra算法该校园路径导航系统包括以上这五大部分,其中(1) UI界面分布如下: 其中作为整个导航界面的北京图层。(2) 定位与检索部分:在UI主界面的基础上添加定位和检索按钮,分别为这两个按钮设置监听:l 获取普通界面组件,也就是被监听的对象,在此系统中为按钮,点击按钮触发监听事件l 实现事件监听类,该监听类是一个特殊的Java类,必须实现一个OnCLicklistener接口l 调用事件源的SetOnClcikListner方法将事件监听器对象注册给 普通组件(也就是事件源,即点击按钮)l 在实现时间监听类的过程中,即可调用LocationClient类,以及MKsearch类实现这两个方法。(3) 路径导航部分:同定位检索功能的实现一样,路径导航部分也是在地图图层的基础上进行设计的,其原理与定位、检索的原理一样,同样是设计监听器借口,并调用导航类,以实现不加算法的导航。(4)数据存储部分:android提供了SQLiteDataBase代表一个数据库(底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQLiteDataBase对象,接下来就可以通过SQLiteDataBase对象来管理,操作数据库了。我们可以在数据库中按照一定的规则建造数据表,以实现对周围路网和建筑物的管理和分类。(5)算法实现部分:由于该系统采用了dijkstra算法,且且该算法目前在一定的范围内已经比较成熟,故,将数据库表格中的数据进行制作成一个二维数组,用来表示路网信息和建筑物信息,然后应用最短路径算法,对其进行计算,并利用画笔绘制出相应的路线,以达到校园导航的目的。软件流程:1 首先在程序中调用setcenter(latitute,longitude)将西北大学的经纬度作为参数传递给方法,这样在打开界面后就可以直接让主视图定位在西北大学上方。2 然后点击“我在哪”按钮,启动ButtonListener监听器,触发事件发生后,程序迅速响应,开始进行定位,将自己所处位置信息以文本的方式显示在地图上。3 其次在地图上放的文本控件中输入所需要前往的目的地,点击“查询”按钮,再次设置监听,启动监听器,程序迅速响应,定位到目的地位置上空,并以红色标注,用来确定目的地。4 点击“导航”按钮,触发监听器,让程序后台的应用最短路径算法进行计算,并在地图图层上开始描绘线路。其中,该算法需要将校园环境与周围建筑物考虑其中,使规划的路线具有实际应用价值。5 如若对周边环境不是很熟悉,可以点击地图下方的的“地图/卫星”按钮,用来切换卫星地图视角,对比周围建筑物,使得自己能够更加清楚地了解自己所在位置。论文(设计)写作提纲中文摘要英文摘要第一章 绪论1.1 论文背景及意义1.2 主要工作第二章 校园路径导航系统设计概述2.1 GPS以及路径导航系统简介2.2 BaiduMap的选择2.3 安卓开发环境搭建第三章 校园路径导航设计方案3.1 系统功能模块划分3.2 系统构架设计3.3 用户界面设计第4章 数据存储设计4.1 数据库存储原理4.2 数据库存储实现第5章 dijkstra算法5.1 dijkstra算法原理5.2 dijkstra算法在Android中的实现第六章 系统子模块的设计与实现6.1 基础地图模块的实现6.2 定位功能的实现6.3 输入目的地功能的实现6.4 导航功能的实现第七章 设计总结附录工作步骤与时间安排一、3月3日3月10日:毕业设计初期,收集资料,阅读文献,对设计课题的背景、意义、设计思路形成一个整体的概念和框架,撰写开题报告。 二、3月9日4月9日:系统整体及各模块分析,完成各个子模块的设计与实现,并将各子模块连接成系统,实现系统顶层设计。并将生成的.apk文件下载到安卓真机上进行整体调试。 三、4月10日4月15日:进行汇总整理资料,撰写论文并认真修改完善论文,最终定稿。指导教师意 见 指导教师签名:年 月 日注:此表由学生填写后交指导教师签署意见,并交院系教务办保存,否则不得开题;此表将作为毕业论文(设计)最终评分的依据。
展开阅读全文