Android 使用百度地圖API來顯示地圖 原

http://lbsyun.baidu.com/

進入百度地圖開放平臺,登錄百度賬號

選擇應用類型爲Android SDK

發佈版SHA1,和開發板SHA1的獲取方法爲:

找到電腦上的.android路徑,一般都在C盤用戶目錄下,

有的配置Android環境變量的話可能在SDK的目錄下

然後打開Android Studio,打開Terminal

進入到.android目錄下

輸入 keytool -list -v -keystore debug.keystore

密鑰庫口令不用輸入,直接回車

會顯示證書指紋,裏面有SHA1,直接複製就可以

輸入SHA1和包名後,會自動生成安全碼

然後點擊提交,這樣我們就生成了一個密鑰

然後在百度地圖首頁

接下來根據自己的項目需求來勾選相應的功能

點擊開發包下載,這就是下載好的開發包

以上就是百度地圖API的準備工作

————————————————————————————————————————————————————————

開發步驟:

  • 配置百度地圖SDK
  • 佈局界面
  • 初始化SDK引用的Context全局變量
  • 管理地圖生命週期

 將之前下載的BaiduLBS_AndroidSDK_Lib解壓,並將裏面libs目錄中的兩個jar包複製到

Android Studio項目下libs目錄下

將libs目錄下的jar包添加到庫當中

點擊ok

同時在build.gradle中會生成工程所依賴的對應的Jar文件說明,代碼如下

dependencies{
  implementation files('libs/BaiduLBS_Android.jar')files('libs/BaiduLBS_Android.jar')
}

在src目錄下的main目錄中創建jniLibs目錄

然後將百度地圖SDK中的lib目錄複製到剛剛創建的目錄

但有時候這樣工程並不會自動加載libs下的so文件,

需配置so文件的路徑爲該libs路徑,關聯所有地圖SDK的so文件,

即在app文件夾下的bulid.gradle加入代碼: jniLibs.srcDir 'libs' ,詳細代碼如下:

(在bulidTypes {} 結束後添加此段代碼)

sourceSets{
  main{
       jniLibs.srcDir 'libs'  
       //說明so的路徑爲該libs路徑,關聯所有地圖SDK的so文件
      }
}

接下來在application中添加開發密鑰(AK)

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="開發者 key" />  
</application>

添加所需權限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
//獲取設備網絡狀態,禁用後無法獲取網絡狀態
<uses-permission android:name="android.permission.INTERNET"/> 
//網絡權限,當禁用後,無法進行檢索等相關業務
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
//讀取設備硬件信息,統計數據
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 
//讀取系統信息,包含系統版本等信息,用作統計
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
//獲取設備的網絡狀態,鑑權所需網絡代理
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
//允許sd卡寫權限,需寫入地圖數據,禁用後無法顯示地圖
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
//獲取統計數據
<uses-permission android:name="android.permission.CAMERA" />  
//使用步行AR導航,配置Camera權限

在MainActivity.java中的代碼如下

  private MapView mMapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化地圖SDK,
        //需要在setContentView(R.layout.activity_main);上面
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        //獲取地圖控件引用
        mMapView = findViewById(R.id.bmapView);
        //自4.3.0起,百度地圖SDK所有接口均支持百度座標和國測局座標,用此方法設置您使用的座標類型. 
        //包括BD09LL和GCJ02兩種座標,默認是BD09LL座標。
        SDKInitializer.setCoordType(CoordType.BD09LL);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mMapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mMapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mMapView.onDestroy();
        mMapView = null;
    }

注:最好使用真機運行

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章