Android中配置高德地图和定位蓝点 您所在的位置:网站首页 高德地图添加定位点怎么添加不了了 Android中配置高德地图和定位蓝点

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

2024-07-11 20:02| 来源: 网络整理| 查看: 265

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

一.获取key 1.创建应用

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

2.添加key

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

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

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

1.1 获取SHA1码

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

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

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

1.2 获取package名

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

二.android studio配置工程 1. 添加jar包

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

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

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

在这里插入图片描述

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

在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文件中添加地图控件: 2.java文件

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

public class MainActivity extends AppCompatActivity { private MapView amapView; private AMap aMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); amapView = findViewById(R.id.map); amapView.onCreate(savedInstanceState); // 1. 创建地图 } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图 amapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图 amapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制 amapView.onPause(); } @Override protected 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并开启手机定位权限,要重要的就是还要看看有没有在清单文件中设置了下面权限(有时就会弄漏)

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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有