ClusterManager.clearItems()不会清除项目

时间:2016-02-03 19:51:10

标签: android google-maps

这是我之前提问的后续问题: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被忽略了?

Link to Google's implementation of clearItems()

2 个答案:

答案 0 :(得分:10)

在clearItems()

之后调用cluster()函数

答案 1 :(得分:1)

我最终发现我在hashCode()的实施中对Marker的覆盖实施导致通常的替换/删除/清除功能出现故障。

我的解决方案是删除hashCode()的实现,并解决我对自定义哈希解决方案的需求。