我有一个很长的,可变的Marker
和Polyline
来自我的服务器的列表。在某些情况下,Marker
必须更改其图标,而Polyline
必须更改其颜色。
我的对象有id,所以我应该能够知道我必须更新哪个折线/标记。但是,标记和折线没有setId()
或getId()
方法,并且在服务器请求时会动态更新(和添加)。
我曾考虑使用HashMap<Integer, Marker>
和HashMap<Integer, Polyline>
来了解我应删除哪些项目然后添加。我想到了这个:
HashMap
。Marker.remove()
或Polyline.remove()
,然后从HashMap
hashMap.get(id)
无论如何都应该返回null,因此我在Polyline
中绘制Marker
/ GoogleMap
将项目添加到HashMap
。< / LI>
但在我开始实现之前,我想知道是否有任何方法可以做到这一点,而不涉及使用巨型HashMap
。
有没有其他方法可以在不使用HashMap
,SparseArray
或类似内容的情况下实现此行为?
答案 0 :(得分:1)
我曾经使用过谷歌地图API for Android,但我很确定,在检查了与之相关的文档之后,应该可以添加一些监听器。
您能否提供信息变更的条件?例如,如果单击时标记发生更改,则可以使用GoogleMap.OnMarkerClickListener https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener
无论如何,如果您有标记的引用,使用Java变量,您不能更改该信息吗?或者简单地说,你不能清除地图上的标记,并在你谈到这种“条件”时再次添加它们吗?您将没有相同的标记,但结果将是相同的。我担心当标记已经贴在地图上时你无法修改它们,但是你可以尝试一下。