Android 百度地图 SDK v3.0.0

Posted jzssuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 百度地图 SDK v3.0.0 相关的知识,希望对你有一定的参考价值。

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37729091

近期公司要把百度地图集成的项目中,于是我就研究了一天百度地图的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应用

下载就不多说了,直接点击官网的相关下载即可选择就可,后面我也会贴上源代码。

配置:

第一步:在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中百度地图的使用期待您的支持。



博主部分视频已经上线,假设你不喜欢枯燥的文本,请猛戳(初录,期待您的支持):

1、Android 自己定义控件实战 电商活动中的刮刮卡

2、Android自己定义控件实战  打造Android流式布局和热门标签

3、Android智能机器人“小慕”的实现

4、高仿QQ5.0側滑

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

















































以上是关于Android 百度地图 SDK v3.0.0 的主要内容,如果未能解决你的问题,请参考以下文章

Android 百度地图 SDK v3.0.0

Android 百度地图 SDK v3.0.0 定位与结合方向传感器

什么是百度地图android sdk

百度地图 android sdk 怎么 setZoom

android studio下百度地图sdk的初体验

android使用百度地图SDK获取定位信息