【发布时间】:2016-01-25 04:56:36
【问题描述】:
我想为集群设置自定义图标。 我的要求如下:
我有很多标记...分组在一个集群中,我想要那个图标 显示对应于具有更多日期的标记的图标 最近的。 (marker.date)
有什么建议吗?
【问题讨论】:
标签: javascript google-maps dictionary google-maps-api-3 markerclusterer
我想为集群设置自定义图标。 我的要求如下:
我有很多标记...分组在一个集群中,我想要那个图标 显示对应于具有更多日期的标记的图标 最近的。 (marker.date)
有什么建议吗?
【问题讨论】:
标签: javascript google-maps dictionary google-maps-api-3 markerclusterer
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)。如果将其更改为较小的值,则日期标签会
切断。
【讨论】: