Android引用SDK包实现高德地图展示

news2025/4/7 7:46:03

一、准备工作

  • 注册高德地图开放平台


            注册过程我就不多说了,挺简单的,需要登录,然后注册成为开发者,还需要支付宝认证、手机号码验证、邮箱验证挺多的,但是速度很快。基本上随时验证随时注册成功。

  • 新建应用


  • 新建Android项目


    项目建好了我们现在来继续完成搞得地图中的配置。
  • 应用配置


    安全码就是一个签名,我们能够在系统目录-->用户目录-->.android-->debug.keystore

    找到这个以后,我们Win+R打开运行,输入cmd打开终端窗口:

    在终端中输入命令where keytool,查看一下自己的keytool有没有在环境变量中配置好,没有配置的话,先去环境变量中将keytool配置好,这里如何配置我就不讲了,可以自行搜索:

    我们进入到存放debug.krystore的文件夹目录下:

    在命令行中输入keytool -list -v -keystore debug.keystore:

    输入:android,一定要是小写的

    复制SHA1后面的指纹,粘贴到高德控制台

    还剩下PackageName:




    ok,目前我们关于高德这边的已经配置好了,接下来我们去下载SDK包
  • 下载SDK包

      

        下载完成后将其解压,分别复制:


到这儿,我们的准备工作已经全部完成了。


二、配置gradle.build

打开libs文件夹选中jar包---->右键---->Add as Library...

 等待gradle依赖库更新如出现下图表明已经构建成功:


三、编写地图布局

1.编写地图布局


 

<com.amap.api.maps.MapView
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
</com.amap.api.maps.MapView>

<Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="进入地图"
     android:onClick="GotoMap"
     tools:ignore="MissingConstraints" />

2.声明权限

<!--允许程序打开网络套接字-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--允许程序设置内置sd卡的写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许程序获取网络状态-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--允许程序访问WiFi网络信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允许程序读写手机状态和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <!--用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!--用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <!--用于申请调用A-GPS模块-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>

3.设置高德key


4.设置高德地图SDK隐私合规

注意:这里非常重要,我在这里踩过大坑,按照以往经验是不需要设置这些的,甚至整个开发步骤也并非如此,现在的开发步骤是最新的高德地图官方指导,步骤简化了,但是开发过程涉及用户隐私部分的控制被强调了,因此如果步写这两段代码,在整个项目开发完成以后展现出来的可能是白屏,地图无法显示出来哦  o(O_O)o······

//设置高德地图SDK隐私合规
MapsInitializer.updatePrivacyAgree(this,true);
MapsInitializer.updatePrivacyShow(this,true,true);

5.获取地图控件

private MapView mapView;
private AMap aMap;

//获取地图控件引用
mapView = (MapView) findViewById(R.id.map);
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
mapView.onCreate(savedInstanceState);

 6.初始化地图控制器

//初始化地图控制器对象
if (aMap == null) {
      aMap = mapView.getMap();
}

@Override
protected void onDestroy() {
     super.onDestroy();
     //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
     mapView.onDestroy();
}
@Override
protected void onResume() {
     super.onResume();
     //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
     mapView.onResume();
}
@Override
     protected void onPause() {
     super.onPause();
     //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
     mapView.onPause();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
     super.onSaveInstanceState(outState);
     //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
     mapView.onSaveInstanceState(outState);
}

7.显示定位蓝点

MyLocationStyle myLocationStyle;
myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。
myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。
myLocationStyle.showMyLocation(true);//设置是否显示定位小蓝点,用于满足只想使用定位,不想使用定位小蓝点的场景,设置false以后图面上不再有定位蓝点的概念,但是会持续回调位置信息。
aMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style
aMap.getUiSettings().setMyLocationButtonEnabled(true);//设置默认定位按钮是否显示,非必需设置
myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE);//连续定位、且将视角移动到地图中心点,地图依照设备方向旋转,定位点会跟随设备移动。(1秒1次定位)
aMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。

        至此,功成!!!!! 

四、成果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1297664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# | 对比不同种类的锁

文章目录 C# 对比不同种类的锁异同点对比表使用方法lock语句Monitor类Mutex类Semaphore类ReaderWriterLock类 结语 C# 对比不同种类的锁 Hi&#xff0c;在C#编程中&#xff0c;想要保护共享资源&#xff0c;通常会用到各种类型的锁。今天我们就来一起看看C#中不同种类的锁&…

UE4.27-UE5.1设置打包Android环境

打包Android配置文件 1. 配置打包Android的SDK需求文件位于下面文件中&#xff1a; 2. 指定了对应的SDK环境变量名字以及NDK需求等&#xff1a; UE4.27-UE5.1--脚本自动配置 安装前提 1. 务必关闭虚幻编辑器和Epic Games Launcher&#xff0c;以确保NDK组件的安装或引擎环境…

ubuntu 20.04.6 server 服务器 下载与安装

下载地址&#xff1a;https://releases.ubuntu.com/20.04.6/ubuntu-20.04.6-live-server-amd64.iso 第一步&#xff1a; 准备U盘&#xff0c;使用软碟通将下载好的镜像写入到U盘中 软碟通网址&#xff1a;https://www.cn.ultraiso.net/xiazai.html 点击&#xff1a;文件 ->…

unity 2d 入门 飞翔小鸟 Cinemachine 记录分数(十二)

1、创建文本 右键->create->ui->leagcy->text 2、设置字体 3、设置默认值和数字 4、当切换分辨率&#xff0c;分数不见问题 拖拽这里调整 调整到如下图 5、编写得分脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; …

MVC、MVP、MVVM模式的区别

前言&#xff1a;这三个表现层框架设计模式是依次进化而形成MVC—>MVP—>MVVM。在以前传统的开发模式当中即MVC模式&#xff0c;前端人员只负责Model&#xff08;数据库&#xff09;、 View&#xff08;视图&#xff09;和 Controller /Presenter/ViewModel&#xff08;控…

Java程序设计实验6 | 集合类

*本文是博主对Java各种实验的再整理与详解&#xff0c;除了代码部分和解析部分&#xff0c;一些题目还增加了拓展部分&#xff08;⭐&#xff09;。拓展部分不是实验报告中原有的内容&#xff0c;而是博主本人自己的补充&#xff0c;以方便大家额外学习、参考。 &#xff08;解…

LeetCode算法题解(单调栈)|LeetCode503. 下一个更大元素 II、LeetCode42. 接雨水

一、LeetCode503. 下一个更大元素 II 题目链接&#xff1a;503. 下一个更大元素 II 题目描述&#xff1a; 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[0] &#xff09;&#xff0c;返回 nums 中每个元素的 下一个更大元素 。 数字 x 的…

【Web渗透】渗透测试简介

基本介绍 渗透测试(Penetration Testing)是一种通过模拟恶意攻击者的技术与手法对目标系统在可控制的范围内进行安全测试和安全评估的过程&#xff0c;其目的是在挖掘当前系统潜在的安全风险点后对系统进行安全升级来提升系统的安全性&#xff0c;并以此来规避被恶意攻击者入侵…

【C语言】操作符详解(二)

目录 移位操作符 左移操作符 右移操作符 位操作符:&、|、^、~ 一道面试题 移位操作符 <<左移操作符 >>右移操作符注:移位…

2023年【R2移动式压力容器充装】考试试卷及R2移动式压力容器充装实操考试视频

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R2移动式压力容器充装考试试卷是安全生产模拟考试一点通生成的&#xff0c;R2移动式压力容器充装证模拟考试题库是根据R2移动式压力容器充装最新版教材汇编出R2移动式压力容器充装仿真模拟考试。2023年【R2移动式压力…

WGCLOUD v3.5.0 新增支持监测交换机的接口状态UP DOWN

WGCLOUD v3.5.0开始 可以监测交换机或SNMP设备的接口状态了&#xff0c;直接上图

浅析以太网接口及串口转以太网技术

浅析以太网接口 以太网相关接口主要包括&#xff1a;MII/RMII/SMII以及GMII/RGMII/SGMII接口。 一、MII接口 MII&#xff08;Media Independent Interface&#xff09;介质无关接口或称为媒体独立接口&#xff0c;它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口和…

《安富莱嵌入式周报》第328期:自主微型机器人,火星探测器发射前失误故障分析,微软推出12周24期免费AI课程,炫酷3D LED点阵设计,MDK5.39发布

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程&#xff1a; 【实战技能】 单步运行源码分析&#xff0c;一期视频整明白FreeRTOS内核源码框架和运行…

使用 iperf 和 iftop 测试网络带宽

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

C# WPF上位机开发(串口界面设计)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 如果只是把上位机看成是纯软件开发&#xff0c;本身不和硬件打交道的话&#xff0c;那么这就把上位机的操作范围给限定死了。事实上&#xff0c;上…

Java基础-JDK的组成

目录 1. JDK的组成2.Java的跨平台、工作原理 1. JDK的组成 JVM&#xff1a;Java虚拟机&#xff0c;真正运行Java程序的地方核心类库&#xff1a;Java自己写好的程序&#xff0c;给程序员自己的程序调用的JRE&#xff1a;Java的运行环境JDK&#xff1a;Java开发工具包 JDK是由J…

LinuxBasicsForHackers笔记 -- 文件系统和存储设备管理

设备目录/dev Linux 有一个特殊的目录&#xff0c;其中包含代表每个连接设备的文件&#xff1a;相应命名的 /dev 目录。 /dev中有很多设备列表。 特别令人感兴趣的是设备 sda1、sda2、sda3、sdb 和 sdb1&#xff0c;它们通常是硬盘驱动器及其分区以及 USB 闪存驱动器及其分区…

嵌入式设备OTA升级的大致过程!

OTA概述 大家好&#xff0c;我是一个软件升级包。这几天呢&#xff0c;我将会进行一次神奇的网络之旅&#xff0c;从开发者的电脑中&#xff0c;一直跑到终端嵌入式设备中。 大家都把我的这个旅游过程叫做 OTA&#xff0c;也就是在线升级。 那么啥叫 OTA 呢&#xff1f;全称…

如何用Qt配置git项目并上传Gitee

1.进入到Qt项目文件夹内&#xff0c;打开 “Git Bash Here” 2.初始化&#xff0c;在“Git Bash Here”中输入 git init 3.加入所有文件&#xff0c;在“Git Bash Here”中输入 git add . (需要注意&#xff0c;git add 后面还有一个点) 4.添加备注&#xff0c;git com…

KUKA机器人在编程时添加需要等待的输入信号的2种方法

KUKA机器人在编程时添加需要等待的输入信号的2种方法 第一种方法:手动输入法 如下图所示,选中某个程序后,点击下方的“打开”, 如下图所示,将光标定位到所需位置,然后按下左上角的“编辑”按钮,此时示教器上会弹出输入键盘, 如下图所示,在键盘上手动输入语句:wait fo…