Skip to content

feat(#33): скейл на регионы — фильтр по области + переключатель - #104

Merged
Adilforest merged 1 commit into
mainfrom
develop
Jun 26, 2026
Merged

Adilforest merged 1 commit into
mainfrom
develop

Conversation

@Adilforest

Copy link
Copy Markdown
Owner

Closes #33

Что сделано

  • Бэкенд: фильтр region (область верхнего уровня) для /structures, GeoJSON и всех /stats/*; эндпоинт /api/v1/regions/ со счётчиком объектов.
  • Фронт: переключатель региона в шапке (по умолчанию Жамбылская область), перецентрирование карты при смене региона.

Основные изменения

  • StructureFilter.filter_region: матчит саму область + все дочерние районы и округа (КАТО-дерево), переиспользует механизм фильтров Фильтры и поиск на карте #11 — параметр автоматически работает в списке, GeoJSON и агрегатах.
  • RegionsView (/api/v1/regions/): список областей с количеством объектов (включая потомков) — механизм масштабирования (новый регион = новые строки КАТО).
  • RegionSwitcher изолирован (свои подписи, без правки общих словарей/компонентов UI гос-флоу #30); пишет только параметр region в URL. Карта и каталог уже прокидывают весь query string.
  • FitOnRegion в MapPage перецентрирует карту по объектам выбранного региона, не мешая обычной фильтрации.

Зачем это сделано

Демонстрирует масштабируемость на другие регионы Казахстана: одна архитектура, регион — это срез данных, а не новая система.

* feat(#33): region filter for structures/geojson/stats + regions endpoint

Add a 'region' filter (top-level AdminUnit) reusing the #11 filter mechanism:
StructureFilter.filter_region matches the region plus all descendant districts
and okrugs, so it flows through /structures, the GeoJSON feed and every
/stats/* aggregate automatically. New GET /api/v1/regions/ lists regions with
object counts (the scaling mechanism — new regions are new KATO rows).

* feat(#33): region switcher in header + map recenter on region change

Isolated RegionSwitcher (header) reads /regions/ and writes the 'region' URL
param, defaulting to Жамбылская область once on load. Map and catalog already
forward the full query string, so the scope applies everywhere; MapPage gains a
small FitOnRegion helper that fits bounds to the loaded features when the region
changes. Labels are local to the control — no shared dictionaries touched.

---------

Co-authored-by: Adilforest <rzhunusov@thesirius.ai>
@Adilforest
Adilforest merged commit 6167ae8 into main Jun 26, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Скейл на регионы

1 participant