GoogleMap开发实例讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Google服务应用开发
Google提供了许多免费服务,例如搜索引擎、GoogleMap、Google翻译、Google文件、Google日历、GMail、Google Talk、Youtube等常见的服务,Google拥有大量的资料以及对这些资料做分析的能力,因此可以提供更多的服务类型。在丰富的资源下将Google服务与Android的应用程序结合能让使用者在使用上觉得更便利,可以说是“Google服务随身带”。
1 Google Map 服务
Android中基于Google Map服务体现在两个方面:地图API和位置API。这两个API 是彼此隔离的,都拥有自己的包。例如,地图包为com.google.android.maps,而位置包为android.location。Android中的地图API提供了一些工具来显示和操作地图。例如:可以缩放和平移地图,可以更改地图模式(例如,从卫星视图更改为街道视图),可以向地图添加自定义数据,等等。位置API则提供了GPS数据和实时位置数据的处理。
这些API通过互联网调用来自Google服务器的服务,因此它们需要有网络连接才能工作。此外,在使用这些Android Maps API服务开发应用程序之前,需要同意Google的服务条款。请仔细阅读这些条款,Google对服务数据的用途设置了一定的限制。例如,可以将位置信息用于用户的个人用途,不能用于某些商业用途。在注册获取map-api密钥时将看到这些条款。
接下来,让我们一起来了解这些包。我们首先介绍地图API以及如何在应用程序中使用地图。你将会看到,Android中的地图应用可以归结为使用MapView UI控件和MapActivity类,当然还有地图API,它们集成了GoogleMaps。讨论完地图后,我们会深入剖析基于位置的服务,进一步扩展地图概念。在位置服务的课程中,我们会介绍如何使用Android Geocoder类和LocationManager服务。可能也会使用一些多线程来编程。
1.1 玩玩地图包(地图API)
地图包包含在屏幕上显示地图、处理用户与地图之间的交互(比如缩放地图),在地图上显示自定义数据所需的一切内容。使用此包的第一步是显示地图。为此,需要使用MapView视图类。但是,在使用MapView之前,还要做一些准备工作。
1.1.1 准备工作:从Google获得map-api密钥
你需要先到Google网站获得map-api密钥,有了map-api密钥,android才能使用Google Maps服务,获得地图数据。要开发Google Map服务相关应用程序服务之前,必须先到Google 网站上取得Google Map的开发密钥map-api。否则就算程序能够运作,地图也不会显示出来。没有密钥的地图就像这样:真悲惨!
map-api密钥简介:如果你需要开发一个使用GoogleMaps服务的程序,需要两个密钥:一个密钥用于使用模拟器进行开发,一个用于生产用途(在设备上)。这是因为在开发和生产用途所用于获取map-api密钥的证书是不同的。当然,今天我们就只需要得到开发时候的密钥就可以了。至于生产用途的密钥,和开发密钥的获得方法很相似,所不同的是生产用途的密钥必须基于android安全性。
获得开发时的map-api密钥
1找到debug.keystore文件。(从Eclipse的Preference菜单,转到Android—>Build)
2使用jdk bin目录下的keytool来提取MD5指纹。(到控制台提取MD5指纹。)
3去google网站申请map-api密钥。(注意,这里我们是用开发阶段使用的认证指纹去申请密钥,故这个密钥只用于开发和研究中,若要用于生产用途,则不是用这个密钥。)/intl/zh-CN/android/maps-api-signup.html
1.1.2 MapView和MapActivity
OK!现在我们可以开始使用地图了。
Android中的许多地图技术都依赖于MapView 和MapActivity(android.app.Activity)的扩展。关于这两个类,必须记住的一点是,它们必须协同工作。
1 在开启项目时必须选择Google APIs。
开启后从创建的项目会看到使用的lib会多一个maps.jar。
2 在AndroidManifest.xml文件中添加权限。
添加权限后还需要再添加一句:
3 第一个Demo。
(使用MapView的MapController类,调用zoomIn()或zoomOut()实现缩放功能。
更改视图模式:地图、街道视图、卫星视图和交通视图。在一些清空下,设置一种模式将关闭另一种模式。要关闭一种模式,可以将该模式设置为false。
移动地图:
在xml中设置MapView的android:clickable=”true”
或者在mapview上使用setClickable(true)方法。)
4 一种更简单的实现缩放控件的方法。
神奇的setBuiltInZoomControls()。