文章目录
- 百度地图简介
- Android地图SDK
- Android定位SDK
- Android鹰眼轨迹Android SDK (了解)
- Android导航SDK (了解)
- Android HUD SDK (了解)
- Android全景SDK(了解)
- 下面开始配置百度地图环境(AndroidStudio)
- 准备1:SDK下载
- 下面开始正式安装环境。
- 1. 新建工程
- 2. 导包
- 创建本地密钥
- 查询SHA1
- 申请百度密钥
- 打开应用,添加ak
- 添加一个我也不知道是啥的东西
- 添加权限
- 编写布局
- MainActivity
- 链接真机或者安卓版本10的模拟器
前言:
模拟器不要版本太高,容易出很多意料之外的不是BUG的BUG。
这次的配置androidStudio百度地图环境就学到了,吐了,模拟器系统版本android11。
我也是一个刚学习百度地图的学生,被环境搞得一度崩溃,鼓捣了一天,在老师帮助下找到了原因。模拟器系统版本是Android11.同样项目在真机上运行就可以,模拟器就不行。都是泪啊。
原内容是在word文档中,如果觉得网页看博客不舒服,或者觉得太长,排版太丑,可以下载文档本地看,一步一截图的那种。
蓝奏云盘地址:https://yxmiaoyu.lanzous.com/b01btdgxe
https://yxmiaoyu.lanzous.com/b01btdgxe
先放效果图,界面很丑,但是功能还是可以的,
百度地图简介
百度地图API是为开发者免费提供 的一套基于百度地图服务的应用接 口,包括JavaScript API、Web服务 API、Android SDK、iOS SDK、定 位SDK、车联网API、LBS云等多种 开发工具与服务,提供基本地图展 现、搜索、定位、逆/地理编码,适 用于PC端、移动端、路线规划、 LBS云存储与检索等功能服务器等多 种设备,多种操作系统下的地图应 用开发。
使用地图需要先向百度申请,就是key(密钥)
Android地图SDK
基于 Android 4.0及以上版本设备的应用程序接口。
功能
地图 POI检索 地理编码 线路规划 地图覆盖物
定位 离线地图 调启百度地图 周边雷达 LBS云
特色功能 个性化地图 室内图 Android Wear
Android定位SDK
为 Android移动端应用提供的一套简单易 用的LBS定位服务接口,专注于为广大开 发者提供最好的综合定位服务
百度地图Android定位SDK提供GPS,基站,Wi-Fi等 多种定位方式
LBS(全称Location Based Services)可以理解 为移动定位服务
Android鹰眼轨迹Android SDK (了解)
设备轨迹追踪与显示
Android导航SDK (了解)
Android HUD SDK (了解)
夜间投影导航
Android全景SDK(了解)
下面开始配置百度地图环境(AndroidStudio)
准备1:SDK下载
百度地图 Android SDK 开发资源下载平台
http://lbsyun.baidu.com/index.php?title =androidsdk/sdkandev-download
下载后
选择因为是刚学习,功能要求少,所以先选择基础的jar包解压,别的以后在运用。
下面开始正式安装环境。
1. 新建工程
我的工程名字为MyBaiduMap3
(第三次尝试才成功,尴尬😅)
2. 导包
复制6个文件到项目中。
切换project视图,复制粘贴即可。
开始导包,上面解压复制的六个文件中有一个是jar包,单纯复制无法正常使用,需要导入工程才行。
效果
效果
创建本地密钥
用过本地密钥获得SHA1进而向百度申请密钥。
这是两个密钥,前面是你自己搞得,本地的,后面那个是百度给你的,网络的,不一样。
具体过程大家可以百度,比我说的好很多,我就不献丑误导大家了。
大致过程如下
创建本地密钥
使用上面建好的密钥
账号密码都是:12345678
file目录下,在androidStudio最左上角哪里。
输入你创建本地密钥是设置的信息
效果
查询SHA1
windous +r 输入cmd
先找到你生成的本地密匙路径
进入路径
输入 keytool -v -list -keystore xxxx
xxxx是你的本地密钥的名字,全称,我的就是BaiduMapKey.jks
复制SHA1
申请百度密钥
点击确认,在出现的页面中复制AK值;
打开应用,添加ak
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="你的ak" />
添加一个我也不知道是啥的东西
注意位置,别添加错了。
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
添加权限
定位什么的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
解决高版本联网权限
android:usesCleartextTraffic="true">
编写布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
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/mvMap"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
MainActivity
package com.example.mybaidumap;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView;
public class MainActivity extends AppCompatActivity {
//添加地图控件属性
private MapView mvMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化地图服务,必须要在setContentView方法调用之前-------
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件
mvMap = findViewById(R.id.mvMap);
}
@Override
protected void onDestroy() {
super.onDestroy();
//调用地图销毁的方法
mvMap.onDestroy();
Log.i("lww", "onDestroy");
}
@Override
protected void onResume() {
super.onResume();
mvMap.onResume();
Log.i("lww", "onResume");
}
@Override
protected void onPause() {
super.onPause();
mvMap.onPause();
Log.i("lww", "onPause");
}
}
链接真机或者安卓版本10的模拟器
运行,OK了。
完结撒花