Клуб API Карт

ObjectManager, кастомный конструктор кластеров

artyomlvov
21 ноября 2014, 19:33

Здравствуйте!

Решили попробовать заменить ymaps.Clusterer на ymaps.ObjectManager.

Менеджер создаем как-то так:

objManagerCoolName = new ymaps.ObjectManager({
    clusterize: true,
    ...
    clusterIconLayout: 'customClusterIconLayout',
    clusterIcons: [...]
    ...
});

Здесь 'customClusterIconLayout' создается так:

ymaps.layout.storage.add('customClusterIconLayout', ymaps.templateLayoutFactory.createClass(
    '...',
    {
        build: function() {
            ...
        },
        ...
    })
);

При использовании ymaps.Clusterer все опции кластера внутри метода build были доступны через getData -> options. Например, так получался массив иконок:

this.getData().options.get('clusterIcons')

А как теперь получить options кластеров внутри метода build при использовании ymaps.ObjectManager?

7 комментариев
Подписаться на комментарии к посту

options, наверное, буду получать так в итоге:

objManagerCoolName.clusters.options.get('...')

В балуне кластера ObjectManager должна быть та же структура данных в getData, что и в балуне для обычного кластера.

А я же про класс иконок, а не балунов. У меня вообще балунов у кластеров нет О_о

Извините, невнимательно прочитала. Для меток это тоже актуально)

Cтруктура данных в this.getData(), может, и одинаковая, но this.getData().options.get('clusterIcons') теперь возвращает undefined почему-то.

В общем, это наверное я что-то делаю не так, буду разбираться. Большое спасибо!

А если спросить icons?

М-м-м! Точно! Так работает )

А я Вас сначала неправильно понял, получается.

Большое спасибо еще раз!