英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
基于Android的定位和导航系统的设计和实现
摘要:随着移动互联网的发展,越来越多的人开始通过手机获得方便的服务。通过DPS定位和网络定位获得一个当前位置已成为大多数基于位置的服务的应用程序的重要基础之一。在本文中,我们设计并实现了一个个性化的基于Android平台的定位和导航系统。它是通过GPS定位和网络定位的相结合,并使用Google地图API,该系统提供了以下功能:查看当前位置导航路线,地址查询和查看历史记录位置。
关键字:导航;Android;谷歌地图
引言
近年来,随着移动互联网的快速发展,手机不再仅仅是交流的工具,越来越多的人希望通过移动电话得到更多的有用的服务。基于位置的服务(LBS)在移动互联网领域是一个流行的应用程序。移动终端用户通过无线通信网络(如GSM网络,CDMA网络)的通信运营商或外部定位(如GPS或网络)获得位置信息(地理坐标或大地坐标),这些位置信息然后为用户提供GIS(地理信息系统)平台的支持下相应的服务[1]。随着智能手机的普及,获取当前位置的定位或网络定位已经成为一个重要的LBS应用程序的基础。在本文中,我们设计并实现了一个个性化的基于Android平台的定位和导航系统。用户可以按照如下所述从这个系统得到方便的服务:
A.当前位置
用户可以得到实时的定位结果,将显示在地图上。此外,用户可以查看当前位置的详细信息,并将位置信息上传到服务器。
B.航线
用户可以看到导航路径信息的起点和终点之间的路径。有2种导航模式选择:驾驶和步行。在选择导航模式后,该系统将为用户提供相应的信息,在起点和终点之间的距离和持续时间,并显示在地图上的导航路线。
C.地址查询
用户可以查询一个地址,并将查询结果显示在地图上。
D.历史记录
用户可以查看自己的历史位置信息记录,这是默认显示在列表中。此外,用户可以查看地图上的历史位置信息记录。
2 android平台和谷歌地图
A.Android平台
安卓平台是一个开放的系统架构,具有多功能开发和调试环境,而且还支持各种可扩展的用户体验,其中有优化的图形系统、丰富的媒体支持和强大的浏览器。它可以重用和替换组件和一个高效的数据库支持和支持各种无线通信手段。它使用一个Dalvik虚拟机高度用来优化移动设备[ 2 ]。安卓是一个用于移动设备的软件协议栈,包括操作系统、中间件和关键应用程序。Android SDK提供了必要的开始开发应用程序运行在Android设备[ 3 ]的工具和库。如图1 [ 4 ],安卓体系结构包括以下5个部分:
1)应用:一套核心应用的最高水平,包括短信,浏览器,联系人,等所有的应用程序都是用java语言编写。
2)应用框架:开发人员已经完全访问核心应用程序所使用的框架。应用架构的设计,以简化所有组件的重用。这种机制允许每个组件可以由用户更换。下面所有的应用程序是一组服务和系统,包括了丰富的和可扩展的,可用于构建一个应用程序,包括TextView,ListView,Spinner, Button, MapView 等。内容提供者允许应用程序访问其他应用程序(如联系人)的数据,或分享他们自己的数据。资源管理器使非代码资源可以从代码中访问。通知管理器使所有应用程序在上状态栏中显示自定义通知。活动管理器管理每个应用程序的生命提供了一个有用的导航回退。
图1 Android的架构。
3)Libraries:Android包括一组C / C 库采用Android系统各种组件。这些功能都暴露于开发者通过安卓应用框架。一些核心库在图1中列出。
4)Android系统:Android包括一组核心库,提供了大部分的java编程语言核心库的功能。每一个Android应用程序在它自己的进程中运行的操作系统,并拥有自己的Dalvik虚拟机实例。Dalvik虚拟机在DEX(Dalvik可执行格式进行优化)执行文件,被优化到最小的CPU和内存。虚拟机是基于登记,并运行类的java语言的编译器在编译时已经转化到编译.dex格式并使用附带的SDK的dx工具。
5)内核:安卓系统依赖于内核系统服务,比如内存管理、进程管理、网络协议栈、安全和驱动模型等。内核也作为一个硬件抽象层之间的应用程序和所有的硬件。
B.谷歌地图
谷歌地图是谷歌提供的电子地图服务。在使用谷歌地图服务的安卓应用之前,应用谷歌地图的安卓系统的关键是开发相应的地图功能[ 6 ]。类MapActivity,MapView和谷歌地图API,我们可以很容易在Android控制地图。在Android里面位置服务类LocationManager、locationprovider是重要的。LocationManager提供获取系统的位置,方法,定位,跟踪和接近提示很容易做到定位管理器。locationprovider定义提供位置服务的方法(例如,GPS所提供或通过网络等)。为了得到一个合适的locationprovider,我们可以使用类的标准来设定一些我们优先条件。此外,类地理编码可以完成转换之间的地址信息和纬度和经度坐标[ 7 ]。
大多数智能手机提供位置服务。目前,安卓平台支持全球定位和网络定位。卫星定位是由全球卫星定位系统完成的,具有较高的精度和广泛的覆盖率,但由于大的建筑物和总是消耗更多的功率,所以它往往不能被阻止,因此它适用于室外定位。移动网络的定位是通过移动运营商的移动基站或WiFi接入点完成,定位精度较低,适用于室内定位。
系统的设计与实现
A.系统设计
整个系统的体系结构都是以服务器为基础的,服务器主要负责处理相应的数据,并对安卓客户端的请求做出响应。安卓客户端主要负责用户界面和业务处理逻辑的实现。在本文中,我们主要介绍了安卓客户端的设计与实现。
如图二所示,该系统分为以下四层:
1)用户界面表示层:负责执行友好的安卓客户端用户界面,包括位置、导航、查询、历史等,使用不同种类的安卓视图组件和活动组件。
2)逻辑处理层:接收来自用户界面表示层的指令和数据,然后处理逻辑业务,包括获得当前位置、获取导航路径、查询地址、显示历史记录、网络通信、数据分析等。最后,将结果返回给用户界面表示层。
3)数据访问层:用逻辑处理层在数据库中存取数据。
4)信息层:数据库。为了节省安卓客户端的资源,用户的数据将被存储在服务器的数据库中。
B.系统实现
各模块的实现过程如下:
- 当前位置模块:当前位置的流量如图3所示。首先,检查安卓客户端的全球定位系统是否打开,如果不是,将弹出一个对话框,提醒用户打开全球定位系统。之后,系统通过GPS定位功能获取用户的当前位置,如果位置的值为null,就不是使用网络定位。同时,添加一个locationlistener监测位置的变化。当位置是成功获得,得到的纬度、经度和地理编码的类详细的街道地址信息,在它覆盖地图的位置信息,然后显示。最后,用户可以查看位置的详细信息,并将位置信息上传到服务器。
2)导航路径模块:导航的流程如图4所示。首先,收集起点、终点和导航模式,用户输入,然后发送一个应答包的JSON格式与这些参数对谷歌地图服务器的网络通信模块的HTTP请求。后来,谷歌地图服务器将响应相应的JSON格式的数据包[ 8 ]。解析响应数据包的JSON解析器和导航路线信息,包括关键点,起点和终点之间的距离和时间。最后显示的距离和时间在一个TextView和自定义的视图画出导航路径覆盖。
3)地址查询模块:用户输入到地理坐标信息的类地理编码地址信息转换,然后标记在自定义覆盖视图的位置。
4)历史记录模块:发送HTTP请求到服务器相关的历史位置记录信息,以前上传通过网络通信模块、历史记录将在列表视图中显示。此外,用户还可以查看地图模式中的记录项。
4 系统测试
我们测试这个系统的谷歌Nexus S Android 4.0.3功能。下面的截图是测试结果的一部分。图5显示当前位置在地图上(左)和相应的详细位置信息(右)的结果。此外,用户可以通过点击卫星按钮来切换到卫星地图。
图6显示导航功能。如截图所示,我们将以北京航空航天大学和北京工业大学作为起点和终点分别进行选择,然后选择驾驶模式获得导航结果。右边的截图显示了导航结果,包括在地图上绘制的距离、时间和导航路径。
图7的左截图显示了地址查询功能。我们输入一个地址,点击查询按钮,结果显示在地图上。图7右侧的截图显示在列表视图中的历史记录。每一记录包括位置和时间信息。用户可以查看相应位置上的点击记录项。
5 结论
这个定位和导航系统包括以下功能:查看当前位置,获取导航路径,获取地址查询和查看历史位置记录。用户界面友好,各模块工作正常,各种LBS应用可以在此基础上实施系统。我们希望通过增加一些其他功能,如未来的朋友,延长系统的功能。
标明
本论文由北京航空航天大学研究生创新实践基金资助。相应的项目号为YCSJ-02-8。
引用
[1]Q Ren, M. H. Dunham,“使用语义缓存管理位置相关数据的移动计算”,在第六届有关移动计算和网络国际会议上,波士顿:ACM出版社,2000,pp.210-222 J.克拉克麦斯威尔,第三版,在电、磁、论述,卷2。牛津:科学,1892,73 pp.68–73。
[2]Androi开放手机联盟的项目,http://code.google.com-/intl/zh-CN/android/。
[3]Android,https://developers.google.com/android/。
[4]Android开发,http://developer.android.com。
[5]马尔科gargenta,学习Android。机械工业出版社,北京,2012。
[6]https://developers.google.com/maps/docum-entation/android/index/.。
[7]HuaiYu Fan,Android开发要点。机械工业出版社,北京,2012。
[8]https://developers.google.com/maps/document-ation/directions/。
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[28803],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。