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

轉載請標明出處:http://blog.csdn.net/lmj623565791/article/details/37729091html

近期公司要把百度地圖集成的項目中,因而我就研究了一天百度地圖的SDK,當前的版本號:Android SDK v3.0.0 。java

儘管百度地圖網上相關代碼比較多。大多可能都是比較舊的版本號,且百度地圖API的修改感受也比較大。因此再此跟你們分享一下一天的勞動成功。android

如下簡單展現下,博客中會介紹的功能:api

一、功能介紹

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

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

效果圖:網絡


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

效果圖:ide



d、結合方向傳感器,爲地圖的定位功能加入方向,本人極其路癡,不分東南西北。因此此功能對我來講很是重要,手機不斷旋轉,我才幹知道當前應該走哪條路。直接顯示的地圖對我來講沒用。佈局

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



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


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

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

二、申請密鑰

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

最後點擊完畢。就能獲取密鑰了:



三、第一個baidu map應用

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

配置:

第一步:在project裏新建libs文件夾,將開發包裏的baidumapapi_vX_X_X.jar複製到libs根文件夾下,將libBaiduMapSDK_vX_X_X.so複製到libs\armeabi文件夾下(官網demo裏已有這兩個文件,假設要集成到本身的project裏。就需要本身加入)。拷貝完畢後的project文件夾例如如下圖所看到的;

注:liblocSDK3.so和locSDK_3.1.jar爲百度定位SDK所使用資源,開發人員可依據實際需求自行加入。


android_dev1.png
第二步:在project屬性->Java Build Path->Libraries中選擇「Add External JARs」,選定baidumapapi_vX_X_X.jar,肯定後返回。


經過以上兩步操做後,您就可以正常使用百度地圖SDK爲您提供的全部功能了。


注意:由於adt插件升級。若您使用Eclipse adt 22的話。需要對開發環境進行對應的設置。方法例如如下:
1). 在Eclipse 中選中project,右鍵選 Properties->Java Build Path->Order and Export 使 Android Private Libraries處於勾選狀態;
2). Project -> clean-> clean all .


a、在application中加入開發密鑰

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


b、加入所需權限

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


c、佈局文件里加入地圖控件


<com.baidu.mapapi.map.MapView
android:id="@+id/id_bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />


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這篇也極其清楚~~~~



源代碼點擊下載


百度地圖相關博客視頻版本號已經上線:Android中百度地圖的使用期待您的支持。



博主部分視頻已經上線,假設你不喜歡枯燥的文本,請猛戳(初錄,期待您的支持):

一、Android 本身定義控件實戰 電商活動中的刮刮卡

二、Android本身定義控件實戰  打造Android流式佈局和熱門標籤

三、Android智能機器人「小慕」的實現

四、高仿QQ5.0側滑

五、高仿微信5.2.1主界面及消息提醒

相關文章
相關標籤/搜索