Yo he venido a través de un problema similar en mi propia. Para mostrar un infowindows para cada unidad en el mapa, tengo algunos problemas si que cuenta estaba en un clúster, así que me acercado a esa característica. Si estas características están muy cerca, todavía podría ser agrupado. Así que yo quería para deshabilitar la agrupación de un cierto zoomlevel.
Yo ya tenía algunos problemas para deshabilitar la agrupación, así que me he venido arriba con esto:
Si establece el umbral de la agrupación de la estrategia para el total de la cuenta + 1 no hay ninguna agrupación.
Si usted tiene una función de conmutación, se puede registrar para el zoomend evento.
La he usado ya en una función de conmutación. Sólo he añadido unas feas si las declaraciones para comprobar quién está llamando a la función de conmutación. La función de registro de llamadas al oyente con un objeto.
Así que después de la creación de la capa y la estrategia:
myMap.map.events.register("zoomend", "zoom", toggleCluster);
(Yo no tengo ni idea de lo que el segundo parámetro....)
El objeto myMap contiene el mapa
el myUnit objeto contiene una referencia a la capa y también la función de conmutación.
toggleCluster: function(status) {
if (myUnit.layer.strategies[0].features != null){
var max = myUnit.layer.strategies[0].features.length;
} else {
// no features, don't care
return;
}
if (status && status.type == "zoomend") {
if (myMap.map.zoom > myUnit.zoomThreshold-1 ) {
console.log("cluster off");
myUnit.layer.strategies[0].threshold = max + 1;
} else {
console.log("cluster on");
myUnit.layer.strategies[0].threshold = myUnit.clusterThreshold;
}
} else {
if (myUnit.layer.strategies[0].threshold == myUnit.clusterThreshold) {
myUnit.layer.strategies[0].threshold = max + 1;
} else {
myUnit.layer.strategies[0].threshold = myUnit.clusterThreshold;
}
}
myUnit.layer.removeFeatures(tbUnit.layer.features);
myUnit.layer.redraw();
},