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里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;
![](https://img-blog.csdn.net/20170227131935615?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzY0MzA4ODY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第二步:在工程属性->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交叉使用。
![](https://img-blog.csdn.net/20170227131950912?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzY0MzA4ODY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170227171410349?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzY0MzA4ODY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
so的配置也可以参考demo给出的目录结构,在app工程路径下,新建libs,并在libs目录下放入对应不同CPU架构的so文件。这样工程并不会自动加载libs下的so,需在gradle编译时,通过加入代码:
jniLibs.srcDir 'libs' 来说明so的路径为该libs路径。
第二步:工程配置还需要把jar包集成到自己的工程中,如图上图所示,放入libs目录下。对于每个jar文件,右键-选择Add
As Library,导入到工程中。对应在build.gradle生成工程所依赖的jar文件说明,如图所示:
![](https://img-blog.csdn.net/20170227132157257?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzY0MzA4ODY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
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
2)添加所需权限
注:定位SDKv3.1版本之后,以下权限已不需要,请取消声明,否则将由于Android
5.0多帐户系统加强权限管理而导致应用安装失败:<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"/>
3)、添加对屏幕的支持 (实时定位)
4)、在Application标签中声明SERVICE组件,每个APP拥有自己单独的定位SERVICE
第三步:在自定义类继承Application应用程序创建时初始化
SDK引用的Context 全局变量
注意:在SDK各功能组件使用之前都需要调用
SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中
第四步:在布局xml文件中添加地图控件;
完成以上步骤后,运行程序,即可在您的应用中显示如下地图:
![](http://lbc.baidu.com/static/cms/images/android_dev2.jpg)
Android
SDK历史版本开发包 (需要的童鞋们可以自行下载):
一、下载百度地图移动版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" />
完成以上步骤后,运行程序,即可在您的应用中显示如下地图:
![](http://lbc.baidu.com/static/cms/images/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 变 更 】 [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] |
相关文章推荐
- android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)
- android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)
- 百度地图移动版API 1.2.2版本(Android)地图偏移的最佳解决办法
- android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)
- 如何使用Google Map API开发Android地图应用
- android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)
- 如何在Android中使用OpenCV(最新版本)
- 百度地图移动版API 1.2.2版本(Android)地图偏移的最佳解决办法
- 使用ArcGIS Server for Flex API 开发包agslib加载天地图2.0版本经纬度地图
- 【如何在Android中使用GoogleMap API】
- 使用百度地图离线JavaScript API加载本地瓦片地图
- 使用Google Map Api在Android平台上开发地图应用1
- 【Android】如何申请Android 地图 API 密钥
- Android版本:使用API进行语音到文本的转换
- Android如何使用API
- android-support-vXXX.jar 支持包(老版本使用新API) (部分新API做成第三方包) 向前兼容,低版本跑新API (提供低版本没有的新API)
- 使用Google Map Api在Android平台上开发地图应用4
- 低版本的android系统如何使用ActionBar
- Android应用开发中如何使用隐藏的API
- Android应用开发中如何使用隐藏API