转载请注明出处:http://blog.csdn.net/tanzuai/article/details/43760773
最近年前的项目已经上线,于是在空闲的时间就研究了百度地图的SDK,当前的版本:Android SDK v3.3.0 。 虽然百度地图网上相关代码比较多,大多可能都是比较旧的版本,且百度地图API的改动感觉也比较大,所以再此跟大家分享一下我的劳动成功。
先来介绍下本博客要实现的功能
1、功能介绍
地图的显示
2、申请密钥
2.1、Key的申请地址为:登录百度账号
输入要应用名称,选择应用类型,输入安全码。
2.2、关于安全码 ( 数字签名;包名 ) 的获取:
打开IDE:
黑框框住的就是数字签名,然后包名就是咱们应用的包名,直接用分号连接:例 如:
55:10:39:D9:81:57:BD:2E:A0:CD:E3:EB:5E:C4:CC:E0:E0:0D:41:56;com.tan.tan_map_demo
最后点击完成,就能获取密钥了:
3、第一个baidumap应用
3.1 加入项目需要的类库
第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;
第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_vX_X_X.jar,确定后返回。
通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。
注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:
1. 在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态;
2. Project -> clean-> clean all .
3.2添加秘钥
<application
android:allowBackup="true"
android:icon="@drawable/baidutheme"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="okM6X6Gx8RCylCUrSCWNnmxT" />
</application>
3.3添加权限
<!-- 地图基本权限 -->
<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" />
3.4在布局xml文件中添加地图控件
<com.baidu.mapapi.map.MapView
android:id="@+id/ibmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
3.5在应用程序创建时初始化 SDK引用的Context 全局变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.base_manmap_activity);
// 获取地图控件引用
mMapView = (MapView) findViewById(R.id.ibmapView);
}
好了,经过这四步就能显示地图了
3.6不过地图很耗电,所以有必要管理其声明周期
@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();
}
好了,完成。其实百度开发指南上也有相关的文档!可以参考完成!
下面是本篇博客的源码下载地址: