關於百度地圖的開發比較簡單,基本上沒有什麼技術難點。
概括起來主要有以下幾個步驟:
- 密鑰的申請
- 工程的配置
- 有關代碼的編寫
下面我將逐個一一介紹
密鑰的申請
密鑰要是用於區別不同的應用,如果你的應用要使用百度地圖,則要提前申請百度地圖的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的初始化方法中