本期的主要目标:
- 掌握百度地图API的使用方法,掌握地图显示,地图定位,POI检索以及路径规划导航。
SDK简介和使用指南
下载需要的SDK 文件
注册和获取私钥
- android studio中打开Terminal 输入
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
-
证书指纹如下
填写注册信息:
在AndroidStudio中进行配置
- 1:开发包拷贝到工程
- 将显示模式由Android调整为Project。
- \BaiduLBS_AndroidSDK_Lib\libs目录中的jar包复制粘贴到app的libs
- 在BaiduLBS_Android.jar右键选择Add As Library…选项,也可以收到在app根目录下的build.gradle文件中添加一句compile files('libs/BaiduLBS_Android.jar')
- 引入.so文件, 在“src/main”目录中新建目录JNIlibs,并将armeabi整个目录(包含.so文件)复制粘贴到JNIlibs目录:
配置manifest文件
- 在Application中添加开发秘钥
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="gfrukh9MhwjOYG77XCbjjGwlykhw55np" />
- 权限配置
<!-- 这个权限用于进行网络定位-->
<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"/>
- 后台每隔一段时间获取定位信息
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
<intent-filter>
<action
android:name="com.baidu.location.service_v2.2">
</action>
</intent-filter>
</service>
设置gradle
在Application启动前初始化SDK
地图显示
- 获取地图控制器
baiduMap = mapView.getMap();
- 设置地图的类型
/**
* 空白背景模式MAP_TYPE_NONE
* 普通地图模式MAP_TYPE_NORMAL
* 卫星图模式MAP_TYPE_SATELLITE
*/
baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
- 生命周期和Activity同步
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
具体代码如下:
- 1: 初始化地图视图
- 2: 定配置位信息
- 3: 定位回调