Android Google Maps-动画摄像机循环问题

问题描述

所以我在Google地图上遇到这个问题。我必须将摄像机初始化为某个坐标集,然后,当数据从服务器到达时,添加一些标记并设置动画以包含这些标记。然后,数据将每10秒刷新一次,并且无论它们如何更新,地图都需要设置动画以使标记居中。通常,他们的位置在这10秒钟内会变化10-20米。

问题是,如果在加载地图(override fun onMapReady之后立即将相机移至初始位置,然后在数据输入后将相机动画化为标记,动画将循环播放每10秒刷新一次,便会从地球中心到这些标记

看起来真的很糟糕,就像相机位于标记上居中,然后新标记位置从服务器到达一样,相机切换到一秒钟以缩小地球,然后动画化到更新的标记,依此类推。

这是实现方式:

override fun onMapReady(gmap: GoogleMap) {
        this.googleMap = gmap
        setupMap()
        initMarkers()
        googleMap.moveCamera(
            CameraUpdateFactory.newLatLng(cityLatLng)
        )
}

这是每10秒调用一次的数据刷新:

private fun refreshData() {
        val builder = LatLngBounds.Builder()

        val addresspoint = addressCoordinateSet.second
        val courierA = courierCoordinateSetA.second
        val courierB = courierCoordinateSetB.second
        val courierC = courierCoordinateSetC.second

        builder.include(addresspoint)
        builder.include(courierA)
        builder.include(courierB)
        builder.include(courierC)

        googleMap.animateCamera(
            CameraUpdateFactory.newLatLngBounds(builder.build(),mapPadding)
        )
    }

问题:为什么每次跳出完全缩小地球,然后刷新功能的边界?我该如何解决

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...