基于Android平台的手机导航系统设计及实现毕业论文
2020-04-09 15:42:35
摘 要
国内的手机导航系统目前开发方向为室内地图和室内定位的解决,注重与其他行业相结合但本身依然局限于单一的位置服务。为改变这一现状,本次设计提出了手机导航系统与实时遥感相结合的方案,重点解决实时遥感中的卫星监测问题。首先系统地分析了市场中导航系统的现状以及低轨卫星监测在集成导航系统与实时遥感中的重要意义。根据出行规划和卫星监测两方面的需求将系统按照MVC模式进行设计,并在Java语言环境中借助Android系统开发工具Android Studio进行手机导航系统的设计。其次,通过调用高德地图提供的地图接口来满足人们的出行规划,实现自我位置定位、目标地址搜索、定位与导航、实时路况、路线推荐、经纬度查询等功能,并系统地介绍了利用高德地图来实现出行规划的具体实现原理与实现步骤。此外,为了弥补市场中地图服务商的服务只局限于位置服务的缺点,本次设计还利用Bmob后端云实现了低轨卫星的显示并判断是否在卫星的监测范围之内,为位置服务增加实时遥感信息做准备。最后,展示了设计结果,经过分析满足设计需求。
关键字:定位;出行规划;手机导航;卫星轨迹;卫星监测
Abstract
The current development of domestic mobile navigation systems is solutions of indoor maps and indoor positioning. Although it is focused on integration with other industries, its main function is positioning and navigation. In order to break this status, this design proposes a combination of mobile navigation systems and real-time remote sensing. First of all, this thesis systematically analyzes the current situation of navigation system in the market and the significance of low-orbit satellite monitoring in integrated navigation system and real-time remote sensing.
According to the requirements of traveling plan and satellite monitoring, the system is designed according to the MVC pattern, and the design of mobile navigation system is carried out in the Java language environment with the Android Studio. First of all, we use the map interface provided by the AMAP to meet people travelling plan, achieve self-positioning, target address search, positioning and navigation, real-time traffic conditions, route recommendations, longitude and latitude inquiries, etc. And the thesis presents the theory and implementation steps of using AMAP to achieve the travelling plan and navigation.
In addition, in order to make up for the shortcomings of map service providers in the market that are limited to the positioning services, this design also uses the Bmob back-end cloud to achieve the display of low-orbit satellites and to determine the monitoring range of the satellites. It is a good method to add real-time remote sensing information to the location service. Finally, the design results are shown and analyzed to meet the design requirements.
Key Words:positioning;travel planning;mobile navigation;satellite trajectory;satellite monitoring
目录
第1章 绪论 1
1.1 选题研究意义 1
1.1.1 Android系统的普及 1
1.1.2手机导航系统的实用性 1
1.1.3 低轨卫星监测的意义 1
1.2 研究现状 2
1.2.1 导航系统的现状 2
1.2.2 卫星观测的现状 2
1.3 研究内容和目标 3
第2章 方案论证 4
2.1 服务器的选择 4
2.2 地图服务商的选择 6
第3章 开发支持 7
3.1 Android开放平台 7
3.1.1 Android系统特性 7
3.1.2 Android 开发环境 8
3.2 开发支持配置 8
第4章 设计与实现 10
4.1 需求分析 10
4.2 Android相关开发技术 11
4.3 出行功能设计与实现 13
4.3.1 注册/登录功能 13
4.3.2 定位功能 14
4.3.3搜索功能 16
4.3.4 地图长按选点功能 17
4.3.5 设置起点终点功能 18
4.3.6 公交路线查询功能 18
4.3.7 步行路线与驾车路线查询与导航功能 19
4.4 卫星监测功能的实现 20
4.4.1 卫星轨迹点的显示 20
4.4.2卫星监测功能的实现 21
4.4.3 用户查询记录功能的实现 22
第5章 设计结果与结果分析 24
5.1 设计成果 24
5.2 结果分析 29
第6章 结论 31
参考文献 32
附录 33
致谢 45
第1章 绪论
1.1 选题研究意义
1.1.1 Android系统的普及
主流移动操作系统有两种:iOS系统和Android系统。其中iOS系统是苹果公司自主研发的操作系统,具有稳定性较好,界面简洁,易操作等优点。但其只适用于苹果公司的电子产品,不对所有的品牌开放使其使用范围受限。Google公司开发及开放了Android系统,并免费开放了Android的源代码,因此所有移动设备均可免费使用,占据了巨大的市场份额。根据2016上半年的数据表明全球移动智能手机系统的市场占比中Android系统份额达86.2%,远远高于iOS系统。Android系统的系统构架采用了分层架构,从低到高依次为Linux内核层、系统运行库层、应用程序框架层和应用程序层[1],使其具有硬件适配性和易开发等等优点。因此本次设计选用Android系统进行开发。
1.1.2手机导航系统的实用性
从古至今,导航工具是出行时人类为指引方向和防止迷路所发明的工具。古代人们采用罗盘、指南针、星象等等方式来实现定位与指引方向。导航随着位置服务技术的快速发展而发展,人们发射了GPS卫星来实现定位,使电子导航成为可能。GPS卫星系统,通过计算目标所处的位置与卫星的所处的位置之间的实时距离,同时辅以多颗卫星的距离计算结果得出目标所处的位置。如今,成熟的GPS系统已成功运用到很多导航工具中,如车载导航系统和各类手机导航软件。
车载导航系统与传统的地图相比其优点是可进行即时移动定位从而实时规划路线,同时帮助驾驶员指引方向,避免驾驶员迷路。一些车载导航系统还可提醒驾驶员注意附近的加油站、休息区、限速区等等,因此其在日常生活中较受欢迎。但车载导航系统的体积庞大,市场混乱,价格较高,且经常出现不稳定的情况,导致实际使用过程中出现死机、定位失败、最新路况更新失败等等情况。此外,车载导航系统使用的是单一的GPS定位,但在楼宇之间GPS的信号弱,容易导致丢失信号。
随着智能手机的出现,手机导航系统在近年来逐渐取代车载导航系统,成为人们出行必备的工具之一。只要手机硬件上具有GPS定位接口,手机导航软件就能实现导航功能,方便易使用,大大方便了人们的出行。而且,目前市场上所有的导航软件均可免费使用,无需购买其他昂贵的配件,相较车载导航系统而言,其使用成本低,稳定性更佳。
1.1.3 低轨卫星监测的意义
随着遥感卫星的普及,实时遥感的呼声逐渐增加,希望能实现用户想获取目标位置的详细影像信息的时候,只需要提交目标区域的位置信息就能获取详细的遥感信息。实时遥感在出行规划中的作用是用户可以直观的获取目标路段的详细信息,来判断出行是否会受影响。
因此,为改变现有导航系统的单一现状,将实时遥感与导航系统相结合,使导航系统更加完善。例如若能实现用户驾车行驶前方发生拥堵时,用户只需在地图之上点击拥堵路段即可获取拥堵路段的实时视频或影像信息,则用户可根据拥堵情况与拥堵原因判断是否需要更换路径。为了实现这一设想,客户端涉及到卫星监测与视频在线播放的实现。获得目标地址的实时遥感信息,进行视频在线播放的前提是所选区域在卫星的观测范围之内,因此需要进行卫星监测来判断是否能够实现实时遥感。因此本次设计主要针对目标位置来判断是否处于卫星监测范围,为实时遥感与导航系统集成做准备。
1.2 研究现状
1.2.1 导航系统的现状
实现导航的前提是实现实时定位。定位系统以前主要使用GPS,但我国自主研发能进行定位的北斗导航系统以后,国内很多与安全保密相关的定位均采用北斗导航系统。目前,全国共有三个成熟的卫星导航系统,分别是美国全球定位系统(GPS)、俄罗斯格洛纳斯卫星导航系统(GLONASS)和中国北斗卫星导航系统(BDS)。其中,美国全球定位系统应用最为广泛,其通过24颗GPS卫星使定位范围能够达到全球的98%,且其定位精度较高,平面位置误差可小于1mm/h。BDS是中国自主研制,5颗静止的卫星和30颗运动的卫星组成,其定位范围现已实现覆盖东南亚,实现全球范围的覆盖预计在2020年实现。BDS的定位精度可达10米,观测精度可达每秒0.2m,授时精度高达10ns,因此也是实现导航系统的最佳选择之一。但由于BDS研制时间短,目前应用不够成熟,因此市场上的导航系统大部分都是通过GPS来实现定位功能。市场中的主流手机导航系统主要有:高德地图、百度地图和腾讯地图,但均只能提供单一的位置服务,无法使普通用户获知低轨卫星的信息,不能获取目标区域的详细影像信息。
1.2.2 卫星观测的现状
国外的低轨卫星发展十分迅猛,已有许多与低轨卫星相关的产品,但国内在低轨卫星方面的发展的空间依然很大,还没有较完备的直接与卫星有关的产品。国外已有的遥感信息服务app:pocketsat3。它能用手机追踪卫星,通过预测卫星何时会从头顶飞过给装有该app的设备持有人提供观测卫星的最佳时间,同时它可以在卫星星座图上显示多个卫星的实时绘图,其所显示的卫星星座可以观察到卫星的实时运动状态。
它的特色在于:能定位当前设备的位置,并能计算出地球上任意位置的可观测卫星;卫星轨道数据能直接从网上下载;能同时跟踪和绘制1000多颗卫星的实时位置;地图上显示卫星位置和轨道轨迹;卫星图(Sky view)显示卫星的位置、轨迹和亮度;提醒系统(System alarms)将会根据所预测的卫星观测时间提醒你进行观测;使用改进的SGP4和SDP4 orbit propagation算法,其轨道预测精确。
虽然这款产品只提供了卫星的基本的信息,无法获取卫星实时的最新信息,也没有与实际应用相结合,但也很大程度减小了人们与卫星的距离感。
1.3 研究内容和目标
以高德地图为例,主要提供数字地图服务、导航和位置解决服务,目前注重解决室内地图和室内定位的问题。现在其相关的开发方向主要是:O2O类、物流类、电商类、社交类。但这些开发方向均是以现有的地图服务为基础,与其他行业相互渗透,地图服务商本质上提供的服务并没有改变。为改变这一现象,提出将实时遥感与导航系统相集成来补充位置服务的单一性,提高用户出行体验尤其是道路情况多变的偏远地区。例如有路段发生山体滑坡时,用户若能直接获取滑坡路段的视频或影像信息可帮助用户了解事故的详细情况,判断是否能够通行。
本次设计的目的是实现一款手机导航系统的设计,改变市场上手机导航系统功能单一的现状,为导航系统集成实时遥感做准备进行了卫星监测的设计。该款手机导航系统可实现自我位置定位、目标地址检索及导航、目标位置定位、实时路况、路线推荐、经纬度查询等功能。同时,实现用户从服务器端获取最新的卫星信息,判断是否处于卫星实时监测的位置,使普通用户也可以研究卫星的信息,拉近低轨卫星与我们的距离,为后续获取目标区域的遥感信息做准备。
论文总共分为六章,第一章对Android开发可行性、导航系统和卫星监测的现状以及研究意义进行分析。第二章对服务器和地图服务商的选择方案进行论证。第三章介绍本次开发的Android平台、云服务器和地图商的使用。第四章具体分析了手机导航系统的实现过程。第五章展示并分析了设计结果。第六章总结全文,并对未来的导航系统进行展望。
第2章 方案论证
2.1 服务器的选择
服务器是响应服务请求和处理请求并提供服务的设备。服务器与一般的计算机架构相似,服务器由系统总线、硬盘、处理器、内存等硬件组成,其功能图如图2.1所示。根据服务器的服务内容对服务器分类,主要有文件、数据库和应用程序服务器。根据响应请求和响应处理的可靠性、可用性、可扩展性、易用性和易管理性等方面来衡量服务器的好坏。
图2.1 服务器需要实现的功能
云服务器是一种处理能力可弹性伸缩的计算服务,云服务器的创建不需要购买硬件即可快速实现。云服务器是根据物理硬件分配内存运行的虚拟服务器,通过具体的CPU、内存和磁盘特性来实现动态服务。云服务器将硬件资源集约化后通过分割,动态调用其计算资源,通过硬件资源的变化进行相应的优化来有效解决高峰时期的处理速度,大大提高硬件的局限性。
传统服务器需要根据用户访问的峰值流量进行购买宽带和服务器,大部分资源在非峰值阶段处于闲置状态,而云服务器只在高流量阶段分配出更多的资源,即根据实际情况动态分配内存不造成资源浪费。同时,传统服务器运营成本昂贵难以维护,因此选择云服务器来实现服务器的功能可大大提升开发速度。
本次设计为降低开发成本,选择后端云服务器来提供后端服务。后端云服务器能提供结构化的数据存储、文件存储、用户管理、权限管理、通信等等服务。后端云将应用层的通用服务进行封装 ,使客户端能很方便的对数据进行操作。例如用户数据处理模块,用户可直接调用抽象好的函数对用户数据进行增删改,不需要像传统服务器一样,需要开发者设置用户权限、数据库表、数据的访问和逻辑设计才能实现数据操作。
后端云集成了laaS、PaaS、APIs和SDKs形成新的开发架构,其集成如图2.2所示。开发者只需配置相应的API或SDK,即可根据已抽象的函数模块实现自身想要的功能,不需进行复杂的服务器的开发与维护,大大提高了开发速度。目前主要使用的后端云服务器产品,有Parse、Kinvey、LeanCloud、Bomb和MaxLeap。根据网速与技术支持方面的问题,优先选择国内的运营服务:LeanCloud、Bomb和MaxLeap。其中Bmob是国内第一家专注于移动应用云服务的平台,其性能、实用性以及安全性与其他的服务端相比较而言更具优势,其网络传输的实现是通过http协议。因此,本次设计选用Bmob后端云。
图2.2 后端云集成
2.2 地图服务商的选择
高德地图专注于拓展基于位置服务(LBS),利用通信运营商的通讯网络或GPS外部定位的方式,获取移动端的位置信息,给用户提供相应的位置增值服务。其精准的商业定位使高德地图成为国内领先的数字地图、导航和位置服务商。
高德开发平台可以提供高德地图API、高德云图(位置云计算)、高德位智(位置大数据),使位置服务与位置云计算和位置大数据相结合。高德地图API是访问高德地图的接口,其可实现地图显示与缩放、兴趣点(POI)检索、定位、地理编码、地理围栏、室内地图和导航等等功能。高德地图API能减少开发工作中的工作量,其简单易使用的接口且内容详尽的开发文档,方便开发者进行学习。此外,高德地图API提供6000万以上的兴趣点搜索和790万公里的道路数据,服务准确度较高,覆盖范围较广。使用高德地图需要下载所使用的SDK,并进行配置之后才能正常使用。
此外,百度地图也拥有极大的市场占有率,但百度地图的市场定位并非专业的地图服务商,而是专注于O2O(Online to Offline),即为了消费平台而服务,因此其提供的地图服务准确度还有待提高。由于本次设计主要围绕出行规划进行开发,因此最终选定高德地图API。
第3章 开发支持
3.1 Android开放平台
3.1.1 Android系统特性
Android系统的内核为Linux,采取Java语言编写,应用于移动设备的操作系统。正如绪论所写,Android的系统架构从低层到高层分为Linux内核层、系统运行库层、应用程序框架层和应用程序层。
其中,应用程序层(Application):包含了一系列核心的应用,例如日历、地图、电子邮件、短信SMS等等,主要由活动(Activity)、广播接收器(Broadcast Intent Receiver)、内容提供者(Content Provider)和服务(Service)组成。Activity是开发过程中接触最多的部分。一个Activity对应一个应用程序组件即对应一个界面,可在界面建立响应接口,使用户实现某种功能时能进行交互。应用程序与Activity的是一对多的关系。Activity由
Back Stack进行管理,当Activity位于栈顶时,处于运行状态,显示相应的界面;处于暂停状态时的Activity,一般表现为栈顶的Activity是不可见的或Activity并没有处于满界面状态;当Activity不位于栈顶时处于停止状态;当Activity被人为或系统销毁后,处于死亡状态。Activity的状态关系如图3.1所示。
图3.1 Activity状态关系图
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: