本文介绍: 很多的App都会有这种需求需要把自己的轨迹绘制地图上来加标一段行踪,使得自己的行程展现出来,通过地图展示,自己的行程也就一目了然了。这里利用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 = false
            isZoomGesturesEnabled = false
            isRotateGesturesEnabled = false
            isTiltGesturesEnabled = false
            isCompassEnabled = false
            isScrollGesturesEnabled = false
        }

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

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

原文地址:https://blog.csdn.net/weixin_40425640/article/details/134713165

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12723.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注