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

Android 百度地圖 SDK v3.0.0 (一)

編輯:關於Android編程

 

最近公司要把百度地圖集成的項目中,於是我就研究了一天百度地圖的SDK,當前的版本:Android SDK v3.0.0 。 雖然百度地圖網上相關代碼比較多,大多可能都是比較舊的版本,且百度地圖API的改動感覺也比較大,所以再此跟大家分享一下一天的勞動成功。

下面簡單展示下,博客中會介紹的功能:

1、功能介紹

a、首先肯定是導入地圖,然後就是地圖模式的一些切換,普通,衛星,實時交通什麼的。

b、定位功能,定位當前位置。

效果圖:

\

c、動態添加覆蓋物,點擊覆蓋物,彈出層以及其他效果。

效果圖:

\

 

 

d、結合方向傳感器,為地圖的定位功能添加方向,本人極其路癡,不分東南西北,所以此功能對我來說非常重要,手機不斷旋轉,我才能知道當前應該走哪條路,直接顯示的地圖對我來說沒用。

效果圖(我360度的旋轉手機,觀察效果圖的變化):

\

 

切換到別的模式也是很炫的:

\

e、提供離線地圖下載,可以極大的省去用戶的流量,也能保證在無網絡情況對地圖的使用。

基本這上述的功能,第一篇,還是從零開始,先把百度地圖導入app再說。

2、申請密鑰

a、申請密鑰,到百度API控制台的頁面:http://lbsyun.baidu.com/apiconsole/key

\

輸入要應用名稱,選擇應用類型,輸入安全嗎。

b、關於安全碼 ( 數字簽名;包名 ) 的獲取:

打開IDE:

\

黑框框住的就是數字簽名,然後包名就是咱們應用的包名,直接用分號連接:例如:F5:10:39:D9:81:57:BD:2E:A0:CD:E3:EB:5E:C4:CC:E0:E0:0D:41:56;com.zhy.zhy_baidu_ditu_demo03

最後點擊完成,就能獲取密鑰了:

\

 

3、第一個baidu map應用

下載就不多說了,直接點擊官網的相關下載就行選擇就可,後面我也會貼上源碼。

配置:

第一步:在工程裡新建libs文件夾,將開發包裡的baidumapapi_vX_X_X.jar拷貝到libs根目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libsarmeabi目錄下(官網demo裡已有這兩個文件,如果要集成到自己的工程裡,就需要自己添加),拷貝完成後的工程目錄如下圖所示;

 

\ 注:liblocSDK3.so和locSDK_3.1.jar為百度定位SDK所使用資源,開發者可根據實際需求自行添加。
android_dev1.png
第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,選定baidumapapi_vX_X_X.jar,確定後返回。
通過以上兩步操作後,您就可以正常使用百度地圖SDK為您提供的全部功能了。
注意:由於adt插件升級,若您使用Eclipse adt 22的話,需要對開發環境進行相應的設置,方法如下:
1). 在Eclipse 中選中工程,右鍵選 Properties->Java Build Path->Order and Export 使 Android Private Libraries處於勾選狀態;
2). Project -> clean-> clean all .

 

 

a、在application中添加開發密鑰

%3Cmeta-data%20%0D%0Aandroid%3Aname%3Dcom.baidu.lbsapi.API_KEY%20%0D%0Aandroid%3Avalue%3D%E5%BC%80%E5%8F%91%E8%80%85%20key%20%2F%3E 


 

b、添加所需權限

 
 
 
 
 
 
 
 
 
 
 
 
 


 

c、布局文件中添加地圖控件

 



 

d、在應用程序創建時初始化 SDK引用的Context 全局變量:

 

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
// 在使用SDK各組件之前初始化context信息,傳入ApplicationContext
// 注意該方法要再setContentView方法之前實現
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}


 

好了,經過這四步就能顯示地圖了~~

e、不過地圖很耗電,所以有必要管理其聲明周期

 

package com.zhy.zhy_baidu_ditu_demo00;

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

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

public class MainActivity extends Activity
{
	private MapView mMapView = null;

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);

		requestWindowFeature(Window.FEATURE_NO_TITLE);
		// 在使用SDK各組件之前初始化context信息,傳入ApplicationContext
		// 注意該方法要再setContentView方法之前實現
		SDKInitializer.initialize(getApplicationContext());
		setContentView(R.layout.activity_main);
		// 獲取地圖控件引用
		mMapView = (MapView) findViewById(R.id.id_bmapView);
	}

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

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

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

}


 

好了,完成。其實百度開發指南上對了helloworld這篇也極其清楚~~~~

 

 

源碼點擊下載

 

 

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