版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京泰姆斯教育,Android地图和定位,北京泰姆斯教育 ,本章案例,在Android平台下开发基于Google服务(Map和GPS)的应用,案例演示,北京泰姆斯教育 ,本章目标,Android与Google Map Android Location,北京泰姆斯教育 ,Google MAP,Google Map是Google公司提供的电子地图服务,包括局部详细的卫星照片。它能提供三种视图: 一是矢量地图(传统地图),可提供政区和交通以及商业信息; 二是不同分辨率的卫星照片(俯视地图,与Google Earth 上的卫星照片基本一样); 三是后来加上的地形视图,可以用以显示地形和等高线。 姊妹产
2、品是Google Earth-一个桌面应用程序 对于Google的Android系统来说,地图肯定也是必不可少的特色,北京泰姆斯教育 ,安装Google Map API,北京泰姆斯教育 ,获得Google Map API Key 3-1,在正式使用Google Map API前,必须先生成Google Map API KEY 要使用Java下的keytool工具,产生MD5指纹 keytool 一般位于%JAVA_HOME%/bin(已配置好的Java环境变量)目录下。如果是Linux系统,则位于$JAVA_HOME/bin下。 在开发Android程序时,一般是在debug调试模式下开发的
3、找到debug模式下的keystore密钥库 Windows Vista:C:Users.androiddebug.keystore Windows XP:C:Documents and Settings.androiddebug.keystore OS X and Linux:/.android/debug.keystore,北京泰姆斯教育 ,获得Google Map API Key 3-2,,使用keytool工具产生MD5指纹,在命令行窗口输入下面语句:,如果在不同的Android SDK或者不同的开发环境下,MD5密纹是不同的,北京泰姆斯教育 ,在浏览器中加载这个页面:,获得Googl
4、e Map API Key 3-3,北京泰姆斯教育 ,Google Map API介绍,com.google.android.maps包 GeoPoint 表示一个地理坐标点,存放经度和纬度。 MapView:用于显示地图的View组件。它必须和MapActivity配合使用。 MapActivity:用于显示Google MAP的Activity类,它需要连接底层网络。 Overlay:一个可显示于地图之上的可绘制的对象。 MapController:MapController用于控制地图的移动。,北京泰姆斯教育 ,GeoPoint,表示一个地理坐标点,存放经度和纬度。以微度的整数形式存储。
5、微度(microdegrees),就是度数再乘以1000000。 构造方法 public GeoPoint(int latitudeE6, int longitudeE6),北京泰姆斯教育 ,MapView,MapView是用来显示地图的视图(View),它派生自android.view.ViewGroup。当MapView获得焦点,可以控制地图的移动和缩放。 MapView可以以不同的形式来显示出来,如卫星模式、路况模式、街景模式等,通过setSatellite(boolean),setTraffic(boolean),setStreetView(boolean)方法。 MapView只能被
6、MapActivity来创建,这是因为MapView需要通过后台的线程来连接网络或者文件系统,而这些线程要由MapActivity来管理。 需要特别说明的一点是,Android SDK 1.5中,MapView为开发人员提供了更加方便的缩放控件ZoomControls,可以通过setBuiltInZoomControls(boolean)来设置是否在地图上显示缩放控件,缩放控件会自动在MapView底部显示。,北京泰姆斯教育 ,MapView常用方法,北京泰姆斯教育 ,MapActivity,管理显示MapView的Activity处理逻辑的基础类。MapActivity是一个基类,它使用代码
7、去管理任何一个Activity繁琐的事务,它的责任包括: 管理Activity生命周期管理。 管理MapView创建和销毁Map Service的链接,北京泰姆斯教育 ,Overlay,Overlay类是一个基类,提供了可以在地图上添加图层的基本功能。其是覆盖到MapView的最上层,可以扩展其draw方法,自定义在MapView中显示一些自己的东西。MapView通过MapView.getOverlays()对Overlay进行管理。,北京泰姆斯教育 ,MapController,控制地图移动、伸缩、以某个GPS坐标为中心,控制MapView中的view组件,管理Overlay,提供View
8、的基本功能。使用多种地图模式来查看Google Map。,北京泰姆斯教育 ,Google Map应用示例,1.创建名为MyGMap的Android项目,其属性如下: Project name:MyGMap Application name:MyGMap Package name:com.handson Create Activity:MyGMapActivity Min SDK Version:8 注意,此项目在创建时,Build Target选项选择Google APIS,平台版本2.2,API LEVEL为8。,北京泰姆斯教育 ,Google Map应用示例,res/layout目录下的m
9、ain.xml文件,北京泰姆斯教育 ,Google Map应用示例,src/com.handson.MyGMapActivity类,北京泰姆斯教育 ,Google Map应用示例,在AndroidManifest.xml文件中声明应用将使用的地图库。如下: 同时,下载Google地图需要使用网络,所以还需要加入: 创建名为Google2.2的AVD,其Target为Google APIs(Level 8),北京泰姆斯教育 ,Google Map应用示例,在地图上进行一些标注。将icon.png绘制到Map上,北京泰姆斯教育 ,Google Map应用示例,Overlay类创建完成,修改MyGM
10、apActivity类,北京泰姆斯教育 ,Android定位,当今的智能手机,可以通过GPS定位技术和无线网络地图定位技术获得手机当前所处的地理位置信息。 GPS(Global Positioning System,全球定位系统)卫星导航是近年来非常热门的产品,如车载GPS导航就是基于GPS服务的应用。Android出自Google之手,同时Google也提供了GPS定位服务 实现位置服务的技术有GPS和无线网络地图,Android将这些不同的定位技术统称为LBS(Location Based Service,基于位置的服务)。为此,Android提供的定位框架(location framew
11、ork),即使用android.location包中的类来访问设备中的定位服务。,北京泰姆斯教育 ,Android.location包,android.location包中常用的类: Location:描述了当前设备的地理位置信息,包括经纬度、方向、高度和速度等。 LocationManager:可以实现设备的定位、跟踪和趋近提示。 LocationProvider:该类是定位提供者的抽象类。定位提供者具备周期性报告设备地理位置的功能。 LocationListener:提供定位信息发生改变时的回调功能。必须事先在定位管理器中注册监听器对象。 Criteria:该类使得应用能够通过在Locat
12、ionProvider中设置的属性来选择合适的定位提供者。,北京泰姆斯教育 ,Location,Location类描述了当前设备的地理位置信息,包括经纬度、方向、高度和速度等。通过LocationManager的getLastKnownLocation (String provider)方法可以获得Location实例。,北京泰姆斯教育 ,LocationManager,通过LocationManager可以实现设备的定位、跟踪和趋近提示。 要获得一个LocationManager的实例,无需直接初始化,而是通过调用getSystemService(Context.LOCATION_SERVI
13、CE)来获取一个实例。,北京泰姆斯教育 ,GPS PK NETWORK,GPS_PROVIDER与NETWORK_PROVIDER的对比 LocationManager.GPS_PROVIDER:GPS,精度比较高,但是慢而且消耗电力,而且可能因为天气原因或者障碍物而无法获取卫星信息,设备依赖GPS模块。 LocationManager.NETWORK_PROVIDER:通过网络(WIFI/基站)获取定位信息,精度低,耗电少,获取信息速度较快,不依赖GPS模块,北京泰姆斯教育 ,LocationProvider,LocationProvider用来描述不同的用于获得设备所处位置定位技术的提供者
14、,设置位置提供者得一些属性。可以同过Criteria类来为LocationProvider设置条件,获得适合的LocationProvider。,北京泰姆斯教育 ,LocationListener,提供定位信息发生改变时的回调功能。必须事先在定位管理器中注册监听器对象。 用于接收从当位置发生了变化LocationManager通知。要实时的得到位置信息,需要注册一个LocationListener。当在LocationListener在LocationManager中以requestLocationUpdates(String, long,float,LocationListener)注册后,
15、就可以调用其中的方法。,北京泰姆斯教育 ,Criteria,该类提供了一组查询条件:位置解析精度(高或粗)、电池消耗(高、中、低)、运营商费用,以及是否可以提供海拔高度、速度及方向信息。使得应用能够通过在LocationProvider中设置的属性来选择合适的定位提供者,北京泰姆斯教育 ,Location应用示例,1.创建名为MyLocation的Android项目 2.打开res/layout目录下的main.xml文件,北京泰姆斯教育 ,Location应用示例,3.打开src/com.handson.MyLocationActivity类,在onCreate方法中实现获取当前位置信息,北
16、京泰姆斯教育 ,Location应用示例,北京泰姆斯教育 ,Location应用示例,res/layout目录下的main.xml文件,北京泰姆斯教育 ,Location应用示例,4.如果使用GPS来进行精确定位,需要在AndroidManifest.xml文件中加入相应权限。如下: 如果要通过WIFI/基站,即网络定位技术,则需要加入:,北京泰姆斯教育 ,启动名为Google2.2的AVD,Location应用示例,通过【设置】【位置和安全】勾选上【使用GPS卫星】选项, 并使用一次Android自带的Maps应用程序即可。 如果真机测试,则需要GPS卫星在四颗以上,并要求在户外。,北京泰姆
17、斯教育 ,Location应用示例,通过使用LocationListener的使用,可以做到实时跟踪用户的位置变化。 除了GPS和网络定位技术外,另一种常见的方法是程序提供查询LocationProvider的条件(使用Criteria类设置条件),Android根据查询条件帮助程序选择最合适的提供器。,北京泰姆斯教育 ,Location应用示例,对MyLocationActivity类修改,北京泰姆斯教育 ,Location应用示例,北京泰姆斯教育 ,Location应用示例,再次运行程序,并修改GPS数据,查看效果,北京泰姆斯教育 ,总结,Google Map Google Map API Key获得 Google Map API MapActivity:用于显示Google MAP的Activity类,它需要连接底层网络。 MapView:用于显示地图的View组件。它必须和MapActivity配合使用。 MapController:MapController用于控制地图的移动。 Overlay:一个可显示于地图之上的可绘制的对象。 GeoPoint:一个包含经纬度位置的对象。 在AndroidManifest.xml中添加Google Map包 ,提问,北京泰姆斯教育 ,总结,Android定位 Android.location包中API Location
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐器维修技师考试试卷及答案
- 2025年亳州机场管理有限公司劳务派遣人员招聘9人笔试历年参考题库附带答案详解
- 2025年6月山东临沂高新控股集团有限公司及权属子公司招聘24人笔试历年参考题库附带答案详解
- 2025山东能源集团上海中期期货股份有限公司及所属企业社会招聘12人笔试历年参考题库附带答案详解
- 2025山东圣阳电源股份有限公司招聘10人笔试历年参考题库附带答案详解
- 2025安徽某国企高速收费站收费员招聘18人笔试历年参考题库附带答案详解
- 2025天津开元捷能科技有限公司招聘3人笔试历年参考题库附带答案详解
- 2025国家电投集团吉电股份招聘110人(吉林)笔试历年参考题库附带答案详解
- 2025四川航空科瑞特工程技术有限公司招聘10人笔试历年参考题库附带答案详解
- 2025四川成都产业投资集团有限公司所属公司招聘运营经理等岗位20人笔试历年参考题库附带答案详解
- 装修包工不包料合同
- 可研报告收费标准(国家标准)
- 安徽省安庆市怀宁县2024-2025学年七年级上学期期中考试数学试卷
- 国开(河北)2024年秋《现代产权法律制度专题》形考作业1-4答案
- 部编人教版语文小学六年级下册第四单元主讲教材解读(集体备课)
- 统编版语文四年级下册第七单元教材解读解读与集体备课课件
- E临床医学专业内科学呼吸系统试题
- 人工智能原理与技术智慧树知到期末考试答案章节答案2024年同济大学
- 《先进制造技术》教案
- 马克思主义基本原理智慧树知到课后章节答案2023年下湖南大学
- Zootopia疯狂动物城中英文对照台词
评论
0/150
提交评论