使用过百度地图的开发者应该都知道原始百度地图的开发的基本流程,但是随着百度地图的更新,百度地图的api有了翻天覆地的变化,最新版本的sdk为v3.4
2015年4月14日上线,优化了许多接口的设计,简单了地图的开发方式。但是,对没有接触过新版地图开发的人来说,依然是望尘莫及,今天我们就一起来学习下最新版百度地图的开发吧
1.获取开发者KEY
下面是官方的说明:
注意:为了给用户提供更优质的服务,Android SDK自v2.1.3版本开始采用了全新的Key验证体系。因此,当您选择使用v2.1.3及之后版本的SDK时,需要到新的Key申请页面进行全新Key的申请,申请及配置流程请参考开发指南对应章节 。(选择使用v2.1.2及之前版本SDK的开发者,申请密钥(key)的方式不变)。
当然新版的key的方式发生了改变,详情(点击进入申请)
申请的具体流程官网说的很清楚,即
Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名),例如:
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.baidumap.demo
2.下载sdk文件demo和帮助文档
上面所选就可以完成大多数开发使用了
当然定位功能视个人情况选择
3.配置开发环境
解压开发包得到如下文件
![](https://img-blog.csdn.net/20150502200448986)
打开文件夹如右图
将第一幅图片中的文件复制到工程的libs文件下,并且add bulid path
4.工程的基本配置
在清单文件中的application节点下增加如下源文件
这个key必须这个工程包对象的key
- <meta-data
- android:name="com.baidu.lbsapi.API_KEY"
- android:value="申请到的开发者key" />
然后配置权限
- <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" />
最后就可以在xml文件中使用map组件了,使用的方式和自定义组建的使用方式是一致的
- <com.baidu.mapapi.map.MapView
- android:id="@+id/bmapView"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:clickable="true" />
在activity文件中做如下处理,具体见注释
- public class MainActivity extends Activity {
- MapView mMapView = null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
-
- SDKInitializer.initialize(getApplicationContext());
- setContentView(R.layout.activity_main);
-
- mMapView = (MapView) findViewById(R.id.bmapView);
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
-
- mMapView.onDestroy();
- }
- @Override
- protected void onResume() {
- super.onResume();
-
- mMapView.onResume();
- }
- @Override
- protected void onPause() {
- super.onPause();
-
- mMapView.onPause();
- }
- }