




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JISHOUUNIVERSITY本科生毕业设计题 目:基于Android系统的手机地图APP作 者:熊刚学 号:201520078所属学院: 信息科学与工程学院专业年级: 电子信息工程技术,2013级指导教师:侯冬晴职 称:副教授完成时间:2016年 11 月 01 日吉首大学教务处制吉首大学本科生毕业设计目 录摘 要IAbstractII第1章 绪 论11.1 课题研究的背景和目的11.2 国内外研究现状11.3 研究内容和设计结构3第2章 课题设计相关技术概述42.1 开发语言42.2 Android的架构42.3 Android SDK5第3章 软件需求性分析63.1 可行性63.2 需求分析73.3 业务流程7第4章 百度Key(密钥)申请94.1 申请百度密钥94.2 将Key添加到manifests文件application当中12第5章 系统设计135.1 系统功能结构135.2 声明软件应用权限135.3 基本配置14第6章 系统实现166.1 系统运行环境和开发平台166.2 系统开机闪屏页面176.3 地图主界面186.4 实时路况界面226.5 视图界面236.6 搜索界面256.7 导航界面29第7章 地图上线36 7.1 预期测试结果36 7.2 实际测试结果36结束语38参考文献39致 谢40基于Android系统的手机地图APP摘 要本设计是一款适用于Android系统移动地图应用,其中调用的是百度地图Android SDK是一套基于Android2.1及以上版本的移动设备应用接口。在手机地图领域做得最好的就当数谷歌地图和百度地图了,并且这两种地图都提供了丰富的API1,使得任何开发者都可以轻松地将地图功能引入到自己的应用程序当中。通过调用地图SDK接口可以轻松访问在手机上访问百度地图服务和数据,可以构建功能丰富、并且交互性强的手机移动地图应用程序。UI设计方面借鉴了百度简约的设计风格,简单明了又不失独特。Java开发语言和最新的Android Studio开发软件为本应用提供了稳定的开发环境及开发平台,通过设计本应用可以提供地图展示(城市热力图、卫星地图、城市实时路况信息图)地图定位和地图操作功能,支持城市内POI检索并进行Place详情列表展示,根据POI检索结果和长按地图设置目的地的操作会进行覆盖物标注从而展示更加丰富的地图。目前还可以支持百度地图的调启功能包括(驾车导航和骑行导航),根据导航又可以分成模拟导航和实时导航两部分。其中模拟导航作为创新点则间接具备了提前查看实时行驶交通,查看线路规划的功能从而提高导航效率。关键词:地图导航;百度地图;Java;Android SDK Mobile phone map based on Android systemAbstractThis designisamobilemapapplicationforAndroidsystem,whichcalls theBaidumapAndroidSDK,itisasetofAndroid2.1andaboveversionsofmobiledeviceapplicationinterface. GoogleMapsandBaidumapsarethebestinthefieldofmobilemaps,becausebothmapsprovidearichofAPI,makinganydevelopercaneasilyusemapfunctionsattachintotheirapplications1.BycallingtheMapSDKinterfaceyoucaneasilyaccesstheBaidumapserviceanddataonyourphone,alsocanbuildfeature-richandinteractivemobilemapapplication.AndUIdesignborrowedfromBaidusimpledesignstyle,itsconciseandunique. TheJavadevelopmentlanguageandthelatestdevelopmentsoftwareforAndroidStudioprovideastabledevelopmentenvironmentanddevelopmentplatformforit.Thedesigncanprovidemapdisplay(cityheatmap,satellitemap,cityreal-timetrafficinformationmap),positioning,operationfunctionandsupporttothecityPOIsearchandshowthedetailsofthelist.AccordingtothePOIsearchresultsandlong-pressthemaptosetthedestinationoperationwillbecoveredtoshowarichermap.AtthepresentitalsocansupportthecallfunctionfromBaidumapinclude(drivingnavigationandridingnavigation).Accordingtonavigation,itcanbedividedintotwoparts-simulationnavigationandreal-timenavigation.Thesimulationnavigationasainnovative,ithasaviewlookoverreal-timetrafficandrouteplanningfunctioninadvance,soitimprovenavigationefficiency.Keywords:mapnavigation;Baidumap;Java;AndroidSDK第1章 绪 论1.1 课题研究的背景和目的移动互联时代早就已经来临了,说明新的时代新的技术已经越来越成熟。当移动通信和互联网结合在一起之后就形成了我们常说的移动互联网,我们的手机和笔记本电脑以及其他的移动设备可以随时随地的访问互联网的任何资源以及需要查找的手机应用软件,本毕业设计我已经上传到了百度开发者平台通过扫描本论文末尾的二维码即可下载。我们的智能手机是互联网背景下非常具有标志性的一个移动终端以及客户端的工具,其实就相当于一台“小型的电脑”,比如android系统就相当于它独立的操作系统,可以安装和卸载软件,也可以通过开启无线网络端口自由的接入断开通信网络,可以通过SD卡获得很大的存储空间和强大的计算数据功能,这就和传统的手机有了很大的区别。在这个网络技术日新月异的促进下,我国在通信技术领域早已经进入了第四代,即4G时代的出现,让我们可以享受到更加快速的网络传输速度和更智能的手机移动设备。现如今手机成为了我们日常生活中必不可少的一道甜点。随着现在科技的进步人们的生活水平在不断提升,人们已经不用思考柴米油盐和温饱问题而开始热衷于如何提升生活的质量,所以普通只可以打电话发短信的手机已经无法满足人们的需要了。于是产生了智能手机。通过相关调查研究表明人们对于智能手机的使用率已经达到了90%以上,智能手机也被开发者设计得越来越人性化,人们可以通过手机将完成越来越人性化的功能,可以说智能手机已经成为了人们生活的一部分。随着越来越多的人通过android来解决问题,现在和地图相关的APP在手机上的应用已经可以算是非常广泛了,和传统电脑PC端的地图软件相比之下手机地图APP可以具备随时随地查看并且可以非常轻松的规划出出行路线并且还能够进行导航,方便度有了明显的差距。所以我们可以开发出一款手机移动端地图来方便人们的生活。1.2 国内外研究现状手机以及一些其他的移动设备为人们带来了越来越多越来越方便的生活,不断出现的手机地图系统的相关软件为在外出行的人提供了途径,节约了时间也极大地提高了效率。所以和手机地图相关的研究在学术研究中开始慢慢显现出来了,其中就包括了市场数据研究和应用数据研究。根据报告,2015年中国IT研究中心的相关研究对目前市场上份额排名前几位的地图软件展开了调查,通过调查对前几位的软件进行了排名,根据结果显示,目前百度手机地图排名第一,市场份额65.5%,由此可见更多人愿意使用百度地图来,高德地图排名第二,市场份额20.1%,搜狗地图排名第三,市场份额8.4%。15年手机地图市场份额如图1-1所示:图1-1 2015年手机地图累计市场份额手机地图作为移动互联网的重要入口之一,各互联网巨头纷纷加大资源投入力度,展开对手机地图市场的争夺。2014年高德地图经历了换帅,宣布发力LBS,专注位置解决方案,打出“你敢用就敢赔”的活动;百度地图则展开国际化战略,新提供境外地图数据,与相关地图合作开放全球定位能力;搜狗地图成为苹果官方Apple Watch首批邀请入驻的应用。在此背景下,从2015年第1季度中国手机地图主要APP的累积用户数、活跃用户数、用户关注度、用户日均定位请求数等相关指标说明现在的中国手机地图的市场情况。CNIT分析认为,手机地图市场集中度高。百度地图、高德地图和搜狗地图位列三甲,份额超90%,这和手机地图产品特性有关,需相应的资质才能运营,且还需实时更新相关数据,构成一定的技术门槛。15年中国活跃用户市场份额如图1-2所示:图1-2 2015年中国活跃用户市场份额比达(BigData)数据显示,在2015年Q1中国手机地图活跃用户市场份额中,百度地图67.9%最高,高德地图19.7%居第二,搜狗地图8.5%位第三,另外,腾讯地图、谷歌地图2.4%。因此以百度地图SDK作为载体根据百度API提供的文档来进行开发不仅和获得更加全面的数据而且性能无疑是最佳的。1.3 研究内容和设计结构 1地图的定位和我的位置功能在本地图APP软件的设计中,用户通过安装打开软件之后立刻会定位到当前位置并同时报出当前位置名称。并通过添置按钮设置相应的单击事件从而在用户滑动地图到其他位置后可以通过此按钮迅速回到当前位置。2方向传感器和自定义图标我们都知道智能手机里面内置了很多传感器,例如:方向传感器、距离传感器、陀螺仪传感器以及重力传感器等。本应用通过调用手机的方向传感器从而判断用户当前机头所处方向,通过自定义图标来指示当前方向并通过方向的不同实时更新图标的方向位置。另外导航部分还将调用距离传感器来进行算路处理。3基于城市的地点搜索功能采用下拉列表输入的方式来设置城市和搜索类型,从而获取到周边地点,首先会通过弹窗来显示出周边的位置信息,然后通过添加覆盖物的形式来标注出来。4GPS导航功能本设计地图软件还提供智能导航功能,当前位置是设置自动默认为起点,通过长按地图上面的地点来设置目的地。同时会在目的地上面添加覆盖物来标注,设置完目的地之后点击“模拟导航或者实时导航”,将立刻进入导航模式。5开启实时路况和城市热力图以及可以打开卫星地图通过设置相关按钮和相应的单击事件方法,用户可以通过点击相应的按钮来获取到相应风格的地图,查看卫星地图要考虑当地的环境和缩放比例。如果发现当前区域无地图可以将缩放比例缩小一点。第2章 课题设计相关技术概述2.1 开发语言Java语言作为目前使用排行第一的编程语言不仅具有C+面向对象的特点,还根据“低耦合,高内聚”2的手机应用程序设计特点摒弃了C+里面难以理解的指针和多继承的特点。因此Java语言就同时具有了功能强大和简单易用的特点,所以被很多开发人员采用。Java语言又是一种动态的编程语言,安全性高、分布式使用非常广泛而且可跨平台移植,现在的很多软件都是用Java语言来进行开发编写的,手机、个人笔记本、平板电脑等终端设备上面的很多软件都是通过Java语言的可移植跨平台的特性才能使用的只需要安Java开发环境3即可。Java程序具有与体系结构无关的特性,可以方便地移植到网络上的不同计算机当中。编程语言排行榜如图2-1所示:图2-1 编程语言排行榜 2.2 Android的架构Android操作系统应用程序框架4支持组件的重用与替换。这在之前的手机操作系统中是难以想象的。这意味着我们可以吧系统中不喜欢的应用程序替换掉,安装我们自己喜欢的应用程序。因为系统架构主观上可分为四层架构,由下而上依次为应用层、应用框架层、系统运行库层、Linux内核层。1Linux内核层Android系统的核心服务是基于Linux2.6内核的,这一层主要功能是让开发者编写底层程序从而为Android手机以及基于Android的设备的各种硬件设施提供底层驱动,比如为蓝牙相机、无线网络(WIFI)、电源设备、音频、显示器等进行驱动。 2系统运行库层这一层主要是为Android系统提供各种特性支持,比如数据库可以直接通过SQLite库来提供(也可以使用外部数据库如:MySQL),3D绘图支持可以通过OpenGL/ES库提供,浏览器内核可以通过Webkit库来提供等。 同样还有一个运行时库,它包含一个核心库,可以让开发者运用Java语言来编写Android应用。另外Android的运行都是可以通过Dalvik虚拟机来进行,且都是独立运行进程。另外也可以通过真机来运行。总的来说相对于Java虚拟机来说,Dalvik针对于移动设备并且完全模拟手机还能够针对手机内存以及CPU来进行优化处理。 3应用框架层这一层可以理解为提供Android应用构建时可能用到的应用程序接口和组件也就是API。需要用来开发Android应用程序的工具都具备之后,Google为了大力推广Android,也希望所有应用程序开发者可以顺利地转移到Android平台,因此创建了一系列的应用程序架构5。应用程序的架构主要是为了简化程序组件的重用,从而在遵循框架安全性的前提下快速的的开发应用程。可以进行视图(views)扩展、优化、添加列表(lists)、按钮(buttons)、文本框(text boxes),甚至可以嵌入web浏览器。 另外还包括四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供器(Content Provider)。 4应用层这一层顾名思义就是手机上面的应用程序所在的这一层,比如系统自带的通讯录、短信、联系人等,自己网上下载或者进行自己开发的应用程序的真机测试应用。Android平台包括一些系统资源,所有的资源都可以直接从你的应用程序代码和使用。也可以从内部引用的其他资源。例如,一个维度中6引用资源可能布局的定义。 2.3 Android SDK SDK:软件开发工具包。比如百度地图SDK、Share SDK等是在特定软件开发过程中,开发者用相应的软件开发工具包来进行特定的开发工作。Android SDK7以Java语言为基础,用户可以使用Java来开发来开发Android平台的应用软件。也是软件开发工具包,用于提供Android系统的不同版本的开发所需要的环境以及工具。在搭建硬件平台以及软件开发的框架时都需要通过引入该工具包,才能使用Android开发相关的API。第3章 软件可行性及需求分析3.1 可行性软件开发过程中,不仅仅是考虑能不能用技术实现出来而是要全面性的来根据可行性考虑,软件能否成功开发不仅仅需要足够的技术还得要有经济和法律方面的考虑。下面就从技术、经济、法律三个方面来分析。1技术是否可行?本课题的这款手机定位APP的设计实现最主要还是与程序设计相关,因此程序开发语言尤其重要,并且这种语言开发的应用必须能够在Android手机上面安装运行。所以目前来说现阶段的开发语言当中,Java语言和C语言等已经面世并且相对来说比较成熟和稳定的开发语言,像GO语言虽然是属于最新出来编程语言但本身还不够稳定优点和缺点一样明显所以还得选择技术相对成熟的语言。还有在导航和定位的过程中需要不断的访问网络数据来获取当前位置和加载地图,所以随着我国第四代网络的出现已经完全能够满足手机定位APP的开发实现。(1)开发平台操作系统:win7;开发工具:Android Studio、phtoshop cs6 ;开发包:百度地图SDK、jdk1.8.0;2经济是否可行?Android开发者和工程师开发软件最终都是需要获得收益,所以在真正开发过程中也需要投入相应的资金才能保证效果,但是从百度地图开发的情况下来看SDK工具包可以直接到百度地图API网址上面在免费下载,开发人员也不需要很多。实际上在美工、UI布局、上线都是本人完成的。而且我也不需要盈利,因此从这两方面来说经济上面完全没有问题。3法律可行?本课题设计的基于百度地图的手机定位APP,仅仅用于学习和做毕业设计。不做任何盈利用途,因此在法律上面没有任何问题,完全可行。3.2 需求分析软件工程创建之前首先必须先进行需求分析,这样毕竟能够明确开发目的和方向还能够进行更加人性化科学的设计出来,有时候还能减小内存空间提升软件运行效率。否则,不仅开发的时候不太明确实际开发意图和方向。而且无法从使用者角度去考虑问题,不实用的功能只会给开发造成很大的负担和资源浪费。因此,在开发的过程中一定要充分考虑使用者的需求,不仅是在这次基于百度地图定位的APP开发所有的在Android系统上开发的app都要遵循和体现使用者基本的需求。通过分析用户的大致需求如下: 可以根据当前城市名查询周边的地点,美食、酒店、学校、医院等; 可以能够查看实时路况地图、城市热力地图、卫星地图等三种不同的使用模式; 可以在滑动地图查找地点的之后点击当前按钮迅速回到当前位置; 可以根据方向传感器的数据实时辨别当前方向,开启罗盘模式之后更加直观; 可以通过长按设置目的地并且添加标识; 可以进行模拟导航用来快速实时查看当前路况; 可以开启实时导航地图会自动规划出最优线路,在驾车过程中计算车速和距离以及预计到达时间,最后完成导航。3.3 地图系统运行的功能架构在实际工作过程中,经常需要介绍业务运行流程。而业务运行流程则由特定的图形和符号来表示地图系统运行的功能架构,不仅可以用来分析软件整理和接受结果的过程,还可以更加直观的发现其中不合理的流程。业务流程图标及功能架构如图3-1、图3-2所示:图3-1 业务流程图标图3-2 地图系统的功能架构图第4章 百度Key(密钥)申请4.1 申请百度密钥百度地图SDK是一套基于Android 2.1及以上版本的应用程序设备接口。通过该接口开发者才能使用百度地图SDK的各项功能,并且使用无次数限制。在使用百度地图SDK的各项LBS功能之前,必须先获得百度地图的密钥。非营利项目可以直接使用。首先注册并登录百度账号,搜索并进入“百度地图API”官网。可以先选择“Android开发”了解一下也可以直接点击“申请密钥”。百度API如图4-1所示:图4-1 百度API点击“创建应用”,并将“应用类型”改为“Android SDK”。然后获取SHA1值和包名。获取包名及SHA1值如图4-2、图4-3所示:图4-2 获取包名图4-3 获得SHA1值包名和SHA1值的具体获取步骤:包名直接在工程文件下面的“build.gradle”文件里面获取。第1步:运行进入控制台第2步:定位到.android文件夹下,输入cd.android第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:其中keytool为jdk自带工具;keystorefile为Android 签名证书文件配置完成后点击“提交”,即可获得key(密钥)。获得密钥key如图4-4所示:图4-4 获得密钥key4.2 配置百度地图SDK工程环境在“project”目录下的libs目录下面放入下载好的baidumapapi_vX_X_Xjar包。在main文件夹下面新建“jniLibs”目录放入下载好的armeabi文件夹。添加jar包和so文件如图4-5所示:图4-5 放入jar包和so文件然后更新正式将所有的baidumapap_vX_X_X.jar包。导入进工程,右键baidumapapi_vX_X_X.jar包。点击“Add As Library”更新项目jar包如图4-6所示:图4-6 导包更新工程最后需要查看jar包入工程的关系,并将需要的jar包加入工程,或者删除暂不需要的jar包。因为功能不同jar包也不同。4.2 将Key添加到manifests文件application当中Android定位SDK42及之后版本需要在Mainfestxml正确设置Accesskey(AK),如果设置错误将会导致定位和地理围栏服务无法正常使用。设置AK就是在Application标签中加入开发者申请的Key:第5章 系统设计5.1 系统功能结构根据百度地图的应用,是有开机闪屏页之后才正式跳转到地图页面(首次启动还会有开机引导页,由于图片太多容易造成内存泄漏并且也为了减少软件大小就舍弃了)。而地图页面作为前台让用户根据自己的需求来使用地图,能够进行周边查询。选择喜欢的使用模式、查看当前方向以及一些导航操作。为了充分考虑简洁性和方便性本人参考了下百度地图的页面设计,尽量看起来赏心悦目。地图根据功能在前台一一添加按钮,主要功能包括根据城市名和搜索类型来搜索周边地点;用户可以选择自己喜欢的使用模式:卫星地图、实况交通、城市热力图;用户可以在滑动地图查找地点之后通过定位按钮重新回到当前地图中心位置;启动方向罗盘来辨别方向;还调用了方向传感器来动态实时更新箭头位置方向十分灵敏;该系统还能够设置目的地来进行模拟导航和实时导航。系统功能架构如图5-1所示:图5-1 系统功能结构图5.2 申明软件应用权限Android定义了一种权限方案来保护设备上的资源和功能。例如,在默认情况下,应用程序无法访问联系人列表、拨打电话、发送短信等。下面就是本应用中需要用到和可能需要用到的权限。当我们不确定是否需要这个权限的时候尽量还是选择添加,毕竟不会影响软件的使用而且还能提高软件的兼容性。权限代码如下:5.3 基本配置因为本应用是调用的百度SDK所以我们需要调用百度SDK的接口,而百度也因此为我们开发者提供了十分便捷的百度地图显示接口,通过以下几步我们就可以在应用中使用百度地图的所用数据了。Service(服务)8是能够在后台执行长时间运行操作并且不提供用户界面的应用程序组件。其他应用程序组件能启动服务,并且即便用户切换到另一个应用程序,服务还可以在后台运行。第一步,在application标签中声明service组件: 第二步,在布局xml文件中添加地图控件:第三步,创建地图的活动(Activity)管理地图生命周期:/管理地图生命周期Overrideprotected void onDestroy() super.onDestroy(); /在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy();Overrideprotected void onResume() super.onResume(); /在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume();Overrideprotected void onPause() super.onPause(); /在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause();第6章 系统实现6.1 系统运行环境和开发平台系统开发及运行环境和硬件信息如表1所示:表1 系统开发及运行环境和硬件信息表硬件名称硬件详细信息CPUCorei3.2.40GHz及以上配置内存4G及以上配置硬盘500G及以上配置显示器分辨率在1366768像素及以上网络1M及以上操作系统Windows 7 64位/32位开发工具Android Studio 1.5、photoshop cs66.2 系统开机闪屏页面采用Handler来实现跳转并设置3秒后启动地图页面。开机闪屏页如图6-1所示:关键代码如下: / 在注册事件方法中设置3秒后启动 handler.sendEmptyMessageDelayed(START_ACTIVITY,3000); /Handler实现跳转 private android.os.Handler handler = new android.os.Handler() Override public void handleMessage(Message msg) super.handleMessage(msg); switch (msg.what) case START_ACTIVITY: /从当前界面跳到要开启的界面 startActivity(new Intent(SplashActivity.this,MapActivity.class); ;图6-1 开机闪屏页6.3 地图主界面这是开机完成后的地图主界面,打开地图之后。自动开启方向传感器和定位,同时打开罗盘俯瞰模式(3秒后退出到时会保持俯瞰)。在此页面用户可以搜索、定位、切换模式等需要的操作。地图主界面如图6-2所示:图6-2 地图主界面6.3.1 设置请求定位信息开启软件之后软件会自动定位到当前位置,当滑动地图之后也可以点击“我的”按钮,重新定位到当前位置并显示到地图中央。 关键代码如下: private class MyLocationListner implements BDLocationListener Override public void onReceiveLocation(BDLocation location) /定位成功回调函数 /map view 销毁后不再处理新的接收位置 if (location = null | mMapView = null) return; /构造定位数据MyLocationData data = new MyLocationData.Builder()/构 造我的位置当前信息 .accuracy(location.getRadius()/设置精度 .latitude(location.getLatitude()/设置纬度 .longitude(location.getLongitude()/设置经度 .direction(mCureentX)/设置图标的方向值 .build(); mBaiduMap.setMyLocationData(data);/将位置信息转换为data数据 /设置定位图层定位图标 /COMPASS显示指南针导航标志 FOLLOWING跟随态 保持定位图标在地图中心 MyLocationConfiguration config = new MyLocationConfiguration (mLocationMode, true, mIconLocation); /调用定位图标 mBaiduMap.setMyLocationConfigeration(config); mLocationMode = MyLocationConfiguration.LocationMode.NORMAL; /每次定位成功之后更新数据 mLatitude = location.getLatitude(); mlongtitude = location.getLongitude(); /判断是否是第一次定位 if (isFirstIn) /获取经纬度 LatLng latLng = new LatLng(mLatitude, mlongtitude); MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng); mBaiduMap.animateMapStatus(msu);/地图的位置使用 动画效果转过去 mLastLocationData = latLng;/记录起点位置 isFirstIn = false; /将位置报出来。 Toast.makeText(context, location.getAddrStr(), Toast.LENGTH_SHORT).show(); 6.3.2定位监听器/配置事件监听器地图应用需要进行初始设置以便能让用户打开软件之后就能获得比较好的体验,例如:国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换等。另外地图的精度也可以设置并可以通过设置定位请求时间,以及初始化方向传感器。关键代码如下:private void initLocation() mLocationMode = MyLocationConfiguration.LocationMode.COMPASS;/模式切换 mLocationClient = new LocationClient(this);/声明定位监听器 myLocationListner = new MyLocationListner();/实例化定位监听器 mLocationClient.registerLocationListener(myLocationListner);/注册定位监听器 /配置事件监听器 LocationClientOption option = new LocationClientOption(); /可选,默认高精度,设置定位模式,高精度option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); option.setCoorType(bd09ll);/定义地图坐标系 option.setIsNeedAddress(true);/返回的位置结果包含地址信息 option.setOpenGps(true);/开启GPS option.setScanSpan(1000);/每隔1秒请求定位一次 / option.setNeedDeviceDirect(true);/定位结果包含机头方向 mLocationClient.setLocOption(option);/必须设置否者无法监听 mLocationClient.start();/启动SDK定位 mLocationClient.requestLocation();/发送请求 /初始化定位图标 mIconLocation = BitmapDescriptorFactory. fromResource(R.drawable.fangxiang); /初始化方向传感器 mMyOrientationListener = new MyOrientationListener(this); /回调方向传感器 mMyOrientationListener.setOnOrientationListener (new MyOrientationListener.OnOrientationListener() Override public void onOrientationChanged(float x) mCureentX = x;/接受新的X方位 );6.3.3最后需要设置开启和关闭定位定位开启之后当然需要能够关闭不能够一直定位,这样用户肯定是不能接受的,因此我们就需要既能够开启定位又能够关闭定位,以及方向传感器的开启和关闭。关键代码如下:定位完成之后需要退出所以(onstop,onstar)Overrideprotected vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年手术室护理实践指南试题
- 卫生公共基础试题及答案
- 王者荣耀试题及答案
- 土木专业竞聘试题及答案
- 2025年双方含未成年子女离婚赡养费协议书
- 2025年成都市教育设施扩建征地补偿策划协议书
- 2025年废物处理合作协议
- 2025年水产购买协议书模板
- 2025年官方授权支付协议模板策划大纲
- 2025年品牌权益并购协议
- 家政公司线上线下资源整合布局
- 2024年全国高考体育单招考试语文试卷试题(含答案详解)
- 有关教师职业病预防的职业病
- 中专-技校-职高单招-对口升学数学总复习第三章-函数
- 格调:社会等级与生活品味
- 地暖工程施工组织设计方案
- 动火作业审批表
- Excel函数公式练习
- 项目管理人员三级安全教育记录表
- 建筑工程资料管理 第3版 习题答案 王辉 单元6
- 小儿麻醉指南课件
评论
0/150
提交评论