ClusterManager.clearItems()不会清除项目

nuk*_*rum 5 android google-maps

这是我上一个问题的后续内容:ClusterManager不重绘标记

我做了一些调查,发现了一些有趣的东西.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());
}
Run Code Online (Sandbox Code Playgroud)

其中提供以下输出:

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)
Run Code Online (Sandbox Code Playgroud)

尽管有明确的被召唤,它永远不会是空的.这里发生了什么?

如果它永远不会清空,是否添加了更新m7 MarkerClusterManager忽略?

链接到谷歌的实施 clearItems()

foo*_*ode 14

在clearItems()之后调用cluster()函数

  • 对我来说没有任何区别 (2认同)

nuk*_*rum 1

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

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