我正在尝试使用 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();
}
我已经对坐标进行了三次检查,并且它们在对象中发生了变化,但是标记在地图上没有移动。
我错过了一步吗?
答案 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();
}