Клуб API Карт

Изменение параметры кластера "на лету"

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

Всем привет, задача. на определенном зуме, допустим >= 10 менять сетку кластеризации с 256 на 64

 

 

 

_map.events.add(['boundschange'], function(e){

var oldZoom = e.get('oldZoom'), newZoom = e.get('newZoom');

 

                if(newZoom !== oldZoom)

                {

                    switch(true)

                    {

                        case (newZoom >= 10 ):

 

                            objectManager.clusters.options.set('gridSize', '64');

                            objectManager.clusters.options.set('preset', 'islands#invertedLightBlueClusterIcons');

 

                            break;

                    }

                }

            });

 

Вот так не получается, хотя preset меняется. Понимаю что параметр учавствует в алгоритме кластеризации, отсюда вопрос, вообще ли это вообще реализовать без подгрузки данных заново. Используется обычный new ymaps.ObjectManager с кластеризацией на клиенте.

 

Спасибо.   

3 комментария

Опция gridSize относится не к отдельным кластерам, а к кластеризатору в целом. Поэтому ее нужно задавать на уровне менеджера

objectManager.options.set('gridSize', 64);

Точно, не досмотрел, спасибо большое! :-) 

Сколько живу - в первый раз такой switch-case вижу.