0

使用带有 MarkerCluster 的 Google Maps V3,您可以在聚类时看到三种不同类型的颜色,具体取决于聚类在一起的数量。

问题:我想将规则从基于数量更改为该区域的案件严重程度,它也体现在我使用的自定义图标中。我使用的类型是绿色表示运行良好的产品,黄色表示警告,红色表示不良产品。

如果某处有坏产品,我希望能够在集群图标上看到红色,而不是基于数字..

我使用带有剃须刀的 ASP.NET MVC3 - 这可能会有所帮助。

各位大佬能做到吗?

4

2 回答 2

0

您需要更改计算器功能:

var mc = new MarkerClusterer(map);

mc.setCalculator(
    function(markers, numStyles) {
        return {text: markers.length, index: 8}; 
     }
 );

该函数获取标记列表并应返回一对:文本标签和颜色编号。

于 2013-08-14T14:30:11.637 回答
0

让我们假设:

  • 您的集群映像文件已就位,并且索引为 1-green;2-黄色;3-红色;
  • 对标记图标(字符串|图标|符号)的引用可作为对象的属性使用,markerIcons
var markerIcons = {
    'green': '...',
    'yellow': '...',
    'red': '...'
};

然后,您可以使用计算器功能控制显示哪些集群图标,如下所示:

var myClusterer = new MarkerClusterer(map, {
    ...,//options
});

mc.setCalculator(function(markers, numStyles) {
    var index = 1;//green
    loop:
    for(var i=0; i<markers.length; i++) {
        switch(markers[i].getIcon()) {
            case markerIcons.yellow:
                index = 2;//yellow
            break;
            case markerIcons.red:
                index = 3;//red
                break loop;
            break;
        }
    }
    var index = Math.min(index, numStyles);
    return {text:markers.length, index:index};
});
于 2013-08-15T01:57:53.273 回答