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

本篇通过一个简单的示例一步步介绍如何在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-> 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_dev2.jpg



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 变 更 】
[ 检 索 功 能]
为兼容一些行政区边界不连续,行政区边界数据检索接口 List<LatLng> getPolylines() 变更为 List<List<LatLng>> getPolylines()接口,适配边界多个形状区域的情况。

v4.0.0版本资源包: 下载

v4.1.1版本资源包: 下载


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值