Android Google Map单条折线或多条折线

我有一个关于如何管理在Android中向GoogleMap添加折线路径的最佳做法问题,该路径会随着用户的移动而增长。

TLDR版本:最好继续用新的多点线替换以前的点,再加上新的多点线,还是继续添加大量的2点多段线?

在先前的迭代中,我为每个新位置创建了一条新的2点折线,其起点在上一行的末尾,而终点在当前位置。

我意识到我可以为地图创建很多资源,而不仅仅是一个。因此,我研究了如何制作单行并仅向其添加点(这似乎行不通),而且我找不到任何文档说明如何实现这一点。

我目前已着手此解决方案:

private lateinit var polyLine: Polyline
fun updateLocation(location: Location?) {
    location?.let {
        val latLng = LatLng(location!!.latitude,location!!.longitude)
        if (firstLoc) {
            polyLine = googleMap.addPolyline(PolylineOptions().add(latLng))
            googleMap.moveCamera(CameraUpdateFactory.newLatLngzoom(latLng,16F))
            firstLoc = false;
        } else {
            googleMap.animateCamera(CameraUpdateFactory.newLatLngzoom(latLng,16F))
            val newLine = googleMap.addPolyline(PolylineOptions().addAll(polyLine.points).add(latLng).width(10f))
            polyLine.remove()
            polyLine = newLine
        }
    }
}

这允许地图一次只处理一行。我的主要问题是,由于每次都必须在新行上重新创建所有点,因此情况是否更糟? 在我的模拟器和实际设备中运行,看起来还不错。没有闪烁(这很有意义,它是在删除旧行之前添加了新行),并且似乎没有任何滞后。

我当前的计划是继续保持现状,因为它很简单,而且似乎可以正常工作。但是我想确保我所做的工作不会超出我的需要。在这两种情况下,似乎都需要进行一些工作,但是在我看来,这种方式是更好的方法。

nihaihaoma520 回答:Android Google Map单条折线或多条折线

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2530993.html

大家都在问