Клуб API Карт

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

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

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

 

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 в иконке кластера вместо кол-ва меток в нем?!

18 комментариев

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

Удалённый пользователь
28 января 2016, 02:31

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

Удалённый пользователь
28 января 2016, 02:31

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

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

$[properties.geoObjects.0.myProp]

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

Удалённый пользователь
28 января 2016, 02:31

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

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

Удалённый пользователь
28 января 2016, 02:31

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

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

 

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

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

Удалённый пользователь
28 января 2016, 02:31

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

Удалённый пользователь
28 января 2016, 02:31

                                    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

Удалённый пользователь
28 января 2016, 02:31

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

Удалённый пользователь
28 января 2016, 02:31

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

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

Удалённый пользователь
28 января 2016, 02:31

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

Удалённый пользователь
28 января 2016, 02:31

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

Удалённый пользователь
28 января 2016, 02:31

СДЕЛАЛ 

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,
});
нО СОЖЕРЖИМОЕ НЕ ВЛЕЗАЕТ, КАК СДЕЛАТЬ МЕТКУ РЕЗИНОВОЙ КВАДРАТОМ ?!
Удалённый пользователь
28 января 2016, 02:31

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

вы нашли ответ, как задать иконку, которая растягивается под содержимое?