百度地图sdk越来越多的应用在Android应用中,百度提供的借口很多,用起来比较方便,最近我也是有个项目要用到百度地图的接口,所以就记录一下详细的情况,不是大神,只是记录学习的经历,提供给初学者一个参考。
要想成功的调用百度地图sdk,我们首先需要申请一个百度开发者账号,可以点击这里进行申请。
申请下来之后我们可以点击左侧的“获取密钥”,然后创建应用,填写完相应的信息后,提交即可,这里我们需要注意的一点是“数字签名+;+包名”数字签名是你的编译器的一个参数,eclipseADT的话是在window->perferences->Android->Build->SHA1这个就是数字签名,然后你的包名可以随便起,但是要记住因为后期会有对照的使用,很重要。然后你会获得一串key这个非常的重要,会在之后你的应用中有所使用,最好复制下来备用。
接下来我们需要下载百度地图sdk需要的包,没有的同学可以在这里下载。
得到了sdk以后我们就算是准备就绪,可以开始我们Android项目的创建了。
首先,我们创建一个安卓的项目,编译器不限,src下建的包的包名一定要起刚才在申请是填写的包名。
然后,在AndroidManifest中填写你获得的秘钥
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" />
</application>
接着添加权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.imooc.baidumap"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<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.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="EoKKQXAotcQVbHIZ0a6mhXWp" />
</application>
接着在activity_main.xml文件中添加地图控件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.baidu.mapapi.map.MapView
android:id="@+id/id_bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
</RelativeLayout>
然后,在应用程序创建时初始化 SDK引用的Context 全局变量
在main函数中添加几行即可
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
}
创建地图Activity,管理地图生命周期,这样的话会使得你应用关闭的时候你的地图也会同时关闭,避免内存占用
public class MainActivity extends Activity {
MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
}
@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();
}
}
到此为止你就做好了一个最基本的利用百度地图sdk做的一个小项目,在手机上可以测试,可以查看百度地图的情况。
详细情况也可以参看百度的官网介绍