Android 使用百度地图API来显示地图

http://lbsyun.baidu.com/java

进入百度地图开放平台,登陆百度帐号android

选择应用类型为Android SDKapi

发布版SHA1,和开发板SHA1的获取方法为:安全

找到电脑上的.android路径,通常都在C盘用户目录下,网络

有的配置Android环境变量的话可能在SDK的目录下app

而后打开Android Studio,打开Terminalide

进入到.android目录下布局

输入 keytool -list -v -keystore debug.keystoregradle

密钥库口令不用输入,直接回车ui

会显示证书指纹,里面有SHA1,直接复制就能够

输入SHA1和包名后,会自动生成安全码

而后点击提交,这样咱们就生成了一个密钥

而后在百度地图首页

接下来根据本身的项目需求来勾选相应的功能

点击开发包下载,这就是下载好的开发包

以上就是百度地图API的准备工做

————————————————————————————————————————————————————————

开发步骤:

  • 配置百度地图SDK
  • 布局界面
  • 初始化SDK引用的Context全局变量
  • 管理地图生命周期

 将以前下载的BaiduLBS_AndroidSDK_Lib解压,并将里面libs目录中的两个jar包复制到

Android Studio项目下libs目录下

将libs目录下的jar包添加到库当中

点击ok

同时在build.gradle中会生成工程所依赖的对应的Jar文件说明,代码以下

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

在src目录下的main目录中建立jniLibs目录

而后将百度地图SDK中的lib目录复制到刚刚建立的目录

但有时候这样工程并不会自动加载libs下的so文件,

需配置so文件的路径为该libs路径,关联全部地图SDK的so文件,

即在app文件夹下的bulid.gradle加入代码: jniLibs.srcDir 'libs' ,详细代码以下:

(在bulidTypes {} 结束后添加此段代码)

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

接下来在application中添加开发密钥(AK)

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  
</application>

添加所需权限

<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权限

在MainActivity.java中的代码以下

private MapView mMapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化地图SDK,
        //须要在setContentView(R.layout.activity_main);上面
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        //获取地图控件引用
        mMapView = findViewById(R.id.bmapView);
        //自4.3.0起,百度地图SDK全部接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型. 
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mMapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mMapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mMapView.onDestroy();
        mMapView = null;
    }

注:最好使用真机运行

相关文章
相关标签/搜索