Android中配置高德地图和定位蓝点

news/2024/12/29 5:23:19/

最近一直在学习android,学到地图这里,遇到的坑也不少,所以就把它分享出来,一和大家一起学习,二为以后写项目看,

一.获取key

1.创建应用

首先,您得上(高德地图开放平台官网)注册一个账号,当然,如果有了就直接登录。
其次,就是在应用管理中,创建一个应用,当然如果您之前已经创建了就跳过(下面我是已经创建过
在这里插入图片描述
在这里插入图片描述

2.添加key

在创建的应用上点击"添加"按钮,在弹出的对话框中,依次输入应用名名称,选择绑定的服务为“Android平台SDK”,输入发布版安全码 SHA1、调试版安全码 SHA1(可忽略)、以及 Package,如下图所示:

需要注意的是: 1个KEY只能用于一个应用(多渠道安装包属于多个应用),1个Key在多个应用上使用会出现服务调用失败。
在这里插入图片描述

在这里插入图片描述
然后勾选协议,点击“提交”,完成 Key 的申请,此时您可以在所创建的应用下面看到刚申请的 Key 了。
在这里插入图片描述
然后到这里,肯定有人问,如何去获取SHA1和包名呢,下面就来说下如何获取:

1.1 获取SHA1码

下面方法是通过Android Studio获取SHA1的

  1. 第一步:使用 WIN+R 快捷键,并输入cmd打开控制台工具
    在这里插入图片描述

  2. 第二步:输入命令:keytool -v -list -keystore keystore文件路径。
    在这里插入图片描述输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 Sha1 值,如下图所示:
    在这里插入图片描述

1.2 获取package名

直接在android项目的build.gradle下面的
在这里插入图片描述

二.android studio配置工程

1. 添加jar包

在Anroid地图SDK相关下载中下载AAR包
在这里插入图片描述

将下载的地图 SDK 的 jar包复制到工程的 libs 目录下
在这里插入图片描述

2.添加so库
  1. 首先下载so库

在这里插入图片描述

  1. 在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。如图所示:
    在这里插入图片描述

  2. 在build.gradle中配置
    3.1. 在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址
    Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加(我这个是自动生成的,不需再配置)
    在这里插入图片描述

    3.2.主工程的build.gradle文件在Project目录中位置:
    在这里插入图片描述

三.创建地图

在创建地图之前,还需配置一些权限(在清单文件中配置)

1. 权限声明

在这里插入图片描述

2. 设置高德key

在application里面设置
在这里插入图片描述

3.创建地图

MapView 是 AndroidView 类的一个子类, 用于在 Android View 中放置地图。 MapView 是地图容器。用 MapView 加载地图的方法与 Android 提供的其他 View 一样,具体的使用步骤如下:

1. 首先在布局xml文件中添加地图控件:
<LinearLayout 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.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>
2.java文件

amapView = findViewById(R.id.map); //获取地图控件
amapView.onCreate(savedInstanceState); // 通过onCreate( )方法创建地图

public class MainActivity extends AppCompatActivity {private MapView amapView;private AMap aMap;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);amapView = findViewById(R.id.map);amapView.onCreate(savedInstanceState);  // 1. 创建地图}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图amapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图amapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制amapView.onPause();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态amapView.onSaveInstanceState(outState);}
}

到这一步时,地图是可以显示出来了,只是它不拥有其他比如定位,缩放等功能,如下:
在这里插入图片描述

四.定位蓝点(在Activity生命周期onCreate()中执行)

AMap 类是地图的控制器类,用来操作地图。它所承载的工作包括:地图图层切换(如卫星图、黑夜地图)、改变地图状态(地图旋转角度、俯仰角、中心点坐标和缩放级别)、添加点标记(Marker)、绘制几何图形(Polyline、Polygon、Circle)、各类事件监听(点击、手势等)等,AMap 是地图 SDK 最重要的核心类,诸多操作都依赖它完成。

1.初始话AMap对象

先创建个全局对象

 private AMap aMap;

然后判断其是否为null,是的就执行下面这段代码

        if(aMap == null){aMap = amapView.getMap();}
2. 实现定位蓝点
 // 3.实现定位蓝点(显示当前位置)MyLocationStyle myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类//连续定位模式、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。// (1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);myLocationStyle.interval(2000); //连续定位模式下的定位间隔(只在连续模式下生效)aMap.setMyLocationStyle(myLocationStyle);aMap.getUiSettings().setMyLocationButtonEnabled(true);//设置默认定位按钮是否显示,非必需设置。aMap.setMyLocationEnabled(true);//true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。

通过上面的简单配置后,得到的效果如下所示:在这里插入图片描述
但还要注意点:到这步的时候得检查手机有没有打开GPS功能,还要通过手机设置找到这个app并开启手机定位权限,要重要的就是还要看看有没有在清单文件中设置了下面权限(有时就会弄漏)

  <!--    获取GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

五.更多功能会在后续添加


http://www.ppmy.cn/news/907332.html

相关文章

Android BLE开发 百度地图 大神博客简书传送门合集

一、踩坑 踩坑1&#xff1a; 问题Q&#xff1a;方法报错、标红、Android Studio提示必须添加权限检查。 解决S&#xff1a;不用管&#xff0c;一样能够正常运行&#xff01; 踩坑2&#xff1a; 问题Q&#xff1a;权限报错、标红、提示必须是系统应用才可以使用。 解决S&#…

1.stm32开发板:基于温湿度传感器获取数据,并将数据打印在开发板的数码管进行显示

1.应用层代码 #include "head.h" #include "user.h" /*******根据温湿度传感器获取数据并将数据在数码管上显示精度在两位数*********/ int main(int argc, char const *argv[]) {int tem, hum;float tem_h, hum_h;int number -1;// 用于将温湿度的数据读…

Android 百度地图开发--- 导航功能输入起始地址实现导航,地址解析与反解析的使用

转载请注明出处http://blog.csdn.net/u012324136/article/details/50826147 本人主要介绍安卓开发使用百度地图实现导航功能&#xff0c;用户可以输入当前位置和目的地&#xff0c;实现导航。 首先&#xff0c;我们需要当用户输入具体接到地址后将具体街道的地址转化为经度和…

百度地图怎么查看全景(教程)

手机地图导航可以帮助用户快速定位到目的地。还可以查看周边商圈。出行非常方便。使用百度地图还可以精细到查看全景视角。遇到小区、体育场馆。还可以切换查看内景。要如何开启全景图呢&#xff1f; 百度地图查看全景怎么做 1.进入百度地图首页面。点击右侧图层按钮。更改地…

Win10快捷键大全快速开发切换操作之道

目录 第一部分&#xff1a;Windows10系统快捷键 复制、粘贴和其他常规快捷键 Windows徽标键快捷键 命令提示符快捷键 对话框快捷键 文件资源管理器快捷键 虚拟桌面快捷键 任务栏快捷键 《设置》快捷键 第二部分&#xff1a;Windows10应用的快捷键 《Microsoft Edge浏…

Android AVD Manager - 安卓虚拟机的设置

AVD Manager : Android Virtual Device Manager QVGA :240x320 quarter of VGA HVGA :320x480 Half of VGA VGA :480x640 WVGA :480x800 Wide VGA FWVGA:480x854 AVD设置技巧 实际AVD设置说明 iu手动安装下硬件加速: SDK Manager - Extra: SDK 目录下&#xff1a; silent_…

android drawable几个文件夹对应的分辨率(屏幕适配)

大佬详细文章&#xff08;讲解屏幕适配&#xff09;&#xff1a; https://blog.csdn.net/love_xsq/article/details/43266863#commentBox ldpi&#xff1a;240x320 mdpi&#xff1a;320x480 hdpi&#xff1a;480x800、480x854 xhdpi&#xff1a;至少960*720 xxhdpi&#xff1a…

Docker安装卸载

说明&#xff1a;在大型的项目开发中&#xff0c;各种开发软件所需的环境各不相同&#xff0c;所需的依赖也时常发生冲突。而Docker将开发软件&#xff0c;和所需的依赖、函数库、配置打包成一个可移植的镜像文件&#xff0c;在Docker的容器中运行&#xff0c;使用沙箱机制&…