谷歌地图:编辑标记和折线

时间:2013-03-19 16:49:38

标签: android hashmap google-maps-api-2

我有一个很长的,可变的MarkerPolyline来自我的服务器的列表。在某些情况下,Marker必须更改其图标,而Polyline必须更改其颜色。

我的对象有id,所以我应该能够知道我必须更新哪个折线/标记。但是,标记和折线没有setId()getId()方法,并且在服务器请求时会动态更新(和添加)。

我曾考虑使用HashMap<Integer, Marker>HashMap<Integer, Polyline>来了解我应删除哪些项目然后添加。我想到了这个:

  • 我收到了一件物品。我得到了它的身份。
  • 我查询了具有相同ID的项目的正确HashMap
  • 如果HashMap没有返回null,我会调用Marker.remove()Polyline.remove(),然后从HashMap
  • 中删除该项
  • 现在hashMap.get(id)无论如何都应该返回null,因此我在Polyline中绘制Marker / GoogleMap将项目添加到HashMap。< / LI>

但在我开始实现之前,我想知道是否有任何方法可以做到这一点,而不涉及使用巨型HashMap

有没有其他方法可以在不使用HashMapSparseArray或类似内容的情况下实现此行为?

1 个答案:

答案 0 :(得分:1)

我曾经使用过谷歌地图API for Android,但我很确定,在检查了与之相关的文档之后,应该可以添加一些监听器。

您能否提供信息变更的条件?例如,如果单击时标记发生更改,则可以使用GoogleMap.OnMarkerClickListener https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener

无论如何,如果您有标记的引用,使用Java变量,您不能更改该信息吗?或者简单地说,你不能清除地图上的标记,并在你谈到这种“条件”时再次添加它们吗?您将没有相同的标记,但结果将是相同的。我担心当标记已经贴在地图上时你无法修改它们,但是你可以尝试一下。