Клуб API Карт

ObjectManager и свойства кластера

Александр
4 июля 2014, 10:24

создаю

 

var objectManagerN = new ymaps.ObjectManager({

    clusterize: true,

    gridSize: 64

});

 

 

добавляю элементы из массива

 

objectManagerS.add({ type: 'Feature', id: idd++, geometry: { 

type: 'Point', coordinates: point.coords },

    properties: { adress: point.adr, format: point.fmt, kass: point.ks, plo: point.pl, 

hintContent: point.hc, iconContent:point.ic, dz:point.dz }

                   });

 

 

переопределяю свойства меток

 

objectManagerN.objects.options.set({

preset:'islands#blueStretchyIcon',

balloonContentLayout:ymaps.templateLayoutFactory.createClass(

    '<div style="color:#333399;"> <h3> $[properties.dz]</h3> </div>' +

    '<p><strong>Адрес: </strong> $[properties.adress]</p>' +

    '<p><strong>формат:</strong> $[properties.format|неизвестно]</p>'

    //'<p>Метрополитен: [if properties.metro]да[else]нет[endif]</p>'

)

       }); 

 

 

переопределяю свойства кластера

 

objectManagerN.clusters.options.set({

preset:'islands#blueClusterIcons',

        clusterDisableClickZoom: true,

        clusterOpenBalloonOnClick: true,

        clusterBalloonPanelMaxMapArea: 0,

        clusterBalloonContentLayoutWidth: 350,

        clusterBalloonItemContentLayout: customItemContentLayout,

        clusterBalloonLeftColumnWidth: 120

    }); 

 

 

Иконка меняется, а при щелчке на кластер все равно работает зум несмотря на то что стоит

clusterDisableClickZoom: true,

 

Подскажите пожалуйста что не так.

 

 

 

 

3 комментария
Подписаться на комментарии к посту
Александр
4 июля 2014, 11:47

в общем переписал эту опцию в создание objectManagerN - и все стало отлично.


единственное не могу понять

почему стиль не берет данные из массива

 

var customItemContentLayout = ymaps.templateLayoutFactory.createClass(

        '

$[properties.dz]

' +

        ' $[properties.adress]' +

        ' $[properties.format] '

    ); 

 

 

опять кривой синтаксис?


Александр
4 июля 2014, 12:18

разобрался и в этом

 

стиль пишем перед созданием объекта

если опции прописывать в описание, то все работает

 

var objectManagerN = new ymaps.ObjectManager({

    clusterize: true,

    gridSize: 64,

clusterDisableClickZoom: true,

        clusterBalloonPanelMaxMapArea: 0,

        clusterBalloonContentLayoutWidth: 300,

        clusterBalloonItemContentLayout: customItemContentLayout,

        clusterBalloonLeftColumnWidth: 120    

});

 

 

а если писать уже после заполнения

 

objectManagerN.clusters.options.set({

preset:'islands#blueClusterIcons',

        clusterOpenBalloonOnClick: true,

        clusterBalloonPanelMaxMapArea: 0,

        clusterBalloonContentLayoutWidth: 200,

        clusterBalloonItemContentLayout: customItemContentLayout,

        clusterBalloonLeftColumnWidth: 60

    });

 

то работает только смена иконки, а остальные опции не приеняются

Если вы пишете опцию в коллекцию clusters, уже не надо указывать префикс для опций cluster