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)