-1

Я хочу установить пользовательский значок для кластера. Моего требования являются следующим:Пользовательский значок для отдельного значка кластера

У меня есть много маркера ... группироваться в кластере, и я хочу, чтобы значок показано соответствует значку маркеров, которые имеет дату более в последнее время. (marker.date)

Любые подсказки o Предлагаем?

ответ

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). Если вы измените его на меньшее значение, метка даты получит .

Demo скрипку: http://jsfiddle.net/RGS5b/181/