Клуб API Карт

Стиль кластера api 2.0

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

Здравствуйте, в этой теме  я прочитал, как можно отобразить свою иконку клатера.

У меня это получилось, но значение кластера (количество элементов), теперь пишется просто поверх картинки, а в моей иконке для этого есть место в стороне немного. Вопрос, как сдвинуть кол-во объектов в кластере, внутри моей иконки?

 

Мой код очень простой, делал все по приведенному выше примеру, поэтому дублировать его нет смысла наверное...

 

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

Вам придется самостоятельно сделать макет иконки кластера.

Сейчас это можно сделать так

var MyClusterLayout = ymaps.templateLayoutFactory.createClass("$[properties.geoObjects.length]"),

     clusterer = new ymaps.Clusterer();

clusterer.createCluster = function (center, geoObjects) {

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

cluster.options.set('layout', MyClusterLayout);

return cluster;

}

 

В текущем релизе опция "clusterLayout", которая по идее решает эту проблему, не просачивается до кластера через кластеризатор, поэтому пока приходится переопределять функцию createCluster.

В следующей версии можно будет просто задавать опцию в кластеризатор

clusterer.oprions.set('clusterIconlayout', MyClusterLayout);

Спасибо большое, все заработало как надо.

ps.

Отдельный респект за работу по воскресеньям :)

 

Пытаюсь реализовать - не получается. Подскажите, пожалуйста, что я делаю не так?

var clusterLayout = ymaps.templateLayoutFactory.createClass('!');

var clusterer = new ymaps.Clusterer();

 

clusterer.createCluster = function (center, geoObjects) {

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

                cluster.options.set('layout', clusterLayout);

                return cluster;

            }

 

Лэйаут кластера не меняется, почему-то

Ответила уже в другом обсуждении. Но и здесь отпишусь.

Починили наконец багу с опциями и теперь можно задавать так.

clusterer.options.set('clusterIconlayout', MyClusterLayout);

 

При добавлении опции в кластер стоит использовать опцию clusterLayout вместо layout.

'layout' приходилось использовать ранее из-за баги.

Да, спасибо, уже разобрался