我正在使用Google、V2和地图、使用扩展库进行标记聚类。应用程序的某些部分不需要获得聚类标记。
是否有任何方法禁止clusterManager对标记进行聚类,并且在某些条件下允许它再次对项进行聚类?
发布于 2014-12-04 08:49:23
我找到了另一个解决方案。我发现在DefaultClusterRenderer方法中,shouldRenderAsCluster负责是否将标记作为集群呈现。因此,我创建了一个CustomRenderer类,它扩展了DefaultClusterRenderer,并创建了一个带有布尔变量的方法,以确定呈现器是否应该集群。
public class CustomRenderer extends DefaultClusterRenderer<MarkerItem>
{
private boolean shouldCluster = true;
private static final int MIN_CLUSTER_SIZE = 1;
//Some code....
public void setMarkersToCluster(boolean toCluster)
{
this.shouldCluster = toCluster;
}我还重写了前面提到的方法。
@Override
protected boolean shouldRenderAsCluster(Cluster<MarkerItem> cluster)
{
if (shouldCluster)
{
return cluster.getSize() > MIN_CLUSTER_SIZE;
}
else
{
return shouldCluster;
}
}现在,如果我想停止集群,我只需要从我想要的活动中调用这个方法。
ClusterManager clusterManager = new ClusterManager<MarkerItem>(this, googleMap);
CustomRenderer customRenderer = new CustomRenderer(this, googleMap, clusterManager);
clusterManager.setRenderer(customRenderer);
customRenderer.setMarkersToCluster(false);发布于 2014-12-03 14:18:46
群集管理器实现只能执行内置的集群功能。如果希望某些标记不进行聚类,则需要将这些标记直接添加到映射中。当您决定对这些标记进行聚类时,您将需要从地图中删除它们,并将它们的信息传递给集群管理器以使其接管。
https://stackoverflow.com/questions/27273857
复制相似问题