MarkerClustererPlus: configure o ícone color / url independente do tamanho

Estou plotando algumas centenas de milhares de pontos via MarkerClustererPlus e quero definir grupos de ícones de cluster (cor) com base em alguma propriedade exteral (não com base no número de marcadores representados).

A única maneira que posso pensar em fazer isso é criando vários objetos MarkerClusterer e passando em um diferenteoptions objeto, mas eu sinto que vou ter um grande sucesso de desempenho fazendo isso. Existe uma maneira melhor?

Dada a imagem acima, eu gostaria de 139, 24 e 5 para ser amarelo e 213, 25, 30 e 2 para ser vermelho; e, se possível, atualize seus estilos / opções via setOptions:
mc.group[0].setOptions({"url": imgPath +lookupThreshold(severity)+ '.svg' });
mc.group[1].setOptions({"url": imgPath +lookupThreshold(severity)+ '.svg' });

P.S. Se alguém estiver interessado, eu ajustei a lib para que o ícone do cluster fosse dimensionado para seu tamanho† fornecendo uma imagem svg e aumentando a largura e a altura no objeto options:

var mcOptions = {
  "styles": [{
    "height": 19,
    "url": img/map/clusters/",
    "width": 19
  },{
    "height": 24,
    "url": img/map/clusters/",
    "width": 24
  }, {…}]
};
for ( var s = mcOptions.styles.length-1; s >= 0; s-- )
{ mcOptions.styles[s].url += lookupThreshold(severity) + '.svg'; }
// lookupThreshold switches severity and returns a string: red, orange, …

Em seguida, adicionou o seguinte paramarkerclusterer.js:

line 275: this.backgroundSize_ = style.backgroundSize || "contain";
line 300: style.push('background-size:' + this.backgroundSize_ + ';');

† Funciona no Ffx 19.0.2, no Chrome 26.x, no Chrome Canary 28.x, no Safari 6.0.2, no IE 9.0.8 (mas não no Opera 12.15).

EDITAR Parece que não há muito impacto no desempenho da criação de várias instâncias do MarkerClusterer; no entanto, parece que o objeto properties / options passado para o MC écompartilhado entre as instâncias de MCs.

Resolvido Eu tive que modificar a biblioteca MarkerClustererPlus perto da linha 665 para clonaropt_options (o lib estava usando uma referência, o que fazia com que todas as opt_options anteriores fossem sobrescritas com o último / último passado).

questionAnswers(1)

yourAnswerToTheQuestion