AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

时间:2023-03-09 04:29:15
AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

(一)注册并获取AK码:

step1:找到keytool工具,并转移到.android目录下。(前提是已经安装了java jre/jdk)

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 为避免有些情况,在控制台无法找到keytool,可以把与keytool同级的所有文件统统复制粘贴到 ../.android 目录下。

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 step2:快捷键win+R,输入cmd进入控制台 或者 直接使用android studio等其他环境的自带Terminal,完成下面指令:

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 step3:到官网注册申请Key,申请Key入口:http://lbsyun.baidu.com/apiconsole/key

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 step4:获取包名

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 回到step3即可完成申请,然后复制Key:

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

(二)下载SDK包,并解压:

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

(三)配置项目文件:

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 对于加入jar文件,右键-选择Add As Library,导入到工程中。同时在build.gradle中会生成工程所依赖的对应的jar文件说明

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 再到AndroidManifest.xml文件中添加下列代码(添加在appliction之外,如添加到appliction内部,会导致无法访问网络):

     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

      <!-- 这个权限用于进行网络定位 -->

      <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.GET_TASKS" />

      //鉴权所需该权限获取进程列表

      <uses-permission android:name="android.permission.CAMERA" />

      //使用步行AR导航,配置Camera权限

最后配置AK(在application标签内添加):

 <meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="你的AK"/>

(四)写最简单的地图程序

布局文件

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"> <com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
/> </androidx.constraintlayout.widget.ConstraintLayout>

对应的java文件

 package com.example.baidumap01;

 import androidx.appcompat.app.AppCompatActivity;

 import android.os.Bundle;

 import com.baidu.mapapi.SDKInitializer;

 import com.baidu.mapapi.map.MapView;

 public class MainActivity extends AppCompatActivity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mMapView = findViewById(R.id.bmapView);
}
@Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); }
}

执行结果:

AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用