这是我之前提问的后续问题:ClusterManager isn't redrawing Markers
我做了一些调查,发现了一些有趣的东西。 ClusterManager.clearItems()
并不总是清除项目。
向ClusterManager
添加一个标记后,我运行此块:
mClusterManager.clearItems();
Log.d(TAG, "Marker list is empty: " + String.valueOf(mClusterManager.getMarkerCollection().getMarkers().isEmpty()));
for (Marker m : mClusterManager.getMarkerCollection().getMarkers()) {
Log.d(TAG, m.getId() + "| " + m.getPosition());
}
提供以下输出:
02-03 12:30:52.953 14328-14328/com.app.mobile D/app:MapsActivity: Marker list is empty: false
02-03 12:30:52.954 14328-14328/com.app.mobile D/app:MapsActivity: m7| lat/lng: (33.2980945,-111.953964)
尽管有明确的被召唤,但它永远不会是空的。这里发生了什么?
如果它从未清空,是否将m7 Marker
添加到ClusterManager
被忽略了?
答案 0 :(得分:10)
在clearItems()
之后调用cluster()函数答案 1 :(得分:1)
我最终发现我在hashCode()
的实施中对Marker
的覆盖实施导致通常的替换/删除/清除功能出现故障。
我的解决方案是删除hashCode()
的实现,并解决我对自定义哈希解决方案的需求。