Android使用高德地图实现运动轨迹绘制和轨迹回放

news2025/1/19 14:37:08

功能的实现完全是使用高德地图进行实现的,先看一下效果图吧!

下图是在绘制轨迹的过程:

下图是在轨迹回放的过程:

 下图是记录运动的时间区间:

其实这个实现起来还是很容易的,总体逻辑就是:定位——记录坐标——绘制轨迹

一、定位


AMapLocation   mlocationClient = new AMapLocationClient(getActivity());
        // 初始化定位参数
        mLocationOption = new AMapLocationClientOption();
        // 设置定位监听
        mlocationClient.setLocationListener(this);
        // 设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors);
        // 设置定位间隔,单位毫秒,默认为2000ms
        mLocationOption.setInterval(5000);
        mLocationOption.setOnceLocation(false);
        //设置是否返回地址信息(默认返回地址信息)
        mLocationOption.setNeedAddress(true);
        // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
        // 注意设置合适的定位时间的间隔(最小间隔支持为1000ms),并且在合适时间调用stopLocation()方法来取消定位请求
        // 在定位结束后,在合适的生命周期调用onDestroy()方法
        // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
        // 启动定位
        mLocationOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.Sport);
 mlocationClient.setLocationOption(mLocationOption);
                    //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效
 mlocationClient.stopLocation();
 mlocationClient.startLocation();

 二、记录坐标

对于记录坐标就需要使用服务端的接口来实现,通过定位之后记录当前的经纬度坐标,然后记录应用户的信息进行保存就可以了;

坐标在记录的时候可以设置定位的时间间隔,假如运动的区间很小的话可以吧定位的时间设置的小一些,这样在绘制轨迹的时候轨迹会平滑一些

、轨迹绘制

 1:初始化线条样式

texTuresList.add(BitmapDescriptorFactory.fromResource(R.drawable.map_alr));
texTuresList.add(BitmapDescriptorFactory.fromResource(R.drawable.custtexture));
texTuresList.add(BitmapDescriptorFactory.fromResource(R.drawable.map_alr_night));
//指定某一段用某个纹理,对应texTuresList的index即可, 四个点对应三段颜色
texIndexList.add(0);
texIndexList.add(2);
texIndexList.add(1);
options = new PolylineOptions();
options.width(30);//设置宽度
//加入对应的颜色,使用setCustomTextureList 即表示使用多纹理;
options.setCustomTextureList(texTuresList);
//设置纹理对应的Index
options.setCustomTextureIndex(texIndexList);

mUiSettings = aMap.getUiSettings();//实例化UiSettings类对象

mUiSettings.setZoomControlsEnabled(false);
mUiSettings.setMyLocationButtonEnabled(false); //显示默认的定位按钮

aMap.setOnMyLocationChangeListener(this);
aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false

 2:通过循环吧坐标设置到地图上

for(int i=0;i<list_result.size();i++){
    options.add(new LatLng(Double.valueOf(list_result.get(i).getAddressZB().split(",")[1]), Double.valueOf(list_result.get(i).getAddressZB().split(",")[0])));
}
if(mLocation!=null){
    options.add(new LatLng(mLocation.getLatitude(),mLocation.getLongitude()));
}

aMap.addPolyline(options);

 3:让轨迹上的图标移动

aMap.moveCamera(CameraUpdateFactory.zoomTo(13));

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

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

相关文章

Meter接口测试使用教程哪里找?

接口测试是测试工程师的必备技能之一&#xff0c;运用JMeter工具一步步实现接口请求&#xff0c;数据参数化&#xff0c;断言等操作&#xff0c;通过常见的企业实际测试场景详解JMeter各项技术使用&#xff0c;最后结合Jenkins持续集成实现企业级小程序接口自动化测试&#xff…

数据结构(6)树形结构——平衡二叉树(JAVA代码实现)

目录 6.1.概述 6.2.AVL树 6.2.1.概述 6.2.2.旋转 1.RR旋转 2.LL旋转 3.LR旋转 4.RL旋转 6.2.3.代码实现 6.1.概述 二叉搜索树存在一个问题&#xff0c;就是树的姿态和数据的插入顺序是有关系的&#xff0c;有时候树会变成某一边的子树高度过高&#xff0c;甚至直接退化成…

百度联合哈尔滨发布城市大模型“冰城-百度·文心”, 助力城市智能化建设

本文已在【飞桨PaddlePaddle】公众号平台发布&#xff0c;详情请戳链接&#xff1a;百度联合哈尔滨发布城市大模型“冰城-百度文心”&#xff0c; 助力城市智能化建设 近日&#xff0c;哈尔滨市人民政府与百度携手&#xff0c;联合发布面向城市领域的行业大模型——冰城-百度文…

PyTorch学习笔记-损失函数与反向传播

1. 损失函数 具有深度学习理论基础的同学对损失函数和反向传播一定不陌生&#xff0c;在此不详细展开理论介绍。损失函数是指用于计算标签值和预测值之间差异的函数&#xff0c;在机器学习过程中&#xff0c;有多种损失函数可供选择&#xff0c;典型的有距离向量&#xff0c;绝…

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具

【Oracle系列4】Oracle 数据库的层次结构 跟mysql不一样&#xff0c;mysql连上后能看到所有库&#xff0c;库下面直接就是表了。 跟pgsql也不一样&#xff0c;pgsql连上后&#xff0c;也是可以看到所有库&#xff0c;库下面是schema&#xff0c;schema下面才是表&#xff08;…

G1D25-蜜汁APEX-RAGA代码运行友友第一次跑模型

一、APEX 英伟达开发的&#xff0c;压缩数据的框架 &#xff08;一&#xff09;安装bug 直接安装 https://blog.csdn.net/weixin_47658790/article/details/115055505 &#xff08;二&#xff09;运行bug 然后运行又出现了bug----------------------- IndexError: tuple …

沉睡者IT - 10个问题说清楚:什么是元宇宙?

欢迎关注沉睡者IT&#xff0c;点上面关注我 ↑ ↑ 人们对于元宇宙的构想十分多元且抽象&#xff0c;这十个问题将抽象的元宇宙具象化&#xff0c;帮助人们更好地理解。 一、什么是元宇宙&#xff1f; 1)元宇宙概念的提出 元宇宙在很长一段时间内仅存在于文学与影视作品中。…

一、spring框架的演变

1.微服务架构的演进过程 1.1 单体架构单机部署 1.运行在tomcat里面&#xff0c;并发量QPS一般在200多个请求左右&#xff0c;同一个jvm进程&#xff0c;直接import就行。 2.不同的功能模块可能只用文件夹区分。 3.缺点&#xff1a;并发量太小&#xff08;如果是电商系…

【pygame游戏】用Python实现一个蔡徐坤大战篮球的小游戏,可还行?【附源码】

Python制作坤坤打篮球小游戏序言准备工作开发环境效果预览开始界面游戏规则结束游戏代码实现序言 话说在前面&#xff0c;我不是小黑子~ 我是超级大黑子&#x1f60f; 表弟大周末的跑来我家&#xff0c;没事干天天骚扰我&#xff0c;搞得我都不能跟小姐姐好好聊天了&#xf…

【813. 最大平均值和的分组】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个相邻的非空子数组 。 分数 由每个子数组内的平均值的总和构成。 注意我们必须使用 nums 数组中的每一个数进行分组&#xff0c;…

3DMAX森林树木植物插Forest Pack Pro 预设库安装教程

Forest Pack是世界上最流行的3dMax森林树木植物散布插件。它提供了一个完整的解决方案来创建广阔的物体区域&#xff0c;从树木和植物到建筑物、人群、骨料、地面覆盖物、岩石等等。模拟大型场景总是非常困难&#xff0c;但这个插件可以帮助您以较少的难度进行模拟。 Forest P…

最近面试 Java 开发的感受:就以平时项目经验面试,通过估计很难

在上周&#xff0c;我密集面试了若干位 Java 后端的候选人&#xff0c;工作经验在 3 到 5 年间。我的标准其实不复杂&#xff1a;第一能干活&#xff0c;第二 Java 基础要好&#xff0c;第三最好熟悉些分布式框架&#xff0c;我相信其它公司招初级开发时&#xff0c;应该也照着…

CountDownLatch

目录 1 前言 2 常用方法 3 示例 4 解析 4.1 countDown() 4.2 await() 源码 1 前言 countDownLatch&#xff08; 门阀、 计数器&#xff09;是多线程控制的一种工具 &#xff0c;它用来协调各个线程之间的同步。 countDownLatch相当于一个计数器&#xff0c;能够使…

51单片机学习笔记3 C51数据类型及最小系统

51单片机学习笔记3 C51数据类型一、 C51数据类型1. 基本类型2. C51扩充数据类型3. C51运算量&#xff08;1&#xff09;常量&#xff08;2&#xff09;变量&#xff08;3&#xff09;位运算符&#xff08;4&#xff09;逗号运算符4. 数组二、51 最小系统构成1. 晶振电路2. 复位…

EIGRP_协议知识点

EIGRP协议一、汇总1.配置(接口下)2.修改AD值(全局下)二、Stub特性2.1实验配置:三、路由泄露四、控制路由更新工具-Distribute-list(分发列表)一、汇总 EIGRP的自动汇总&#xff1a;EIGRP自动汇总只能汇总本地产生的路由&#xff0c;不能汇总从邻居学习的路由&#xff0c;会自动…

聊聊雪花算法?

随便聊聊 哈喽&#xff0c;大家好&#xff0c;最近换了份工作&#xff0c;虽然后端技术栈是老了点&#xff0c;但是呢&#xff0c;这边的前端技术确是现在市面上最新的那一套技术&#xff1a;Vue3ViteTSXPinaElement-PlusNativeUI。我本人主要是学后端的&#xff0c;确被拉去做…

2022王道OS 1.2 操作系统的发展与分类

2022 王道OS 操作系统的发展与分类 文章目录2022 王道OS 操作系统的发展与分类知识总览OS的发展与分类手工操作阶段批处理阶段--单道批处理系统批处理阶段--多道批处理系统分时操作系统实时操作系统其他几种OS知识回顾与重要考点文章目录2022 王道OS 操作系统的发展与分类知识总…

【Android App】勾勒出三维立方体和球体以及它们的转动图形讲解及实战(附源码和演示视频 超详细)

需要源码或运行有问题请点赞关注收藏后评论区留言~~~ 一、轮廓勾勒 勾勒三维物体轮廓线条的步骤如下&#xff1a; &#xff08;1&#xff09;调用glEnableClientState方法启用顶点开关 &#xff08;2&#xff09;调用glVertexPointer方法指定三维物体的顶点坐标集合 &#…

单体分层应用架构剖析

分层单体架构风格是分层思想在单体架构中的应用&#xff0c;其关注于技术视角的职责分层。同时&#xff0c;基于不同层变化速率的不同&#xff0c;在一定程度上控制变化在系统内的传播&#xff0c;有助于提升系统的稳定性。但这种技术视角而非业务视角的关注点隔离&#xff0c;…

Unity-2D游戏-打击感与敌人AI

前言 最近快搞毕设了&#xff0c;学一些Unity2D游戏开发的知识&#xff0c;发现b站宝藏up主奥飒姆Awesome的两个蛮不错的教程&#xff0c;我想简单记录一下它这个游戏设计的方法。 我不一点点实现了&#xff0c;就是分析一下大致框架&#xff08;方便以后套用&#xff09; 资…