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

这篇博客介绍如何在Android应用中利用Google Map API显示并绘制用户的行程轨迹。首先,通过前台服务实时获取位置信息,然后使用Map的绘制API如Polyline来画线展示轨迹。同时,详细讲解了地图的初始化设置,包括手势控制和缩放等功能的配置。
摘要由CSDN通过智能技术生成

很多的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 = false
            isZoomGesturesEnabled = false
            isRotateGesturesEnabled = false
            isTiltGesturesEnabled = false
            isCompassEnabled = false
            isScrollGesturesEnabled = false
        }

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

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

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值