Клуб API Карт

Содержимое балуна одиночной метки кластера

p7161
25 июля 2012, 11:41

С помощью примера настроил отображение содержимого балуна для кластера с несколькими метками. Код:

var myBalloonLayout =ymaps.templateLayoutFactory.createClass("", { 
 
build: function () {
var parent = this.getParentElement(),
content = "",
geoObjects = this.getData().properties.get('geoObjects');
for (var i = 0, l = geoObjects.length; i < l; i++) {
content += geoObjects[i].properties.get('name') + "</br>";
}
parent.innerHTML = content;
}
});
clusterer.options.set({
clusterBalloonContentBodyLayout: myBalloonLayout,
});

 

 

 

Сами метки добавляются в кластер из XML файла:

 

url = 'http://url.xml'
ymaps.geoXml.load(url).then(function (res) {
res.geoObjects.each(function (geoObject) {
clusterer.add(geoObject);
});
});
myMap.geoObjects.add(clusterer);

 

 

Отсюда вопрос, как настроить содержимое балуна для одиночной метки кластера?

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

Похоже, что так

 

url = '.xml';
ymaps.geoXml.load(url).then(function (res) {
 
res.geoObjects.each(function (geoObject) {
geoObject.options.set({
             balloonContentBodyLayout: ymaps.templateLayoutFactory.createClass(
             '$[properties.name]'
             )
         });
clusterer.add(geoObject);
});
});
myMap.geoObjects.add(clusterer);


Может есть ещё другое решение?

Можно еще сделать так.

clusterer.options.set({

    // Задаем опцию для всех объектов в составе кластера

    balloonContentLayout: ym.templateLayoutFactory.createClass('!!!'),

    // Чтобы стиль балуна кластера остался прежним, конкретизируем для него значение

    clusterBalloonContentLayout: "twirl#balloonContent"

});

судя по докам, можно еще и map.options.set({ clustererBalloonContentLayout: ..., clusterBalloonContentLayout: ... }), или почти...

Да, можно на карту завать опции для кластеров. Выглядеть это будет так.

map.options.set('geoObjectClusterBalloonContentLayout: '....');