Клуб API Карт

Кластеризация

fighterneko
8 мая 2014, 11:45

Доброго времени суток. Не могу окончатьльно разобраться есть ли возможность метки кластера сделать разноцветными в зависимости от содержимого. Т.е. допустим есть у нас на карте метки магазинов, объединенные в кластер. В некоторых магазинах проводятся акции. Метка такого магазина допустим красная, а простых синяя. Задача - если в кластере только магазины, в которых акции, то такой кластер тоже покрасить красным - остальные синим. Понятно, что при изменении масштаба меняется количество объектов, привязанных к метке кластера и может поменяться цвет.

Так что вопрос: реально ли такое реализовать и если реально, то как?

4 комментария
Подписаться на комментарии к посту
Всеволод Шмыров
8 мая 2014, 12:32
Добрый день!
В блоге был похожий пример, в котором иконки кластеров были цветными диаграммами
http://ymapsapi.ya.ru/replies.xml?item_no=892

Интересный пример, но у меня пиктограммы/картинки, а не стандартные иконки. Вроде как написано, что для меток можно использовать любые цветные иконки кроме пиктограмм

Всеволод Шмыров
8 мая 2014, 14:08
А я вас не так понял.

В том примере создается полностью собственный макет.
Вы можете создать собственный макет при помощи опции clusterIconLayout
http://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark.xml#param-options.iconLayout
И в методе build в зависимости от поступивших геообъектов менять цвет в макете.

или более простой способ - это переопределить метод
http://api.yandex.ru/maps/doc/jsapi/2.0/ref/reference/Clusterer.xml#createCluster

В доке для 2.1 есть пример изменения текста в зависимости от кол-ва геообъектов. А в вашем случае нужно будет перебирать геообъекты и выставлять цвет или менять изображение через опцию iconHref.
http://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#createCluster

изменение цвета иконки кластера в 2.0
http://clubs.ya.ru/mapsapi/replies.xml?parent_id=46489&item_no=46480&with_parent=1#reply-mapsapi-46489

Спасибо - полагаю, что материала по ссылкам хватит, чтобы разобраться.