目前我知道改变ClusterManager中标记的可见性的唯一方法是做markerClusterManager.getMarkerCollection().getMarkers()
,它给了我一个Collection<Marker> object
。然后,您可以更改这些标记的可见性。
但是,我想基于仅在我的自定义ClusterItem
对象中可用的信息来更改标记的可见性。但是getMarkers()
方法只给了我一个标记对象的集合,它没有这个信息。我可以获得我的自定义ClusterItem
对象,但我无法改变其可见性。我只能通过获取Marker对象来实现,重申一下,我没有自定义ClusterItem
对象中包含的信息。
好吧,我想到了一个似乎运作良好的解决方法。为了改变标记的可见性,我只对我想要不可见的ClusterItem对象执行clusterManager.removeItem(),对我想要可见的ClusterItem对象执行clusterManager.addItem()。然后,我调用clusterManager.cluster()让它重新加载集群。对于我从clusterManager中删除的ClusterItem对象,我将它们保存在列表中,然后每当我希望它们再次可见时将它们添加回ClusterManager。我仍然更喜欢能够使用setVisibility()方法的解决方案,但我将使用此解决方法,直到某人显示更好的方法。