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

http://lbsyun.baidu.com/java

進入百度地圖開放平臺,登陸百度帳號android

選擇應用類型爲Android SDKapi

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

找到電腦上的.android路徑,通常都在C盤用戶目錄下,網絡

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

而後打開Android Studio,打開Terminalide

進入到.android目錄下佈局

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

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

會顯示證書指紋,裏面有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;
    }

注:最好使用真機運行

相關文章
相關標籤/搜索