Stage 2: использовать cad_buildings в Site Finder фильтрах ('соседи-высотки 50K+ ₽/м² кадастра') #21

Closed
opened 2026-04-30 19:48:57 +00:00 by lekss361 · 2 comments
lekss361 commented 2026-04-30 19:48:57 +00:00 (Migrated from github.com)

Идея

После загрузки 10 590 cad_buildings из NSPD (полная схема — purpose, year_built, floors, cost_value, geom) у нас есть точное представление о застройке вокруг любого участка. Site Finder сейчас фильтрует только по площади / ВРИ / расстоянию до центра — можно добавить контекстные фильтры по соседним зданиям.

Что сделать

Backend:

  • Расширить POST /api/v1/parcels/search фильтрами:
    • min_neighbor_floors (например, ≥9 = «среди многоэтажек»)
    • min_neighbor_year_built (например, ≥2010 = «новый фонд»)
    • min_neighbor_cost_per_m2 (например, ≥40 000 ₽/м² = «премиум-зона»)
    • radius_m (по умолчанию 500м)
  • Скоринг: к 3 текущим критериям добавить neighborhood_score = средневзвешенная цена/возраст/этажность зданий в радиусе
  • Использовать индекс buildings_cost_area_idx (уже есть) + GIST на geom

Frontend:

  • В sidebar /site-finder — новый аккордеон «Соседи»:
    • Слайдеры min_floors / min_year_built / min_cost_per_m2 / radius
    • Чекбокс «Только premium-зоны» (preset min_cost=50K)
  • На карточке участка — мини-секция «Соседство»:
    • N зданий в радиусе X
    • Средняя/медианная этажность, год постройки, кадастр ₽/м²
    • Top-3 соседних здания с наибольшей кадастровой стоимостью

Acceptance

  • Endpoint фильтрует ≥1000 участков по новым параметрам за <500мс
  • UI показывает результаты на карте с цветовой градацией по neighborhood_score
  • Тест: для центра ЕКБ найдены участки с neighbors avg cost ≥80 000 ₽/м²

Зависит от

  • #7 (Stage 2a — ПКК-парсер парцелей загружен)

Effort

~2 дня.

## Идея После загрузки 10 590 cad_buildings из NSPD (полная схема — purpose, year_built, floors, cost_value, geom) у нас есть точное представление о застройке вокруг любого участка. Site Finder сейчас фильтрует только по площади / ВРИ / расстоянию до центра — можно добавить **контекстные фильтры** по соседним зданиям. ## Что сделать **Backend:** - Расширить `POST /api/v1/parcels/search` фильтрами: - `min_neighbor_floors` (например, ≥9 = «среди многоэтажек») - `min_neighbor_year_built` (например, ≥2010 = «новый фонд») - `min_neighbor_cost_per_m2` (например, ≥40 000 ₽/м² = «премиум-зона») - `radius_m` (по умолчанию 500м) - Скоринг: к 3 текущим критериям добавить `neighborhood_score` = средневзвешенная цена/возраст/этажность зданий в радиусе - Использовать индекс `buildings_cost_area_idx` (уже есть) + GIST на geom **Frontend:** - В sidebar `/site-finder` — новый аккордеон «Соседи»: - Слайдеры min_floors / min_year_built / min_cost_per_m2 / radius - Чекбокс «Только premium-зоны» (preset min_cost=50K) - На карточке участка — мини-секция «Соседство»: - N зданий в радиусе X - Средняя/медианная этажность, год постройки, кадастр ₽/м² - Top-3 соседних здания с наибольшей кадастровой стоимостью ## Acceptance - [ ] Endpoint фильтрует ≥1000 участков по новым параметрам за <500мс - [ ] UI показывает результаты на карте с цветовой градацией по neighborhood_score - [ ] Тест: для центра ЕКБ найдены участки с neighbors avg cost ≥80 000 ₽/м² ## Зависит от - #7 (Stage 2a — ПКК-парсер парцелей загружен) ## Effort ~2 дня.
lekss361 commented 2026-05-11 16:38:45 +00:00 (Migrated from github.com)

Связано: migration 80 в session 2026-05-11 расширила model через view (массив + ) поверх существующего FK . Старая dead колонка дропнута. Recommend page comparables теперь возвращают buildings_n. Site Finder analyze endpoint (см. #8) использует cad_buildings как fallback geom-источник если cad-номер не квартал.

Связано: migration 80 в session 2026-05-11 расширила model через view (массив + ) поверх существующего FK . Старая dead колонка дропнута. Recommend page comparables теперь возвращают buildings_n. Site Finder analyze endpoint (см. #8) использует cad_buildings как fallback geom-источник если cad-номер не квартал.
lekss361 commented 2026-05-11 20:20:00 +00:00 (Migrated from github.com)

Закрываем — переехало в #46 (Geom P2) — расширенный scope (соседи-высотки в 100м + overlap check), в milestone Site Finder v4 — scoring quality.

См. https://github.com/lekss361/-gendesign/issues/46

Закрываем — переехало в **#46 (Geom P2)** — расширенный scope (соседи-высотки в 100м + overlap check), в milestone **Site Finder v4 — scoring quality**. См. https://github.com/lekss361/-gendesign/issues/46
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#21
No description provided.