Фильтры в NextGIS Web

Как работает фильтрация на веб-карте и в таблице атрибутов

Фильтры помогают быстро найти нужные объекты среди большого массива данных – прямо на карте или в таблице атрибутов. Разберём, как ими пользоваться и какие возможности они дают.

Зачем нужны фильтры

Есть карта с точками интереса: магазины, кафе, достопримечательности – сотни объектов в одном слое. Чтобы работать только с нужными из них, не трогая остальные, и существуют фильтры.

В NextGIS Web фильтрацию можно применять в двух местах:

  • На веб-карте:
    • Через контекстное меню слоя. Фильтр влияет сразу на два элемента: объекты скрываются на карте и в таблице атрибутов, которую тоже можно открыть прямо на карте через меню слоя.
    • При этом в таблице атрибутов на веб-карте – фильтр отдельный, и работает он только внутри таблицы, не затрагивая отображение объектов на карте.
  • В хранилище Веб ГИС. Таблицу атрибутов любого слоя можно открыть отдельно, вне карты, и там также доступны все инструменты фильтрации.

Пример 1: несколько условий и режимы ВСЕ / ЛЮБОЙ

Начнём с простого. Возьмём слой Магазины и зададим условие SHOP Равно furniture. На карте останутся только магазины мебели.

Фильтр Равно

Теперь откроем фильтр снова и добавим второе условие SHOP Равно jewelry. Переключим режим на ЛЮБОЙ – и на карте появятся ещё объекты – теперь отображаются и мебельные, и ювелирные магазины.

Фильтр Равно

Режимы применения условий:

  • ВСЕ – объект отображается, только если он соответствует всем заданным условиям одновременно.
  • ЛЮБОЙ – объект отображается, если он соответствует хотя бы одному из условий.

Режим ВСЕ не сработает в нашем случае потому, что один SHOP не может одновременно быть и furniture, и jewelry. Для таких случаев есть оператор В списке, который рассмотрим ниже.

Если после этого открыть таблицу атрибутов через контекстное меню слоя, она покажет только объекты категорий jewelry и furniture – ровно то, что прошло через фильтр слоя.

Фильтр в таблице на карте

При этом фильтр внутри самой таблицы атрибутов будет пустым: он существует независимо и готов к отдельной, более тонкой настройке.

Пример 2: исключения и точечные исключения из исключений

Раскроем легенду слоя Гастрономия и зададим условие AMENITY Не равно cafe. Результат – на карте видна вся гастрономия, кроме кафе.

Фильтр-исключение (не равно)

Но допустим, одно конкретное кафе всё-таки нужно показать. Меняем подход:

  • Переключаем режим на ЛЮБОЙ.
  • Добавляем второе условие NAME В списке Булошная.
Точечное исключение из исключений

Теперь на карте отображается вся гастрономия, кроме кафе, плюс единственное исключение – кафе «Булошная». Кликаем на объект и убеждаемся: всё работает как задумано.

Оператор В списке – это как равно сразу для нескольких значений столбца. Вместо одной Булошной мы могли бы указать в этом условии и другие кафе, которые хотели бы отобразить.

Если же применить В списке к первому примеру со слоем Магазины, то мы могли бы одним таким условием отобразить сразу и furniture, и jewelry.

Фильтры в таблице атрибутов

Все те же фильтры доступны и при работе в таблице объектов вне карты – то есть в самом хранилище Веб ГИС. Это особенно удобно, когда нужно разобраться в большом массиве данных: отфильтровать строки, проверить заполненность полей, найти конкретные записи.

Мы поработаем с фильтрами в таблице атрибутов, когда дойдём до раздела Группы условий.

Операторы: полный набор возможностей

В примерах выше мы коснулись двух пар операторов – равно / не равно и в списке / не в списке. Но всего их четыре, рассмотри каждую пару:

Равно / Не равно

Базовая точная проверка: совпадает ли значение поля с заданным или нет.

В списке / Не в списке

Позволяет задать сразу несколько допустимых (или недопустимых) значений – удобно, когда нужно охватить несколько значений без создания множества отдельных условий.

Null / Не null

Фильтрация по наличию значения в поле. Null – найдёт объекты с пустым полем, не null – только те, у которых поле заполнено. Полезно при проверке качества данных.

Подобно / Не подобно

Самый гибкий оператор: работает с подстроками и спецсимволами по аналогии с ilike в QGIS. Не чувствителен к регистру.

Пример 1

Рассмотрим условие name Подобно кант. Это выражение найдёт все объекты, в названии которых встречается слово «кант» – в любом месте строки и в любом регистре. Под такой фильтр попадут и «Музей Канта», и «Фото с Кантом», и любой другой объект с этим сочетанием букв в названии.

Это работает потому, что по умолчанию – незаметно для пользователя – к запросу автоматически подставляются спецсимволы % в начале и в конце строки, что и обеспечивает поиск по подстроке.

Фильтр поиска по подстроке

Пример 2

Но иногда нужен другой паттерн поиска. Например, если данные содержат объекты вида ПРИЧАЛ A, ПРИЧАЛ B, ПРИЧАЛ C и так далее, то выражение NAME Подобно причал _ найдёт все подобные записи: слово причал, затем пробел, затем один любой символ.

Исходная карта

Здесь используется спецсимвол _, который означает ровно один любой символ. Это удобно, когда структура значения предсказуема, но часть его варьируется.

Под фильтр попадут как буквы, так и цифры – ПРИЧАЛ 1, ПРИЧАЛ Q. А вот ПРИЧАЛ 10 или ПРИЧАЛ СЕВЕРНЫЙ уже не попадут, так как после пробела там стоит больше одного символа.

Фильтр поиска по подстроке

Если количество символов после пробела заранее неизвестно, достаточно снова вернуться к универсальному поиску по умолчанию, когда используется паттерн %ПРИЧАЛ%, покрывающий любые варианты – ПРИЧАЛ A, ПРИЧАЛ 10, ПРИЧАЛ СЕВЕРНЫЙ, СЕВЕРНЫЙ ПРИЧАЛ и всё остальное.

Группы условий

Одиночный список условий с режимом ВСЕ или ЛЮБОЙ хорошо работает для простых задач. Но иногда логика выборки сложнее, и тогда могут помочь группы условий.

Группа – это отдельный блок условий с собственным режимом ВСЕ или ЛЮБОЙ. При этом группы между собой тоже объединяются через общий режим ВСЕ или ЛЮБОЙ. Это позволяет строить составные фильтры с вложенной логикой.

Пример

Нужно отобрать все крупные магазины электроники или супермаркеты, но только те, что работают круглосуточно и имеют парковку.

Таблица атрибутов объектов в NGW

Без групп такой фильтр не выразить корректно: условия на тип заведения и условия на режим работы смешались бы в одну кучу. С группами всё аккуратно:

Группа 1 (режим ЛЮБОЙ):
SHOP Равно ELECTRONICS
SHOP Равно SUPERMARKET

Группа 2 (режим ВСЕ):
OPENING_HOURS Равно 24/7
PARKING Не NULL Любое значение (подставляется автоматически)

Обе группы объединяются режимом ВСЕ – то есть объект попадёт в выборку, только если он подходит под одну из категорий первой группы и одновременно удовлетворяет обоим условиям второй.

Группы фильтров

Такой подход особенно полезен при работе со сложными данными, когда нужно чётко разграничить «или» внутри одной смысловой группы и «и» между разными группами – не путая их между собой.


Фильтры в NextGIS Web – инструмент, который легко освоить и применять ежедневно для быстрого поиска объектов, визуальной проверки данных или подготовки выборки перед экспортом. Попробуйте в своём проекте.

Как начать

Хотите опробовать функционал на своих данных? Вы можете:

  • воспользоваться песочницей (не рекомендуется загружать чувствительные данные);
  • развернуть бесплатно свою Веб ГИС в облаке (дарим две недели бесплатного Premium, если заполните форму);
  • написать нам на sales@nextgis.ru, чтобы развернуть Веб ГИС на своём сервере.

Комментарии запрещены.