位置服务与地图应用.ppt
《位置服务与地图应用.ppt》由会员分享,可在线阅读,更多相关《位置服务与地图应用.ppt(52页珍藏版)》请在三一办公上搜索。
1、第9章 位置服务与地图应用,本章学习目标:,了解位置服务的概念了解地图密钥的申请方法掌握获取位置信息的方法掌握MapView和MapController的使用方法掌握Google地图覆盖层的使用方法,9.1 位置服务,位置服务位置服务(Location-Based Services,LBS),又称定位服务或基于位置的服务,融合了GPS定位、移动通信、导航等多种技术,提供了与空间位置相关的综合应用服务位置服务首先在日本得到商业化的应用2001年7月,DoCoMo发布了第一款具有三角定位功能的手持设备2001年12月,KDDI发布第一款具有GPS功能的手机基于位置的服务发展迅速,已涉及到商务、医疗
2、、工作和生活的各个方面,为用户提供定位、追踪和敏感区域警告等一系列服务,9.1 位置服务,位置服务Android平台支持提供位置服务的API,在开发过程中主要用到LocationManager和LocationProviders对象LocationManager可以用来获取当前的位置,追踪设备的移动路线,或设定敏感区域,在进入或离开敏感区域时设备会发出特定警报LocationProviders是能够提供定位功能的组件集合,集合中的每种组件以不同的技术提供设备的当前位置,区别在于定位的精度、速度和成本等方面,9.1 位置服务,位置服务提供位置服务,首先需要获得LocationManager对象获
3、取LocationManager可以通过调用android.app.Activity.getSystemService()函数实现android.app.Activity.getSystemService()函数代码如下代码第1行的Context.LOCATION_SERVICE指明获取的服务是位置服务代码第2行的getSystemService()函数,可以根据服务名称获取Android提供的系统级服务,9.1 位置服务,位置服务Android支持的系统级服务表,9.1 位置服务,位置服务在获取到LocationManager后,还需要指定LocationManager的定位方法,然后才能够
4、调用LocationManagergetLastKnowLocation()方法获取当前位置LocationManager支持的定位方法有两种GPS定位:可以提供更加精确的位置信息,但定位速度和质量受到卫星数量和环境情况的影响网络定位:提供的位置信息精度差,但速度较GPS定位快,9.1 位置服务,位置服务LocationManager支持定位方法在指定LocationManager的定位方法后,则可以调用getLastKnowLocation()方法获取当前的位置信息,9.1 位置服务,位置服务以使用GPS定位为例,获取位置信息的代码如下代码第2行返回的Location对象中,包含了可以确定位
5、置的信息,如经度、纬度和速度等通过调用Location中的getLatitude()和getLonggitude()方法可以分别获取位置信息中的纬度和经度,示例代码如下,9.1 位置服务,位置服务LocationManager提供了一种便捷、高效的位置监视方法requestLocationUpdates(),可以根据位置的距离变化和时间间隔设定产生位置改变事件的条件,这样可以避免因微小的距离变化而产生大量的位置改变事件LocationManager中设定监听位置变化的代码如下第1个参数是定位的方法,GPS定位或网络定位第2个参数是产生位置改变事件的时间间隔,单位为微秒第3个参数是距离条件,单位
6、是米第4个参数是回调函数,在满足条件后的位置改变事件的处理函数,9.1 位置服务,位置服务代码将产生位置改变事件的条件设定为距离改变10米,时间间隔为2秒实现locationListener的代码如下第2行代码onLocationChanged()在设备的位置改变时被调用,9.1 位置服务,位置服务第4行的onProviderDisabled()在用户禁用具有定位功能的硬件时被调用第6行的onProviderEnabled()在用户启用具有定位功能的硬件时被调用第8行的onStatusChanged()在提供定位功能的硬件的状态改变时被调用,如从不可获取位置信息状态到可以获取位置信息的状态,反
7、之亦然,9.1 位置服务,位置服务为了使GPS定位功能生效,还需要在AndroidManifest.xml文件中加入用户许可实现代码如下,9.1 位置服务,位置服务CurrentLocationDemo是一个提供位置服务的基本示例,提供了显示当前位置新的功能,并能够监视设备的位置变化,9.1 位置服务,位置服务位置服务一般都需要使用设备上的硬件,最理想的调试方式是将程序上传到物理设备上运行,但在没有物理设备的情况下,也可以使用Android模拟器提供的虚拟方式模拟设备的位置变化,调试具有位置服务的应用程序首先打开DDMS中的模拟器控制,在Location Controls中的Longitude
8、和Latitude部分输入设备当前的经度和纬度,然后点击Send按钮,就将虚拟的位置信息发送到Android模拟器中,9.1 位置服务,位置服务在程序运行过程中,可以在模拟器控制器中改变经度和纬度坐标值,程序在检测到位置的变化后,会将最新的位置信息显示在界面上但笔者在1.5版本的Android模拟器中进行调试时,发现模拟器控制器只能成功的将虚拟坐标发送到模拟器中2次,超过2次后模拟器对新发送的虚拟坐标不再响应,9.1 位置服务,位置服务下面是CurrentLocationDemo示例中LocationBasedServiceDemo.java文件的完整代码,9.1 位置服务,位置服务,9.1
9、位置服务,位置服务,9.1 位置服务,位置服务,9.2 Google地图应用,9.2.1 申请地图密钥首先向Google申请一组经过验证的“地图密钥”(Map API Key),然后使用MapView()就可以将Google地图嵌入到Android应用程序中,才能正常使用Google的地图服务“地图密钥”是访问Google地图数据的密钥,无论是模拟器还是在真实设备中需要使用这个密钥,9.2 Google地图应用,9.2.1 申请地图密钥注册“地图密钥”的第一步是申请一个Google账户,也就是Gmail电子邮箱,申请地址是找到保存Debug证书的keystore的保存位置,并获取证书的MD5散
10、列值keystore是一个密码保护的文件,用来存储Android提供的用于调试的证书,获取MD5散列值的主要目的是为下一步申请“地图密钥”做准备,9.2 Google地图应用,9.2.1 申请地图密钥获取证书的保存地址:首先打开Eclipse,通过Window Preferences打开配置窗体,在Android Build栏中的Default debug keystore中可以找到,9.2 Google地图应用,9.2.1 申请地图密钥为了获取Debug证书MD5散列值的,需要打开命令行工具CMD,然后切换到keystore的目录,输入如下命令如果提示无法找到keytool,可以将/bin的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 位置 服务 地图 应用
链接地址:https://www.31ppt.com/p-5225810.html