Клуб API Карт

Как лучше реализовать фильтрацию?

raketaprod
27 февраля 2015, 20:21

Всем добрый вечер (кому и день)!

 

Столкнулся с такой проблемой - необходимо сделать фильтрацию меток на карте, но нигде даже не нашел подобных примеров. А именно - ни разу не видел как можно сделать select->option, и range. Все данные выводятся из json (propeties). 
Вывод самих объектов сделал objectManager'ом, но вот как сделать несколько селектов - не понимаю. И не понимаю, почему не работает функция внутри init:
--

$('#button_star').toggle(function(){

objectManager.setFilter('properties.stars == "2"');

-- 

при таком скрипте - кнопка сама исчезает, и уже сразу выводятся все объекты, где stars == "2".

 

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

 

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

6 комментариев
Подписаться на комментарии к посту
Ну так $.toggle и должен так себя вести. Ваш вопрос про jQuery, на самом деле.

Хорошо, тогда почему не работает вот эта функция?

      $('#minpr').change(function(){

      var min = $('#minpr').val()*1

      objectManager.setFilter('properties.minpr' > min);

      console.log( min )

        });

Вероятно, потому, что значение выражения 'properties.minpr' > min всегда равно false.
http://javascript.ru/book/definitiveguide

наоборот, всегда возвращало true. В целом разобрался, кроме только самого object.manager'a. Потому что с фильтрацией примеров нет вообще.

В целом, filter синонимичен аналогичному параметру в geoQuery
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoQueryResult-docpage/#search-param-condition
Но я бы предложил просто функцию задавать. Это и проще, и дешевле в смысле производительности.
очень много параметров и все стыкуется с переменными и проверяется на сочетание им. Уже сделал как хотел, вот. Но только осталось ещё, конечно, кучу других вопросов...