2012-11-02 31 views
0

有没有办法可以改变样式应用于标记集群?我知道默认是基于集群的大小,我想改变它。Marker集群样式

背景:我有一个用于计算机可用性的多种颜色的标记,红色=离线,绿色=可用,黄色=不可用。我可以使用setCalculator函数更改群集中的数字,并通过计算图标设置为绿色的标记数量来设置数字。有没有办法做到这一点,如果在一个集群中有这么多的绿色标记,我可以通过这种方式改变集群的颜色?还有一种方法可以根据缩放级别进行更改吗?

IE:默认缩放级别

if #avail < 2 => set red 
if 2 < #avail < 5 => set yellow 
if #avail > 5 => set green 

我已经试过这样:

markerClusterer.setCalculator(function (markers, numStyles) { 
     var index = 0; 
     var count = markers.length; 
    var avail = 0; 
    for (var i=0;i<count;i++){ 
     if (markers[i].icon == "icons/available.png"){ 
      avail++; 
     } 
    } 

    switch(true) {//change index based on number of available computers 
     case (avail == 0)://red 
      index = 3; 
      break; 
     case (0 < avail < 3)://yellow 
      index = 2; 
      break; 
     case (avail >= 3)://blue/green 
      index = 1; 
      break; 
    } 
     //index = Math.min(index, numStyles); 
     return { 
     text: avail, 
     index: index 
     }; 
    }); 
+0

1.你想改变一个“标记集群”或“簇标记”的风格? - 2.你尝试过什么? – Marcelo

+0

我认为应用于集群标记和标记集群的样式是一个没有样式的区域。 – Ray

+0

是的,这是正确的,但在你写下的问题中** ......改变簇的颜色...... ** – Marcelo

回答

1

如何增加一个功能,做你所需要的。该功能将检查该群集中绿色/彩色标记的数量以及缩放级别(if if条件应该这样做),并相应地覆盖之前为群集设置的图标。您将在setCalculator()结束时调用此函数。我不认为这会很难,如果你有任何问题,试试并发布你的代码。

0

想通了 我的开关是坏的和黄色的逻辑是搞乱起来 :

if(avail == 0){ 
    index=3; 
} 
if((0 < avail)&&(avail < 3)){ 
    index=2; 
} 
if(avail >= 3) { 
    index=1; 
}