首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何暂时禁用地图标记聚类?

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

Stack Overflow用户
提问于 2014-12-03 14:11:54
回答 2查看 4.3K关注 0票数 5

我正在使用Google、V2和地图、使用扩展库进行标记聚类。应用程序的某些部分不需要获得聚类标记。

是否有任何方法禁止clusterManager对标记进行聚类,并且在某些条件下允许它再次对项进行聚类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-04 08:49:23

我找到了另一个解决方案。我发现在DefaultClusterRenderer方法中,shouldRenderAsCluster负责是否将标记作为集群呈现。因此,我创建了一个CustomRenderer类,它扩展了DefaultClusterRenderer,并创建了一个带有布尔变量的方法,以确定呈现器是否应该集群。

代码语言:javascript
复制
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;
}

我还重写了前面提到的方法。

代码语言:javascript
复制
@Override
protected boolean shouldRenderAsCluster(Cluster<MarkerItem> cluster)
{
    if (shouldCluster)
    {
        return cluster.getSize() > MIN_CLUSTER_SIZE;
    }

    else
    {
        return shouldCluster;
    }
}

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

代码语言:javascript
复制
ClusterManager clusterManager = new ClusterManager<MarkerItem>(this, googleMap);
CustomRenderer customRenderer = new CustomRenderer(this, googleMap, clusterManager);
clusterManager.setRenderer(customRenderer);
customRenderer.setMarkersToCluster(false);
票数 15
EN

Stack Overflow用户

发布于 2014-12-03 14:18:46

群集管理器实现只能执行内置的集群功能。如果希望某些标记不进行聚类,则需要将这些标记直接添加到映射中。当您决定对这些标记进行聚类时,您将需要从地图中删除它们,并将它们的信息传递给集群管理器以使其接管。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27273857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档