Клуб API Карт

objectManager.setFilter - фильтр по preset

lolobrigit
18 марта 2015, 08:42

Использую для примера https://tech.yandex.ru/maps/jsbox/2.1/object_manager

в json-файле задал дополнительные параметры маркеров (preset) - на карте маркеры отображаются разным цветом.

Далее решил использовать setFilter https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#setFilter

Беру строку из примера

objectManager.setFilter('id > 20');

вставляю перед

myMap.geoObjects.add(objectManager);

- прекрасно отрабатывает

Но когда хочу настроить фильтр по preset, то карта грузится без объектов, пробовал строки:

 

objectManager.setFilter('options.preset == "islands#yellowIcon"');

 objectManager.setFilter('"options.preset" == "islands#yellowIcon"');

 objectManager.setFilter('"preset" == "islands#yellowIcon"');

 objectManager.setFilter('options.preset rlike "yellow"');
 objectManager.setFilter('preset != "islands#yellowIcon"');



Подскажите, что я делаю не так?

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

 

objectManager.setFilter('options.preset rlike "yellow"');

 

Зачем rlike то, это же не MySQL.

С таким же успехом можно пробовать такой фильтр

objectManager.setFilter('Хочу чтобы желтенькие метки остались');

 

 

Правильный вариант 'options.preset == "islands#yellowIcon"' и он работает

Если есть сомнения лучше всегда использовать фильтр-функцию

Возможно что я что то не так делаю, но у меня не работает, скрин кода по ссылке http://pixs.ru/showimage/ompng_4812794_16522594.png

на скрине строки с фильтрами закомментированы, но если к примеру строка с id работает, то с preset не работает. (менял по очереди)

 

Всеволод Шмыров
18 марта 2015, 18:28
Добрый вечер!
У вас происходит ошибка из-за того, что не у всех данных есть поле "options". Вам нужно или добавить поле во все данные, или просто поменять фильтр на objectManager.setFilter('options && options.preset == "islands#redDotIcon"');