Клуб API Карт

Не удаётся задать свойство visible объектам в objectManager-е

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

Немного модифицированный пример https://tech.yandex.ru/maps/jsbox/2.1/object_manager

Сменить иконку получается, а сделать visible=false - нет. Почему?

ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map('map', {
            center: [55.76, 37.64],
            zoom: 10
        }, {
            searchControlProvider: 'yandex#search'
        }),
        objectManager = new ymaps.ObjectManager({
            // Чтобы метки начали кластеризоваться, выставляем опцию.
            clusterize: true,
            // ObjectManager принимает те же опции, что и кластеризатор.
            gridSize: 32
        });

    // Чтобы задать опции одиночным объектам и кластерам,
    // обратимся к дочерним коллекциям ObjectManager.
    objectManager.objects.options.set('preset', 'islands#greenDotIcon');
    objectManager.clusters.options.set('preset', 'islands#greenClusterIcons');
    myMap.geoObjects.add(objectManager);

    $.ajax({
        url: "data.json"
    }).done(function(data) {
        objectManager.add(data);
        
        objectManager.objects.each(function(object){
            objectManager.objects.setObjectOptions(object.id, {preset: 'islands#violetDotIcon'});// Получется
            objectManager.objects.setObjectOptions(object.id, {visible: false});// Не получается
        })
        
    });

}

4 комментария
Да, это пока не работает, спасибо за сообщение.
dimik,
тоже нужен такой функционал


var manager = new ymaps.ObjectManager();



var data = {
"type": "FeatureCollection",
"features": [
{"type": "Feature", "id": 1, "geometry": {"type": "Circle", "coordinates": [58.01139220056264, 56.237719070662386], "radius": 10}},
{"type": "Feature", "id": 2, "geometry": {"type": "Circle", "coordinates": [58.00971594769369, 56.23975913688761], "radius": 5}},
{"type": "Feature", "id": 3, "geometry": {"type": "Circle", "coordinates": [58.01064415950279, 56.2376777426921], "radius": 5}},
{"type": "Feature", "id": 4, "geometry": {"type": "Circle", "coordinates": [58.010449917181326, 56.236378080156484], "radius": 5}},
]
};
manager.add(data);


// Теперь надо вызвать что-то, чтобы скрыть все объекты
// А потом вызывать что-то, чтобы показать только один элемент


P.S. Или это нужно было делать через коллекции?
dimik,
Не заработало ?
objectManager.objects.setObjectOptions(object.id, {visible: false});// Не получается


Какие есть варианты?
Дмитрий Шапошников
18 января 2018, 21:58
Вариантов нет. Я сделал через preset.iconLayout = '';