【问题标题】:Custom Icon for individual cluster icon单个集群图标的自定义图标
【发布时间】:2016-01-25 04:56:36
【问题描述】:

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

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

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多