在android中使用百度地图,我们可以先看看百度地图相应的SDK信息:http://developer.baidu.com/map/index.php?title=androidsdk,它里面基本上有关于android中的所有配置、api调用等操作方法,下面我们来看看百度地图在android中环境的搭建步骤:我们这里使用的百度地图版本为
Android SDK v3.1.1,版本不同,里面的API可能不一样,所以希望大家能够注意!!
一、申请密钥,无论是开发谷歌地图还是百度地图我们都需要申请密钥,当然申请之前我们还得注册成为百度的用户,否则是申请不到的,密钥的android版申请步骤:http://developer.baidu.com/map/index.php?title=androidsdk/guide/key,注意里面配置的安全码不能随便填写,否则会出现看不到地图等一系列的问题,安全码必须是全码的组成规则为:Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名),关于sha1签名证书的值的获取,里面有相应的操作方法,填写完相应信息后,就会出现一个相应的24位的ak,就是我们的密钥,我们得把它记录下来;
二、下载android版百度地图SDK:http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download,建议下载全部,里面包含开发包、文档和示例,也可以在我的博客资源中进行下载:http://download.csdn.net/detail/harderxin/8002031;
三、新建android工程项目,将下载的libs包文件拷入到项目中,其中baidumapapi_v3_1_1.jar表示开发百度地图必须使用的包,而liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。将其jar包引入到项目工程中,拷贝后的项目包如下图:
四、打开我们项目的AndroidMainifest.xml文件,在Application下面将我们在上面得到的密钥放入到meta信息中:
<application> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" /> </application>
在AndroidMainifest.xml中添加百度相关权限:
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
添加对屏幕的支持:
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="false" android:resizeable="true" android:smallScreens="true" />
五、在main.xml中添加百度地图显示控件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </LinearLayout>
六、在MainActivity中引入百度地图API,编写相关代码:
package com.xin.activity; import android.app.Activity; import android.os.Bundle; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapView; public class MainActivity extends Activity { private MapView mMapView = null; private BaiduMap baiduMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 在使用SDK各组件之前初始化context信息,传入ApplicationContext // 注意该方法要再setContentView方法之前实现 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.main); // 获取地图控件引用 mMapView = (MapView) findViewById(R.id.bmapView); baiduMap=mMapView.getMap(); //设置地图类型为普通地图 //baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); //设置地图类型为卫星地图 //baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); //开启交通图 baiduMap.setTrafficEnabled(true); } @Override protected void onDestroy() { super.onDestroy(); // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); } <span style="font-size:18px;">}</span>
七、运行项目,在我们的模拟器上出现地图显示,即环境搭建成功!!
我在代码中控制了显示交通地图:baiduMap.setTrafficEnabled(true);所以会出现这样的效果,百度里面提供了很多api供我们参考使用,例如标注、覆盖物、公交查询等信息,我们可以根据自己的需要来编写相关代码,这里的环境搭建只起到了一个抛砖引玉的作用,以后的拓展,还得根据项目需求自己去设计实现:
百度在线API:http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v3_1_1/
百度基础地图:http://developer.baidu.com/map/index.php?title=androidsdk/guide/basicmap