Клуб API Карт

Хочу динамически менять цвет кластера.

oleitas
24 июля 2014, 11:29

Я загружаю точки через json, передаю в том числе значение цвета для каждой.

Если в кластере есть точка определенного цвета, цвет всего кластера тоже должен меняться.

Возможно ли это сделать?

Благодарю заранее. 

    var clusterer = new ymaps.Clusterer();
    for (var i = jsondata.length - 1; i >= 0; i--) {
        var item = jsondata[i];
        var arr = item.coords.split(' ');
        arr = arr.reverse()
        if (item.count > 99) {
            item.preset = 'islands#' + item.color + 'StretchyIcon'
        } else {
            item.preset = 'islands#' + item.color + 'Icon'
        }
        clusterer
        .add(new ymaps.Placemark(arr, {
        
            balloonContentHeader: item.title,
            balloonContentBody: '<span class="label label-default">' + item.category + '</span> <span class="label label-default">' + item.gender + '</span>',
            balloonContentFooter: '<a class="map-popup-link" href=' + item.link + '>Подробнее</a>',
            iconContent: item.count
        }, {
            preset: item.preset,
        }));
    };
    myMap.geoObjects.add(clusterer);

  

3 комментария
Подписаться на комментарии к посту

Нужно переопределить метод createCluster

clusterer.createCluster = function (center, geoObjects) {

    var cluster = ymaps.Clusterer.prototype.createCluster.call(this, center, geoObjects);

    if (.....) { // тут какое-то ваше условие

        cluster.options.set('preset', 'islands#grayClusterIcons');

    }

    return cluster;

}

Спасибо большое!