如何暂时禁用地图标记聚类?

Arū*_*kas 4 android android-maps-v2 android-maps-utils

我正在使用Google Maps V2 for Android和maps utils扩展库进行标记聚类.应用程序的某些部分不需要获取聚集标记.

有没有办法禁止clusterManager集群标记,并在某些条件后让它再次集群项目?

Arū*_*kas 12

我找到了另一种解决方案.我发现on DefaultClusterRenderermethod 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;
}
Run Code Online (Sandbox Code Playgroud)

我也覆盖了我之前提到过的方法.

@Override
protected boolean shouldRenderAsCluster(Cluster<MarkerItem> cluster)
{
    if (shouldCluster)
    {
        return cluster.getSize() > MIN_CLUSTER_SIZE;
    }

    else
    {
        return shouldCluster;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我想停止群集,我只需从我想要的活动中调用此方法.

ClusterManager clusterManager = new ClusterManager<MarkerItem>(this, googleMap);
CustomRenderer customRenderer = new CustomRenderer(this, googleMap, clusterManager);
clusterManager.setRenderer(customRenderer);
customRenderer.setMarkersToCluster(false);
Run Code Online (Sandbox Code Playgroud)