Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 第三方SDK:百度地圖(一)HelloBaiduMap

第三方SDK:百度地圖(一)HelloBaiduMap

編輯:關於Android編程

百度官方文檔:http://lbsyun.baidu.com/index.php?title=androidsdk

使用步驟:

下載百度地圖的SDK +申請密鑰 環境配置(添加jar+so) 配置AndroidManifest.xml(key+user-permission) 編寫代碼

1 下載百度地圖的SDK+申請密鑰

由於我們是基本實現百度地圖的功能,所以只需要設置基本地圖即可。

這裡寫圖片描述

百度官方:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key
申請密鑰需要填寫: 應用名稱 + 包名 + SHA1
獲取SHA1有2種方式(ADT>=22和使用keytool )

1-1申請密鑰需要填寫如圖:

這裡寫圖片描述

1-2獲取SHA1有2種方式

1-2-1ADT>=22 獲取SHA1

步驟:windows-->preferences-->Android-->Builder-->SHA1 FingerPrint。

1-2-2使用keytool :Android Studio 或 ADT < 22

步驟:進入cmd,輸入: cd .android,再輸入:keytool -list -v -keystore debug.store,(密鑰口令是android)即可得到SHA1.

注意:正式上線的時候要用發布版的key.store,而不是debug.store,否則會出現沒有地圖只有網格的情況。

SHA1獲取如圖:
這裡寫圖片描述<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMiBpZD0="2-環境配置添加-jar-so">2 環境配置:添加 jar + so

百度官方文檔:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/buildproject
首先需要下載BaiduMapSDK,在AS/Eclipse中添加

2-1 Android Studio添加jar + so

第一步:在工程app/libs目錄下放入baidumapapi_vX_X_X.jar包,在src/main/目錄下新建jniLibs目錄,工程會自動加載src目錄下的so動態庫,放入libBaiduMapSDK_vX_X_X_X.so如下圖所示,注意jar和so的前3位版本號必須一致,並且保證使用一次下載的文件夾中的兩個文件,不能不同功能組件的jar或so交叉使用。 第二步:工程配置還需要把jar包集成到自己的工程中,如圖上圖所示,放入libs目錄下。對於每個jar文件,右鍵-選擇Add As Library,導入到工程中。對應在build.gradle生成工程所依賴的jar文件說明。

2-2 Eclipse中添加jar + so

直接將下載的libs中的文件不知道項目中libs文件夾中即可。(工具欄的project-->Build Automatolly打鉤,意思是:自動編譯)
so文件可以只將armeabi文件夾復制到libs中即可(armeabi是手機CPU架構,現在大部分手機是arm架構)

如圖:
這裡寫圖片描述

3 配置AndroidManifest.xml(key+user-permission)

百度官方文檔:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap

user-permission 直接復制 文檔中的即可。
key:第一步:申請密鑰獲取的key。

配置key見下圖:
這裡寫圖片描述

3-1AndroidManifest.xml




    
    
    
    
    
    
    
    
    
    
    

    
    
        
            
                

                
            
        

     
        
    

4代碼

初始化Context 布局中添加MapView組件 創建地圖Activity,管理地圖生命周期;

4-1初始化SDK

package com.baidu.bdmap01;

import com.baidu.mapapi.SDKInitializer;

import android.app.Application;

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        //在使用SDK各組件之前初始化context信息,傳入ApplicationContext  
        //注意該方法要再setContentView方法之前實現  
        SDKInitializer.initialize(getApplicationContext());  

        super.onCreate();
    }
}

4-2布局中添加MapView組件



    

4-3創建地圖Activity,管理地圖生命周期

package com.baidu.bdmap01;

import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;

import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity {

    private MapView mMapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 獲取地圖控件引用
        mMapView = (MapView) findViewById(R.id.bmapView);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命周期管理
        mMapView.onDestroy();
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 在activity執行onResume時執行mMapView. onResume (),實現地圖生命周期管理
        mMapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // 在activity執行onPause時執行mMapView. onPause (),實現地圖生命周期管理
        mMapView.onPause();
    }

}

結果如圖:
這裡寫圖片描述

5注意事項:

1 閃退

由於是在Application中進行的初始化,但忘記在Androidmanifest.xml的application節點下設置name屬性,導致閃退。

2 只顯示網格,沒有地圖

1.appKey錯誤(packagename也要復制全面)
2.Eclipse中project.properties的target=android-18不匹配。
3.數據多,網絡慢。

比例尺默認是5公裡,數據太多,加載慢,可以將比例尺改為放大或縮小,地圖會馬上顯示出來。例如:放大到2公裡,或50公裡(>=50均可),地圖會馬上顯示出來,比默認的5公裡顯示的快多了(實際驗證多次,而且默認5公裡要很久才顯示出來)

下載:

下載源碼:https://github.com/s1168805219/BaiDuDemo01

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved