关于百度地图的开发比较简单,基本上没有什么技术难点。
概括起来主要有以下几个步骤:
- 密钥的申请
- 工程的配置
- 有关代码的编写
下面我将逐个一一介绍
密钥的申请
密钥要是用于区别不同的应用,如果你的应用要使用百度地图,则要提前申请百度地图的Key
去百度开发者中心( http://developer.baidu.com/)注册一个百度账号,申请成为开发者。 去百度地图的API网站( http://developer.baidu.com/map/)申请你的应用的key 进入API控制台,点击“创建应用”, 在弹出来的对话框中填写相应的信息,应用类型选择“ for mobile ”,勾选自己想要的功能,填入安全码,点击“确认”,即可获取应用的 Key 值。
Tip:
为了避免重复确认应用名重复的麻烦,可以在创建应用前申请key。 安全码= Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名),请注意分号是英语状态下的。Android签名证书的sha1值可以在eclipse(winows -> preferance-> android -> build)中直接查看。
工程的配置
-
在http://developer.baidu.com/map/sdkandev-download.htm 下载相应的百度地图SDK、API文档和demo
-
解压后,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下,liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。
-
有关代码编写
主要的代码有AndroidManifest.xml文件中添加密钥、权限声明以及MapView的添加等。
1、添加密钥
在Applicants节点下添加如下代码
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" />
2、权限声明
<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、关于MapView
其使用方法与一般控件相同,不过在其初始化前要调用一下
SDKInitializer.initialize(getApplicationContext());
注:在SDK各功能组件使用之前都需要调用SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中