Клуб API Карт

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

Пост в архиве.

Я загружаю точки через 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);

  

6 комментариев

Нужно переопределить метод 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;

}

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

mari-na-bzzz,
а можно ли задать для кластера иконку, которая будет растягиваться под содержимое-текст?
mari-na-bzzz
Сотрудник Яндекса10 октября 2017, 20:32
Виктор,
стандартные иконки кластера не увеличиваются под контент, но вы можете написать свой html-макет для метки кластера
Вам нужно задать макет в опцию https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark-docpage/#param-options.iconLayout
mari-na-bzzz,
А для stretchyIcon нельзя же задать свой цвет в iconColor?