Здравствуйте, имею данный код. Никак не могу понять как мне реализовать кластеризацию? Все данные заганяю в массив result, но как дальше?
ymaps.ready(init);
function init() {
// Создание экземпляра карты.
var myMap = new ymaps.Map('map', {
center: [61.3216, 99.0670],
zoom: 4,
controls: ["searchControl","typeSelector"]
});
// Контейнер для меню.
var menu = $('<ul class="nav nav-list"/>');
var result = [];
// Загрузка YMapsML-файла.
ymaps.geoXml.load("data_mk.xml")
.then(function (res) {
// Все содержимое YMapsML файла возвращается ввиде коллекции.
res.geoObjects.each(function (geoObject) {result.push(geoObject);});
var groups = res.geoObjects,
// Стили для DOM-представлений групп.
styles = {
"all": "all_map_item",
"beer": "beer_map_item",
"orange": "warning",
"blue": "info"
};
// Добавляем все группы на карту.
myMap.geoObjects.add(groups);
// Перебираем все группы.
groups.each(function (group) {
// Определяем стиль для группы.
var preset = group.options.get('preset') || 'twirl#blueIcon',
style = styles[preset.match(/#([a-z]+)[A-Z]/)[1]],
// Имя группы.
name = group.properties.get('name'),
// DOM-представление группы.
menuItem = $('<li class="nav-header"><span class="label ' + style + '">' + name + '</span></li><div>');
menuItem
// Добавляем пункт в меню.
.appendTo(menu)
// Навешиваем обработчик клика по пункту меню.
.on('click', function (e) {
// Скрываем/отображаем пункты меню данной группы.
$(this)
.nextUntil('.nav-header')
.removeClass('active')
.slideToggle('fast');
// Скрываем/отображаем коллекцию на карте.
if(group.getParent()) {
groups.remove(group);
}
else {
groups.add(group);
}
});
// Перебираем элементы группы.
group.each(function (item) {
var name = item.properties.get('name'),
adress = item.properties.get('meta
// DOM-представление элемента группы.
menuItem = $('<li><div class="map_item"><a href="#">' + name + '</a><p>' + adress + '</p></div></li>');
// Добавляем пункт в меню.
menuItem
.appendTo(menu)
// Навешиваем обработчик клика по пункту меню.
.on('click', function (e) {
e.preventDefault();
// Выставляем/убираем класс active.
menuItem
.toggleClass('active')
.siblings('.active')
.removeClass('active');
// Открываем/закрываем баллун у метки.
if(item.balloon.isOpen()) {
item.baloon.close();
}
else {
// Плавно меняем центр карты на координаты метки.
myMap.setCenter(item.geom
delay: 0,
callback: function () {
item.balloon.open();
}
});
}
});
});
});
// Добавляем меню в сайдбар.
menu.appendTo($('#side_bar'));
// Выставляем масштаб карты чтобы были видны все группы.
myMap.setBounds(myMap.geoObjects.getBounds());
});
document.getElementById('russia').onclick = function() {
myMap.setCenter([61.3216, 99.0670], 4);
}
}