Клуб API Карт

Макет иконки кластера - как?

Пост в архиве.
konclave
2 июля 2012, 19:05

Нашел топик о том как сменить макет вывода иконки кластера. Попробовал - не работает. Почему, понять не могу. Помогите, пожалуйста. 

 

Делаю так:

var clusterLayout = ymaps.templateLayoutFactory.createClass('<div class="map-cluster">!</div>');

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;

            }

 

На сколько я понимаю, переопределенный createCluster вызывается при вызове that.clusterer.add()

Почему же тогда не меняется лэйаут?

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

Попробуйте просто задать опцию так:

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

oprions -> options

Эмперически определил что опция называется 'iconLayout'.

Молю, сделайте что-нибудь с документацией!

 

она есть в документации

Ну, то есть, судя по документации, я могу сделать вот так:

 

clusterer = new ymaps.Clusterer({},{},{

    iconLayout: 'my#cluster'

});

и у меня должен поменяться лэйаут кластера?

 

 

или же вот так:

clusterer = new ymaps.Clusterer();

clusterer.options.set('iconLayout', 'my#cluster');

И тоже должно работать? 

 

Но ведь не работает же

Работает вот так:

clusterer.options.set('clusterIconLayout', 'my#cluster');

 

Почему так:

Опция сама по себе называется 'iconLayout' и относится к объекту-кластеру.

Если нужно задать опцию объекту-кластеру, то следует использовать это название опции.

 

В вышеприведенном примере опция задается не отдельному объекту-кластеру, а кластеризатору.

Опции объектов-кластеров можно задавать через кластер, но в этом случае они префиксируются ('iconLayout' -> 'clusterIconLayout'). Об этом написано в документации "Опции для дочерних объектов-кластеров задаются с префиксом cluster".

 

Мы понимаем, что через документацию не совсем понятна система с префиксированием. Соответствующая статья готовится, надеемся, что с ней станет понятнее.