Клуб API Карт

как отобразить значения свойств меток в иконке кластера

d.andrushchenko
17 марта 2013, 20:40

использую мультигеокодирование:

 

multiGeocoder

                        .geocode(address)

                            .then(

                                function (res) {

                                    for (var i = 0; i < timefrom.length; i++) {

                                        collection[i] = res.geoObjects.get(i);

                                        collection[i].properties.set('myProp', 'sdgsdgfgdfgdfgds');

                                        collection[i].properties.set('balloonContentBody', '<b>' + 'Название учреждения: ' + '</b>' + companyname[i] + '<br/>' + '<b>' + 'Адрес: ' + '</b>' + address[i] + '<br/>' + '<b>' + 'Время визита: ' + '</b>' + timefrom[i] + ' - ' + timetill[i]);

                                        visitRoutes[i] = res.geoObjects.get(i).geometry.getCoordinates();

                                        a++;

                                    }

 

                                    // координаты для роутера с учетом текущего местонахождения

                                    visitRoutes.unshift(myPlacemark.geometry.getCoordinates());

 

                                    // макет метки кластера

                                    var MyIconContentLayout = ymaps.templateLayoutFactory.createClass(

                                        '<div style="font-weight: bold;">$[properties.geoObjects.length]</div>');

 

 

как вывести значение свойства myProp в иконке кластера вместо кол-ва меток в нем?!

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

В этой статье из блога контент метки кластера формируется на основании стилей входящих в него меток. Вы можете взять его за основу и формировать контент на основании данных этих меток.

просто напишите пожалуйста как мне достать значения свойсвт меток входящих в кластер, например collection[1].properties.get('myProp') - работат, но надо только для меток которые в кластере

$[properties.geoObjects[0].myProp] не работает 

наверное можно попробовать так:

$[properties.geoObjects.0.myProp]

но непонятно зачем вам св-во 0й метки

вот именно, мне надо как-то достать значение этого свойства для каждой метки в кластере и вывести ее в иконку метки кластера....o_O

А как вы чисто визуально хотите разместить инфу по всем объектам в стандартной иконке? Там же может быть очень много объектов в кластере, и она просто не влезет.

в каждом кластере до 5 точек, из каждой точки берем значение пользовательского свойства например myProp  (цифру) итого 5 цифр + 1 слово. Должно влезть. Вопрос в том как вытянуть и вставить это все дело в метку кластера?!

Вам нужно создать макет для текста внутри метки (clusterIconContentLayout), переопределить его функцию build, в ней сформировать нужный текст и прикрепить его к нужной дом-ноде.

 

Получить массив геообъектов внутри функции build можно так

var geoObjects = this.getData().properties.geoObjects;

а можно пример?!

                                    MyIconContentLayout = ymaps.templateLayoutFactory.createClass(

                                        '$[properties.name]', {

                                        build: function () {

                                            var geoObjects = this.getData().properties.geoObjects;

 

                                            $(".my_cluster", $(this.getElement())).html("sdfgsxgsfgsdfgdg");

 

                                        }

                                    });

 

 

в метке ничего не отображается, в консоли Cannot read property 'parentNode' of undefined

как утсановить стиль метки кластера? twirl... чтобы была с контентом?!

подскажите пожалуйста как сделать размер балуна кластера в зависимости от содержимого?! (резиновый макет)

  вам написала, сделайте свою верстку (html+css) и приклепите ее к нужной ноде в методе build

какое свойство отвечает за контент в метке кластера?

модно такой самый пример только для меток кластера?! http://clubs.ya.ru/mapsapi/replies.xml?parent_id=25217&item_no=25207&with_parent=1#reply-mapsapi-25217

СДЕЛАЛ 

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') + "
";
}
parent.innerHTML = content;
}
});
clusterer.options.set({
clusterBalloonContentBodyLayout: myBalloonLayout,
});
нО СОЖЕРЖИМОЕ НЕ ВЛЕЗАЕТ, КАК СДЕЛАТЬ МЕТКУ РЕЗИНОВОЙ КВАДРАТОМ ?!

все разобрался со всем вот только как задать иконку кластера как вот тут http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/option.presetStorage.xml?!