随着基于位置的服务的兴起,地图类App呈现爆发趋势。随着而来的是地图供应商开放大量的API,供开发者开发基于PC或者移动端的应用程序。现在我们研究使用百度地图SDK进行Android项目的开发。本文讨论如何导入百度地图SDK。主要分为服务器端配置和客户端配置。
(1)首先要有一个百度账号,账号可以去百度官网申请,然后登陆:http://developer.baidu.com/map/index.php?title=%E9%A6%96%E9%A1%B5 。使用自己的账号密码登录。该网站就是百度提供LBS服务的网站。
(2)在Android开发中点击“SDK下载”,下载地图开发需要的SDK或者Demo。Demo中百度为我们提供了功能丰富的代码示例。大家可以根据需求下载需要的SDK。
(3)下载完成后,会有多个jar包和一个armabi文件夹,把jar包和armabi文件夹复制到Eclipse工程目录下的libs文件夹下。如图:
(5)Eclipse打开Windows-->Preferences-->Android-->Build,获取右侧的SHA1 fingerprint值:“3B:BF:6C:48:0B:EE:79。。。。。”,以及记录自己应用程序的包名,如本文使用com.example.mapdemo.
(6)来到刚才的百度地图API网站,点击右上角的“API控制台”,点击“创建应用”,新建一个应用,配置参数如下,其中最关键的安全码为:SHA1;包名 。中间是一个英文状态下的分号。如:3B:BF:6C:48:0B:EE:79。。。。。;com.example.mapdemo. 应用类型选择Android SDK,点击“提交”。这一步非常重要,很多地图不能显示的情况,都是因为这一步有问题导致的。在服务器上创建的一个应用和你Eclipse中的一个项目一一对应,注意不是一个一对多或者多对一的关系,所以安全码是非常重要的。
(7)提交以后,记录访问应用AK,这个也就是API key.之后在代码中会用到,作为访问服务器的钥匙。
(8)在百度服务器端的配置已经全部完成,下面开始写代码,在AndroidMenifest.xml中添加:
<application //自动生成代码 <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="这里加入上方的AK" /> </application>
添加权限:
<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" />
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
public class MainActivity extends Activity { MapView mMapView = null;// 用于显示地图的控件; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext());// 初始化地图SDK,注意一定要写在 setContentView(R.layout.activity_main);代码前; 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(); } }
(11)编写少量代码后,运行程序,界面上就可以显示地图了,项目成功导入百度地图SDK,有了这个基础后,就可以开发更加复杂的基于地图的App了。
本文参考百度地图开发文档:http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!