【问题标题】:Marker Cluster styles标记簇样式
【发布时间】:2012-10-23 14:14:47
【问题描述】:

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

背景:我有一个带有几种颜色的计算机可用性标记,红色=离线,绿色=可用,黄色=不可用。我可以通过使用 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
      };
    });

【问题讨论】:

  • 1.您要更改“标记簇”还是“簇标记”的样式? - 2. 你试过什么?
  • 我认为应用于集群标记和标记集群的样式是一个没有样式的区域。
  • 是的,这是正确的,但在你的问题中你写了 ... 更改集群颜色 ...

标签: google-maps-api-3 google-maps-markers markerclusterer


【解决方案1】:

如何添加一个功能来满足您的需求。该函数将检查该集群中绿色/彩色标记的数量以及缩放级别(if elseif 条件应该这样做),并相应地覆盖先前为集群设置的图标。您将在setCalculator() 的末尾调用此函数。我不认为这很困难,如果有任何问题,请尝试并发布您尝试过的代码。

【讨论】:

    【解决方案2】:

    想通了 我的开关坏了,黄色的逻辑搞砸了 :

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

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 2014-07-09
      相关资源
      最近更新 更多