开发工具
Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用android stduio作为自己的开发工具,本套开发指南也是针对android stduio开发环境下进行编写的。
工程配置
方法一:
第一步:在工程里新建libs文件夹,将开发包里的BaiduLBS_AndroidSDK_Lib.aar拷贝到libs根目录下,如果您的工程中没有这个jar包,请自行引入。
并且再build.grralde文件中添加以下依赖
dependencies { compile files('libs/BaiduLBS_AndroidSDK_Lib.aar') }
方法二:
注意:目前Gradle中集成SDK只支持国内版本如果需要Google 渠道版本SDK 请到官网下载一体化包
通过Gradle 集成sdk
1、在Project的build.gradle文件中配置repositories,添加mavenCentral仓库地址
配置如下:
allprojects { repositories { mavenCentral() } }
2、在主工程的build.gradle文件配置dependencies
SDK |
引入依赖 |
地图组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.5.4' |
检索组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.5.4' |
工具组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Util:7.5.4' |
步骑行组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-BWNavi:7.5.4' |
基础定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.3.7' |
全量定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location_All:9.3.7' |
驾车导航组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-Navi:7.5.4' |
驾车导航+步骑行导航 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-AllNavi:7.5.4' |
TTS组件 |
implementation 'com.baidu.lbsyun:NaviTts:3.2.8' |
全景组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Panorama:2.9.0' |
3、主工程的build.gradle文件在Project目录中位置:
以下是全景组件相关依赖的示例, 配置如下:
android { defaultConfig { ndk { // 设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" } } } dependencies { implementation 'com.baidu.lbsyun:BaiduMapSDK_Panorama:2.9.0' }
注意:在gradle依赖时如果同时使用多个组件时,部分组件会产生冲突,在使用时根据自己的项目需求去组合,以下是会产生冲突的组件。
组件 | 依赖 | 备注 |
基础定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8' |
选其一 |
全量定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location_All:9.1.8' | |
地图组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.4.0' |
这些组件中都包含了BaiduMapSDK_Map组件,根据需求选其一 |
步骑行组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-BWNavi:7.4.0' | |
驾车导航组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-Navi:7.4.0' | |
驾车导航+步骑行导航 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-AllNavi:7.4.0' |
开发者若使用proguard混淆项目工程, 需要在混淆配置文件中添加如下代码:
-dontwarn com.baidu.** -keep class com.baidu.**{*;}
显示全景图
百度全景SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度全景数据:
第一步:创建并配置工程(具体方法参见工程配置部分的介绍);
第二步:在Manifest中添加使用权限、Android版本支持和对应的开发密钥;
常用使用权限如下(开发者可根据自身程序需求,添加所需权限):
<uses-permission android:name="android.permission.INTERNET" /> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
配置Activity:
<activity android:name=". PanoramaDemoActivityMain " android:screenOrientation="sensor" android:configChanges="orientation|keyboardHidden"> </activity>
添加屏幕及版本支持:
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true"/> <uses-sdk android:minSdkVersion="8" />
添加对应的开发密钥:
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发密钥"> </meta-data>
第三步:在布局xml文件中添加全景控件,布局文件保存为activity_main.xml:
<com.baidu.lbsapi.panoramaview.PanoramaView android:id="@+id/panorama" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
第四步:创建地图Activity,并import相关类:
import com.baidu.lbsapi.panoramaview.*; import com.baidu.lbsapi.BMapManager; public class PanoramaDemoActivityMain extends Activity{ @Override public void onCreate(Bundle savedInstanceState){ } }
在onCreate方法中增加以下代码(或者:在用户确认同意隐私政策时进行初始化,可参考demo示例)
//context为applicationContext mBMapManager = new BMapManager(context); //设置用户是否同意隐私政策,自v2.9.2版本起增加了隐私合规接口,请务必确保用户同意隐私政策后调用setAgreePrivacy接口 //true,表示用户同意隐私合规政策 //false,表示用户不同意隐私合规政策 mBMapManager.setAgreePrivacy(PanoDemoActivity.this.getApplicationContext(), true); // 设置初始化监听 mBMapManager.init(new MyGeneralListener());
设置MyGeneralListener监听类
// 常用事件监听,用来处理通常的网络错误,授权验证错误等 在监听成功后去设置加载全景 static class MyGeneralListener implements MKGeneralListener { @Override public void onGetPermissionState(int iError) { // 非零值表示key验证未通过 if (iError != 0) { // 授权Key错误: Toast.makeText(PanoDemoApplication.getInstance().getApplicationContext(), "请在AndoridManifest.xml中输入正确的授权Key,并检查您的网络连接是否正常!error: " + iError, Toast.LENGTH_LONG).show(); } else { Toast.makeText(PanoDemoApplication.getInstance().getApplicationContext(), "key认证成功", Toast.LENGTH_LONG).show(); // 初始化成功 设置加载全景 mPanoView.setPanorama("0100220000130817164838355J5"); } } }
因为初始化是耗时操作,因此建议您在进入使用全景前完成隐私模式设置以及初始化,这样在使用全景时加载速度会更快。
第五步:重写以下方法,管理API:
@Override protected void onPause() { super.onPause(); mPanoView.onPause(); } @Override protected void onResume() { super.onResume(); mPanoView.onResume(); } @Override protected void onDestroy() { mPanoView.destroy(); super.onDestroy(); }
完成以上步骤后,运行程序,即可在您的应用中显示如下全景: