ClusterManager不重绘标记

时间:2016-01-26 19:20:30

标签: android google-maps

我正在尝试使用 class MyFooBar implements Foo, Bar { ... FooBar x = new TypicalJavaFooBar(); MyFooBar mfb = x.foobar(); // this compiles now with the cast. 来聚集我的ClusterManager,但是当标记数据发生变化并且我调用CustomMapMarker时,引脚位置不会改变。< / p>

代码:

地图更新方法

mClusterManager.cluster()

标记更新方法

void updateMap() {
  mClusterManager.clearItems();
  mClusterManager.addItem(data.getMarker(id));
  mClusterManager.cluster();
}

我已经对坐标进行了三次检查,并且它们在对象中发生了变化,但是标记在地图上没有移动。

我错过了一步吗?

2 个答案:

答案 0 :(得分:1)

我已经覆盖了我的Marker实现的hashCode()方法,这显然导致哈希类型集合的通常替换功能表现得很糟糕。我的解决方案是删除我的自定义实现并解决它的需要。

答案 1 :(得分:0)

我认为您应该在clear()中添加GoogleMap updateMap()方法。它会从地图中删除标记,折线,多边形,叠加等。

  

通过指定标记的选项向GoogleMap添加标记时,应保存返回的标记对象。此对象允许您稍后更改标记状态。完成标记后,您可以调用Marker.remove()将其从地图中删除。

也许这段代码有帮助。

void updateMap() {
  mGoogleMap.clear();
  mClusterManager.clearItems();
  mClusterManager.addItem(data.getMarker(id));
  mClusterManager.cluster();
}