地图在很多App中都会用到,最近项目中用到了百度地图的功能,下面我就分享一下在App中加载百度地图的步骤。

1.首先先登录百度地图开放平台,没有的就先注册一个百度账号。

2.登录成功后点击开发文档中的Android SDK板块中的上面点击“立即使用”。

3.点击创建应用,如下图所示

android唤起地图 打开安卓地图_百度地图展示

:1.填写应用名称,2.应用类型选择Android SDK自己勾选需要用到的服务,3.填写包名:(注意是在build.gradle中的applicationId中的包名),4.填写SHA1,如果不知道怎么获取的话请参考:

4.点击提交之后生成安全码,在应用列表中的AK可以复制下来。

5.点击产品下载:如下图所示:

android唤起地图 打开安卓地图_App使用百度地图_02

,选择自己需要的功能下载对应的SDK,然后点击开发包。等待下载中。6.把压缩包解压之后,目录如下所示:

android唤起地图 打开安卓地图_App使用百度地图_03

1.把jar包复制到工程libs中,2.在main这层目录中创建一个文件夹叫jniLibs和java目录同级的,把剩余的装有so库的文件夹全部复制进去。(注:但这样工程并不会自动加载libs下的so文件,需配置so文件的路径为该libs路径,关联所有地图SDK的so文件,即在app文件夹下的bulid.gradle加入代码: jniLibs.srcDir ‘libs’ ,详细代码如下:

sourceSets{
  main{
       jniLibs.srcDir 'libs'  
       //说明so的路径为该libs路径,关联所有地图SDK的so文件
      }
}

7.在build.gradle文件夹中加入:

dependencies{
  compile files('libs/BaiduLBS_Android.jar')
}

8.在清单文件(AndroidManifest)中的application中添加秘钥如下:

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="刚在百度开放平台生成的安全码" />  
</application>

9.添加所需权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
//获取设备网络状态,禁用后无法获取网络状态
<uses-permission android:name="android.permission.INTERNET"/> 
//网络权限,当禁用后,无法进行检索等相关业务
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
//读取设备硬件信息,统计数据
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 
//读取系统信息,包含系统版本等信息,用作统计
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
//获取设备的网络状态,鉴权所需网络代理
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
//允许sd卡写权限,需写入地图数据,禁用后无法显示地图
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
//获取统计数据
<uses-permission android:name="android.permission.CAMERA" />  
//使用步行AR导航,配置Camera权限

10.在布局中引用MapView:

<com.baidu.mapapi.map.MapView  
    android:id="@+id/bmapView"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:clickable="true" />

11.在Application的初始化方法中加入:

//在使用SDK各组件之前初始化context信息,传入ApplicationContext   
        SDKInitializer.initialize(this);
        //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);

12.在Activity中展示地图:

private MapView mMapView;
private BaiduMap mBaiduMap;
mMapView = (MapView) findViewById(R.id.mmap);
mBaiduMap = mMapView.getMap();

这样地图就成功的展示出来了。

13.优化,可以在Activity的各个对应的生命周期方法中调用地图的相同的生命周期方法。比如:

mMapView.onDestroy();  
 mMapView.onResume();  
 mMapView.onPause();

需要用到代码混淆的加入以下代码混淆:

-keep class com.baidu.** {*;}
-keep class mapsdkvi.com.** {*;}    
-dontwarn com.baidu.**

OK,完成以上步骤,运行起来项目就发现可以看到地图展示在手机上了。后面再讲一些对地图的进一步操作。