当前位置:首页 > 资讯 > 正文

百度地图开发(安卓)

目录

一.获取开发密钥(AK)

二.在项目中集成BaiduMap SDK

 三.显示地图

四.显示定位


1.百度搜索百度地图开发者,进入后选择登陆,没有百度账号则先进行注册:

百度地图开放平台 | 百度地图API SDK | 地图开发

2.登录后进入API控制台,选择图中“应用管理”下我的应用:

百度地图开发(安卓)

3.点击“创建应用”开始申请开发密钥,如下图:

百度地图开发(安卓)

4.如下图所示,输入应用名称"Task",选择应用类型“Android SDK”,并勾选如下启用服务

百度地图开发(安卓)

5.接着要获取SHA1和包名(以下是我获得之后的结果):

百度地图开发(安卓)

 获取过程如下:

A.获取SHA1: 进入Terminal工具,如下图所示

百度地图开发(安卓)

找到自己下载的安卓位置:

百度地图开发(安卓)

 然后在Terminal转换路径到keytool所在文件下:

百度地图开发(安卓)

然后在c盘中找到.android文件(一般在用户文件下面),找到keystore所在路径,路径:

百度地图开发(安卓)

在AS中输入命令行和密码,获取SHA1

(        命令行:keytool -list -v -keystore +debug.keystore的路径;

           密码:原始密码一般为android

)如图所示:

百度地图开发(安卓)

-------获取包名 在app目录下的build.gradle文件中找到applicationId,并确保其值与AndroidManifest.xml中定义的package相同,即可获取包名,如图所示:

百度地图开发(安卓)

(6)在网页中填入上述信息后提交,即可获得AK

1.下载开发包(选择如下):

百度地图开发(安卓)

 2.将开发包拷贝至工程(截图以普通地图服务的开发包为例,步骑行导航的开发包同理) (1)添加jar文件 打开解压后的开发包文件夹,找到BaiduLBS_Android.jar文件将其拷贝至工程的app/libs目录下,同时在下载的开发包中拷贝需要的CPU架构对应的so文件文件夹到app/libs目录下,如图:

百度地图开发(安卓)

 (2)在app目录下的build.gradle文件中android块中配置sourceSets标签,如果没有使用该标签则新增,详细配置代码如下:

百度地图开发(安卓)

(3)往工程中添加jar文件:在工程配置中需要将前面添加的jar文件集成到我们的工程中。 在libs目录下,选中每一个jar文件(此处只有一个BaiduLbs_Android.jar)右键,选择Add As Library…此时会发现在app目录的build.gradle的dependencies块中生成了工程所依赖的jar文件的对应说明,如下所示:

百度地图开发(安卓)

 百度地图开发(安卓)

1.配置AndroidManifest.xml文件:

(1)在application中加入如下代码配置开发密钥(AK):

 

(2)在application外部添加如下权限声明:

 

2.在activity_main.xml中添加地图容器

 

3.地图初始化:

在SDK各功能组件使用之前都需要调用“SDKInitializer.initialize(getApplicationContext())”,因此建议在应用创建时初始化SDK引用的Context为全局变量。新建一个自定义的Application,在其onCreate方法中完成SDK的初始化。代码如下:

 

并在AndroidManifest.xml中声明:

百度地图开发(安卓)

4.创建地图Activity,管理MapView生命周期

 

 结果:

百度地图开发(安卓)

1.配置AndroidManifest.xml文件(与上面类似,加上权限):

 

2.在Application标签中声明定位的service组件:

 

3.开启地图的定位图层:

 

4.我们通过继承抽象类BDAbstractListener并重写其onReceieveLocation方法来获取定位数据,并将其传给MapView。

 

5.通过LocationClient发起定位:

 

6.正确管理各部分的生命周期:

 

7.在这个过程中会发现结果仍然显示在北京,缩小地图之后,才能找到定位的地点。

因此在第一次定位的时候要在显示定位代码中加入第一次定位动态移动到定位点的代码。在MyLocationListener中的onReceiveLocation方法中添加下面的代码,其中isFirstLocation为布尔型:

 

8.结果(在虚拟机上不准确,真机正确):

百度地图开发(安卓)

百度地图开发(安卓)

9.代码

在这里遇到一个问题,无法上传到github上

百度地图开发(安卓)

解决的博客:

我的github地址: