
В CoGIS есть множество способов и инструментов фильтровать слои на карте и в виджете, ведь любая карта должна быть интерактивной. Сегодня рассмотрим вариант с кнопками для атрибутивной фильтрации слоя на примере карты "Благоустройства муниципальных территорий":
https://cogisdemo.dataeast.com/portal/solutions/urban_environment
По кнопкам "Территории" и "Статистика" справа открывается виджет, где первым делом пользователь может отфильтровать данные по типу территории - общественные или дворовые. Наглядно и удобно.
Выпадающие списки для фильтрации это всё же дальнейший тюнинг, а начать лучше с чего-то простого и понятного для пользователя по принципу одной большой красной кнопки.
Рассмотрим, как сделаны эти кнопки фильтрации. В Конструкторе в виджет добавляете блок "Кнопки фильтрации" и определяете набор кнопок. Каждая кнопка со своей картинкой, подписью и правилом фильтрации. В простом варианте можно указать мап-сервис, один слой и sql-фильтр. Обычно фильтр используется как "поле=значение" для переключения между категориями объектов. Также логично выбрать опцию "включить видимость", чтобы слой не просто отфильтровался по указанному критерию, но и включился на карте, если до этого был выключен. В более сложном сценарии можно указать сразу несколько слоев и даже несколько разных мап-сервисов со своими слоями, на которые будет накладываться фильтр по нажатию на кнопку. Кнопки работают как тумблеры вкл-выкл, а значит пользователь не только будет видеть текущий фильтр, но и сможет его выключить, просто отжав кнопку.
А вместе с настроенным копированием фильтров на смежные слои, с автопересчетом количества объектов в окне списка слоев, с обновлением списка территорий в виджете всё выглядит как главный рубильник - кликнул, и всё везде пересчиталось.