最近调研了Android地图方面的应用,写下此博客,与大家一起分享!
GoogleMap API的使用介绍:
一、准备工作
1、下载安装Google Map API
在默认情况下,在安装Google AndroidSDK时,是不需要必须安装Google Map API的。但要做Map应用的话,就必须安装Google Map API。
通过启动Android SDK and AVD Manager这个SDK管理器去下载安装Google Map API。在启动SDK管理器后,选择“InstalledOptions”,去查看你已经安装了哪些SDK和是否经安装Google Map API,如果尚未安装的话,可以在“AvailablePackages”中查找并下载安装,如下图所示:
页面中显示的是我已经安装成功的API,请在Available packages中选择你需要的API,下载安装即可。
2、获取GoogleMap API KEY
在正式使用GoogleMap API前,必须先生成Google Map API KEY。
生成步骤:
(1) 需要应用程序的签名证书(在开发阶段,模拟器使用调试证书来签名应用程序。在发布应用时,需要自己生成的签名证书),调试证书位置:从Eclipse的Preferences菜单,转到Android->debug中,调试证书的位置显示在”Defaultdebug keystore”字段中。
(2)使用keytool 获得签名证书的MD5指纹
keytool -list -keystore debug.keystore
密码:android
获取MD5认证指纹
(3) 将证书的MD5指纹粘贴到以下Google网站的适当字段中
http://code.google.com/intl/zh-CN/android/maps-api-signup.html生成map apiKey
3、实例开发:
(1)新建Google Map工程,注意采用Google APIs。
(2)添加权限和添加包的引用
由于使用GoogleMap API,所以必须添加
<uses-library android:name="com.google.android.maps" />
由于需要从网络获取地图数据,所以需要访问网络的权限
<uses-permission android:name="android.permission.INTERNET"/>
如果使用到用户定位,则需要添加以下权限:
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
(3)创建MapView(MapView用于显示地图的View组件,在Activity的布局文件中需要定义MapView,并添加属性android:apiKey=“申请的map apiKey”)
要显示地图,需要创建一个MapView,在Xml文件中的布局如下。其中的android:apiKey的值就是之前申请的MapapiKey。
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_below="@id/searchRegion"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:apiKey="Map API KEY"/>
也可以在程序中通过如下代码来创建MapView:
MapView mapView = new MapView(this, "Map API KEY");
(4) 继承自MapActivity(MapActivity用于显示Map的Activity,是一个抽象类,任何想要显示MapView的Activity都需要继承MapActivity。)
获取MapView,并对地图操作进行设置
(5)MapController(用于地图的移动、缩放等)
到此为止,地图就可以显示出来了!
二、用户定位
1、用户定位主要用到的api在android.location包中。
LocationManager:用于管理用户定位服务。
LocationProviders:提供多种的定位方式。
常用的定位方式包括:GPS、NETWORK
2、需要添加的权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>如果定位方式为NETWORK,权限也可以只添加权限:<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
3、获取LocationManager
4、实现LocationListener
5、注册监听
代码如下:
模拟器中模拟GPS定位,可在eclipse中DDMS操作界面中的Emulator Controller中输入经纬度,模拟GPS定位,如图:
点击send,查看模拟器,就可以看见模拟的当前位置了!