您的位置:首页 > 移动开发 > Android开发

Android如何使用最新版本百度地图地图 SDK v4.2.1(一)的API

2017-02-24 17:32 736 查看
本篇通过一个简单的示例一步步介绍如何在Android应用中使用百度地图api。

一、下载百度地图移动版API(Android)开发包

开发者可在百度地图Android
SDK的下载页面下载到最新版的地图SDK,可根据自己的需求下载自定义的Android SDKd的jar和Demo,下载地址为:http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download

二、申请APP Key密钥:

在使用百度地图SDK为您提供的各种LBS能力之前,您需要获取百度地图移动版的开发密钥,该密钥与您的百度账户相关联。因此,您必须先有百度帐户,才能获得开发密钥。并且,该密钥与您创建的过程名称有关,具体流程请参考如下介绍。

Key的申请地址为http://lbsyun.baidu.com/apiconsole/key

注意:

1. 每个Key唯一对应一个APP,如果您的APP修改了包名或者发布的时候打包的签名文件改变了,则改变前后的APP被视为两个APP。因此,多个APP【包括一份代码多个包名打包】需申请多个与之对应的Key;

2. 在同一个工程中同时使用百度地图SDK、定位SDK、导航SDK 和全景SDK的全部或者任何组合,可以共用同一个key;

3. 如果您在Android SDK开发过程中使用了LBS云服务(如LBS云检索功能),则需要为该服务单独申请一个“服务端”类型的key,代码中调用LBS云服务接口时使用此key即可,注意:此key一定要和AndroidManifest.xml中配置API_KEY的key区分开;

4. Android SDK自v2.1.3版本开始采用了全新的Key验证体系,v2.1.3之前的版本不再维护,如果升级到新版本SDK(v2.1.3及之后的版本)时需要在API控制台重新申请key进行替换。

三、配置的环境及创建项目:

1)、Eclipse工程配置方法

第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;



第二步:在工程属性->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-&
f344
gt; clean all .

2)、Android
Studio工程配置方法


第一步:导入百度地图SDK 的jar和so包到项目:在工程app/libs目录下放入从“百度地图开放平台官网API”下载的jar包(注:需要选择jar包右键鼠标进行依赖jar包),在src/main/目录下新建jniLibs目录放入“百度地图开放平台官网API”下载的so包如下图所示,工程会自动加载src目录下的so动态库,,注意jar和so的前3位版本号必须一致,并且保证使用一次下载的文件夹中的两个文件,不能不同功能组件的jar或so交叉使用。





so的配置也可以参考demo给出的目录结构,在app工程路径下,新建libs,并在libs目录下放入对应不同CPU架构的so文件。这样工程并不会自动加载libs下的so,需在gradle编译时,通过加入代码:
jniLibs.srcDir 'libs' 来说明so的路径为该libs路径。
第二步:工程配置还需要把jar包集成到自己的工程中,如图上图所示,放入libs目录下。对于每个jar文件,右键-选择Add
As Library,导入到工程中。对应在build.gradle生成工程所依赖的jar文件说明,如图所示:



jar的配置也可参考eclipse方法,进行以下操作:

1.菜单栏选择 File —>Project Structure。

2.在弹出的Project Structure 对话框中, 选择module, 然后点击 Dependencies 选项卡.点击绿色的加号选择File dependency. 然后选择要添加的jar包即可 完成上边的操作后在app目录下的build.gradle文件中,会有引入的类库。

如有不太懂可以到百度官网搜索:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/buildproject

四、对新创建的项目添加百度地图相关的配置

百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:

第一步:创建并配置工程(具体方法参见工程配置部分的介绍);

第二步:在AndroidManifest中添加开发密钥、所需权限等信息;

(1)在application中添加开发密钥APP Key

<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="您的APP Key" />


2)添加所需权限

<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_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.INTERNET" />
<!-- SD卡读取权限,用户写入离线定位数据 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

<!-- 来电消音 -->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- 摄影机 -->
<uses-permission android:name="android.permission.CAMERA" />


注:定位SDKv3.1版本之后,以下权限已不需要,请取消声明,否则将由于Android
5.0多帐户系统加强权限管理而导致应用安装失败:
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"/>

3)、添加对屏幕的支持 (实时定位) 
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />

4)、在Application标签中声明SERVICE组件,每个APP拥有自己单独的定位SERVICE
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
<intent-filter>
<action android:name="com.baidu.location.service_v2.2" />
</intent-filter>
</service>

第三步:在自定义类继承Application应用程序创建时初始化
SDK引用的Context 全局变量
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
SDKInitializer.initialize(getApplicationContext());




注意:在SDK各功能组件使用之前都需要调用

SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中

第四步:在布局xml文件中添加地图控件;
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />


完成以上步骤后,运行程序,即可在您的应用中显示如下地图:



Android
SDK历史版本开发包 (需要的童鞋们可以自行下载):

v3.0.0版本资源包 

 BaiduMap_AndroidSDK_v3.0.0_All.zip (4.26
MB, 下载次数: 144667) 

v3.1.0版本资源包 

 BaiduMap_AndroidSDK_v3.1.0_All.zip (4.34
MB, 下载次数: 226340) 

v3.1.1版本资源包 

 BaiduMap_AndroidSDK_v3.1.1_All.zip (4.88
MB, 下载次数: 249817) 

v3.2.0版本资源包 

 BaiduMap_AndroidSDK_v3.2.0_All.zip (4.82
MB, 下载次数: 219005) 

v3.3.0版本资源包 

 BaiduMap_AndroidSDK_v3.3.0_All.zip (5.75
MB, 下载次数: 60940) 

v3.4.0版本资源包 

 BaiduMap_AndroidSDK_v3.4.0_All.zip (5.75
MB, 下载次数: 878287) 

v3.5.0版本资源包 

 BaiduMap_AndroidSDK_v3.5.0_All.zip (5.45
MB, 下载次数: 1861) 

v3.6.0版本资源包 

 BaiduMap_AndroidSDK_v3.6.0_All.zip (7.04
MB, 下载次数: 3534) 

v3.7.3版本资源包:http://pan.baidu.com/s/1gfx6Wxl

【3.7.0->3.7.3 变 更 】
[align=left][ 检 索 功 能][/align]
[align=left]为兼容一些行政区边界不连续,行政区边界数据检索接口 List<LatLng> getPolylines() 变更为 List<List<LatLng>> getPolylines()接口,适配边界多个形状区域的情况。[/align]

[align=left]v4.0.0版本资源包:下载[/align]

[align=left]v4.1.1版本资源包:下载[/align]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息