单个群集图标的自定义图标

时间:2015-10-26 06:45:58

标签: javascript google-maps dictionary google-maps-api-3 markerclusterer

我想为群集设置自定义图标。 我的要求如下:

我有很多标记...在群集中分组,我想要那个图标 显示对应于具有更多日期的标记的图标 最近。 (marker.date)

任何提示o建议?

1 个答案:

答案 0 :(得分:0)

MarkerClusterer for Google Maps v3具有setCalculator(calculator:function(Array|number))功能,可用于覆盖MarkerClusterer上的标签设置:

var calc = function(markers, numStyles) {
    var maxDate = new Date('01-01-1970');
    for (var i = 0; i < markers.length; i++) {
        var currentDate = new Date(markers[i].date);
        if (maxDate < currentDate){
            maxDate = currentDate;
        }
  }
  return {text: maxDate.getDate()  + "-" + (maxDate.getMonth()+1) + "-" + maxDate.getFullYear(), index: 4};
}

markerCluster.setCalculator(calc);

假设您的Marker拥有date自定义字段:

var clusterMarkers = [
    new google.maps.Marker({
        position: new google.maps.LatLng(59.381059,13.504026),
        map: gm_map,
        title:"P1220214 1.JPG",
        date: '2015-10-10'
    }),
.....
];

注意:

  • 正确的错误处理(从string投射到Date时)应该 添加

  • 计算器index值设置为4,因此可以显示整个日期 (例如2015-12-12)。如果将其更改为较小的值,则会获得日期标签 切断了。

演示小提琴:http://jsfiddle.net/RGS5b/181/