Android中在google Map 上绘制历史路径

很多的App都会有这种需求,需要把自己的轨迹绘制在地图上来加标一段行踪,使得自己的行程展现出来,通过地图的展示,自己的行程也就一目了然了。

这里利用Google Map 把自己的行程展现出来,注意这里用到了上一章的基础,还不熟悉的可以先看看上一章的注意事项。

行程轨迹

首先我们需要有一个前台的服务来实时的获取我们的地理位置信息,在Android中,可以使用FusedLocationProviderClientFusedLocationProviderClient 通过设置回调的时间,可以根据时间的间隔不断地把地理位置信息,回调给我们。

val locationRequest = LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY,LOCATION_UPDATE_INTERVAL).setWaitForAccurateLocation(false).setMinUpdateIntervalMillis(LOCATION_FASTEST_UPDATE_INTERVAL).build()fusedLocationProviderClient.requestLocationUpdates(locationRequest,locationCallback,Looper.getMainLooper())

setMinUpdateIntervalMillis 用来设置间隔的时间,locationCallback 用来设置回传实时的地理位置信息。

fusedLocationProviderClient 放到某一个服务中,不停地获取实时的地理位置。

locationCallback 中把实时的地理位置不断地post出来,谁观察到地理位置,就可以把数据展示出来。

locationList.postValue(this)
绘制

Google Map 中已经提供了很多的绘制Api,只要熟悉如何使用这些Api,画图那就不是什么大事情了。

比如用来画线的,可以使用如下的函数:

private fun drawPolyline() {val polyline = map.addPolyline(PolylineOptions().apply {width(10f)color(Color.BLUE)jointType(JointType.ROUND)startCap(ButtCap())endCap(ButtCap())addAll(locationList)})}

locationList 给出了地理位置坐标,把地理位置坐标放到map里,Google Map 根据地理位置信息绘制出轨迹图。

在这里插入图片描述

地图的设置

当Google Map 初始化完成准备好以后,会调用onMapReady,在这个函数中会给出地图的实例,可以对这个实例进行相应的设置。

map.uiSettings.apply {isZoomControlsEnabled = falseisZoomGesturesEnabled = falseisRotateGesturesEnabled = falseisTiltGesturesEnabled = falseisCompassEnabled = falseisScrollGesturesEnabled = false}

如是否允许手势,是否可以放大,这里都是可以进行设置的,更多的设置和谷歌地图的使用可以参考相应的文档。

如果需要本文的代码,可以私信我。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python之pyqt专栏8-信号与槽4

信号重载 在上一篇python之pyqt专栏7-信号与槽3-CSDN博客,我们知道在自定义信号时,可以设定信号参数数据类型。pyqt还支持信号重载。 信号定义 sendText pyqtSignal([int],[str]) 代码意思是定义重载信号sendText,槽函数的参数可以是int数…

为什么要在项目中使用TypeScript?

随着越来越多的开发人员采用TypeScript,人们需要了解在下一个项目中应该使用TypeScript的原因。尽管它在早期应用中遇到了一些阻力,但在过去十年,它迅速成为一种广泛使用的编程语言。 以下介绍如何使用TypeScript以及它给开发人员带来的一些好…

太极拳的招式有哪些?

太极拳的招式有很多,下面列举一些常见的太极拳招式: 起势:太极拳的第一个动作,从预备姿势开始,身体慢慢放松,重心移至左腿,然后慢慢屈膝,上体屈从向前,双臂自然下垂。 野…

【傻瓜级JS-DLL-WINCC-PLC交互】8.DLL读写WINCC连接的PLC数据

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

Gateway(拦截器/路由)入门

目录 1、概述2、实现3、网关模块3.1 AbstractGatewayFilterFactory类3.2 AbstractGatewayFilterFactory和 GlobalFilter区别 4、服务模块5、服务之间请求传递请求头6、 代码结构优化 1、概述 微服务框架中网关提供统一的路由方式,并且基于 Filter 链的方式提供了网…

每天一点python——day81

#每天一点Python——81 #递归函数: 递归函数: 一个函数在该函数体内调用了该函数本身,这个函数称为递归函数 【释:我自己调用自己的函数】 递归函数的组成部分: 递归调用与递归终止条件。 【一定有一个跳出循环的终止条…

JDK版本降级,如何重新编译打包项目

目前大部分人使用jdk1.8以及更高版本的jdk,在开发过程中也使用了很多jdk1.8的新特性,但或许还存在一些使用jdk低版本的客户,这时如果我们提供的代码涉及必须高版本jdk才能运行的话,那代码就必须降级,客户才能使用&…

【IDEA开发工具的常用设置和快捷键及Debug调试】

🌠作者:TheMythWS. 🎇座右铭:不走心的努力都是在敷衍自己,让自己所做的选择,熠熠发光。 目录 常用设置篇 【1】进入设置 【2】设置主题 【3】编辑区的字体变大或者变小 【4】鼠标悬浮在代码上有提示…

我的创作纪念日--成为创作者的 第1825天(5年) 啦

醉颜凉 ,不知不觉今天已经是你成为创作者的 第1825天(5年) 啦。 机缘 1、作为一个创作者,我最初成为创作者的初心是出于对技术的热爱和对分享的渴望。我希望通过创作,将自己在实战项目中的经验分享给大家,…

如何写好开发信标题?推荐的营销邮件主题?

打开率高的开发信标题有哪些?怎么写吸引人邮件标题? 开发信标题是您的邮件首次与受众接触的部分,因此,它必须引起他们的兴趣,激发他们打开邮件的欲望。蜂邮EDM将讨论如何写好开发信标题,以及一些成功的开发…

创业者如何在居家办公和固定办公场地办公中权衡利弊,选择合适的

创业者如何选择办公方式,可能要根据自己的创业项目、团队规模、资金情况、行业特点等多方面因素来考虑。一般来说,居家办公和固定办公场地各有优缺点,没有绝对的好坏,只有适合不适合。我为大家总结了一些相关的信息,希…

Elk+Filebeat+Kafka实现日志收集

ElkFilebeatKafka实现日志收集(本机nginx) 部署Zookeeper 1.实验组件 #准备3台服务器做Zookeeper集群 20.0.0.10 20.0.0.20 20.0.0.30 2.安装前准备 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0#安装JDK yum install -y java-1.8.0-o…