最近做畢業設計老師給我們講解了如何使用百度地圖API,在自己學到知識的同時也想分享給大家,一來是互相學習,二來就是混一點csdn的積分,然後就能省錢下載下傳人家的項目再深入學習
效果圖
注冊百度地圖開發開放平台賬号
1、搜尋百度開發開放平台
如果有賬号的話就登入,沒有賬号注冊一個
登入後打開開發文檔,選擇androidSDK
接下來的操作在這個網址裡都有說明:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak.,就不一一詳解了,按照官方的說法去建立一個需要使用百度地圖API功能APP
下載下傳配置相關功能包http://lbsyun.baidu.com/index.php?title=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar
根據自己需要開發的功能下載下傳相應的開發包
導包
下載下傳解壓後打開libs檔案夾并複制所有的檔案
打開android studio,在這裡切換到Project Files
切換後就可以看到libs檔案夾了
接下來,在app目錄下的build.gradle檔案中android塊中配置sourceSets标簽,如果沒有使用該标簽則新增,詳細配置代碼如下:
sourceSets {
main {
jniLibs.srcDir ‘libs’
}
}
如圖:
往工程中添加jar檔案
1、菜單欄選擇File -> Project Structure
2、在彈出的Project Structure對話框中選中左側的Modules清單下的app目錄,然後點選右側頁面中的Dependencies頁籤。如圖:
在彈出的對話框選擇我們剛剛導入的jar檔案
然後點選ok,ok,在build.gradle檔案就可以看到新添加了一行依賴
應用混淆(保證百度類不能被混淆,否則會出現網絡不可用等運作時異常)
現在我們的應用中已經內建了百度地圖SDK,當我們在打包混淆的時候需要注意于BaiduMap SDK 相關的内容不應該被混淆,是以我們需要配置混淆檔案。
1、打開app目錄下的build.gradle檔案,在release代碼塊中添加如下内容(若已經由Android Studio自動生成,則不用手動配置)
2、編寫混淆檔案,打開app目錄下的proguard-rules.pro檔案,添加如下代碼
-keep class com.baidu.** {;}
-keep class mapsdkvi.com.** {;}
-dontwarn com.baidu.**
顯示地圖
第一步 配置AndroidManifest.xml檔案(開發者key為建立應用時的key),如圖:
在AndroidManifest.xml檔案中加入如下代碼配置開發密鑰(AK)
第二步 在外部添加如下權限聲明(自Android6.0起部分權限的使用需要開發者在代碼中動态申請):
第三步 在布局檔案中添加地圖容器
MapView是View的一個子類,用于在Android View中放置地圖。MapView的使用方法與Android提供的其他View一樣。
android:id="@+id/bmapView"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:clickable=“true” />
第四步 地圖初始化
建立一個自定義的Application,在其onCreate方法中完成SDK的初始化。示例代碼如下:
public class DemoApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//在使用SDK各元件之前初始化context資訊,傳入ApplicationContext
SDKInitializer.initialize(this);
//自4.3.0起,百度地圖SDK所有接口均支援百度坐标和國測局坐标,用此方法設定您使用的坐标類型.
//包括BD09LL和GCJ02兩種坐标,預設是BD09LL坐标。
SDKInitializer.setCoordType(CoordType.BD09LL);
}
}
第五步 在AndroidManifest.xml檔案中聲明該Application
第六步 建立地圖Activity,管理MapView生命周期(應用生命周期結束時地圖的生命周期也要結束,否則會背景運作,增加耗電量)
public class MainActivity extends Activity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//擷取地圖控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
}
@Override
protected void onResume() {
super.onResume();
//在activity執行onResume時執行mMapView. onResume (),實作地圖生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity執行onPause時執行mMapView. onPause (),實作地圖生命周期管理
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity執行onDestroy時執行mMapView.onDestroy(),實作地圖生命周期管理
mMapView.onDestroy();
}
}
源碼:https://download.csdn.net/download/baidu_41616022/12028742
本文參考:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap