feat(site-finder): toggleable market map layers (#999, 3/4) #1113

Merged
bot-backend merged 1 commit from feat/market-map-layers-999 into main 2026-06-07 09:36:05 +00:00
Collaborator

Что

#999 (958-B4) — переключаемые рыночные слои на карте анализа: Конкуренты / Будущие проекты / Зоны риска.

Относится к #999 (3 из 4 слоёв; future-ЖК ждёт API-экспозиции newbuilding_listings#1108 построил таблицу).

Содержимое

  • MarketLayers.tsx — Leaflet-слои: конкуренты + pipeline как CircleMarker из analyze lat/lon (#1074), зоны риска — GeoJSON-полигоны из geom_wkt (мелкий inline WKT-парсер POINT/POLYGON/MULTIPOLYGON, без новых deps). Дефолт: Конкуренты ON, pipeline/risk OFF.
  • Тогглы в CpLayerControlPanel (секция «Рынок»); проводка MiniMap.toSiteMapData → SiteMap; типы competitor/pipeline +lat/lon.
  • Низкая коллизия: frontend-карта не трогалась активным ИРД-треком (последний коммит 2026-05-17). Аддитивно — существующие слои (ConnectionPoints/POI/NSPD) без изменений.

Качество

  • code-reviewer: APPROVE — координаты верны в обе стороны (GeoJSON lon-lat для <GeoJSON>, Leaflet lat-lon для CircleMarker, сверено с isochrones), depth-aware WKT-парсинг, garbage→null graceful, no-regression (null-guarded), TS strict, токены, no deps. npm run build зелёный.
  • Follow-up (non-blocking): unit-тесты WKT-парсера + EWKT-толерантность + QA на участке С зонами риска (тестовый их не имеет → этот путь не покрыт прогоном).

Тест-план (post-deploy)

/site-finder/analysis/66:41:0702048:27 Секция 1 мини-карта: маркеры конкурентов видны; тогглы «Будущие проекты»/«Зоны риска» работают.

## Что #999 (958-B4) — переключаемые рыночные слои на карте анализа: **Конкуренты / Будущие проекты / Зоны риска**. Относится к #999 (3 из 4 слоёв; future-ЖК ждёт API-экспозиции `newbuilding_listings` — #1108 построил таблицу). ## Содержимое - `MarketLayers.tsx` — Leaflet-слои: конкуренты + pipeline как CircleMarker из analyze `lat/lon` (#1074), зоны риска — GeoJSON-полигоны из `geom_wkt` (мелкий inline WKT-парсер POINT/POLYGON/MULTIPOLYGON, без новых deps). Дефолт: Конкуренты ON, pipeline/risk OFF. - Тогглы в `CpLayerControlPanel` (секция «Рынок»); проводка `MiniMap.toSiteMapData → SiteMap`; типы competitor/pipeline +lat/lon. - Низкая коллизия: frontend-карта не трогалась активным ИРД-треком (последний коммит 2026-05-17). Аддитивно — существующие слои (ConnectionPoints/POI/NSPD) без изменений. ## Качество - `code-reviewer`: ✅ APPROVE — **координаты верны в обе стороны** (GeoJSON lon-lat для `<GeoJSON>`, Leaflet lat-lon для CircleMarker, сверено с isochrones), depth-aware WKT-парсинг, garbage→null graceful, no-regression (null-guarded), TS strict, токены, no deps. `npm run build` зелёный. - Follow-up (non-blocking): unit-тесты WKT-парсера + EWKT-толерантность + QA на участке С зонами риска (тестовый их не имеет → этот путь не покрыт прогоном). ## Тест-план (post-deploy) `/site-finder/analysis/66:41:0702048:27` Секция 1 мини-карта: маркеры конкурентов видны; тогглы «Будущие проекты»/«Зоны риска» работают.
bot-backend added the
scope/frontend
site-finder
GG-форсайт
labels 2026-06-07 09:36:02 +00:00
bot-backend added 1 commit 2026-06-07 09:36:03 +00:00
feat(site-finder): toggleable market layers on analysis map (#999)
All checks were successful
CI / backend-tests (pull_request) Has been skipped
Deploy / deploy (push) Successful in 1m5s
CI / changes (push) Successful in 6s
CI / backend-tests (push) Has been skipped
CI / changes (pull_request) Successful in 6s
Deploy / changes (push) Successful in 6s
Deploy / build-backend (push) Has been skipped
Deploy / build-worker (push) Has been skipped
Deploy / build-frontend (push) Successful in 2m52s
3423a1db74
Add Конкуренты / Будущие проекты / Зоны риска Leaflet layers to the Site Finder
analysis map (MiniMap→SiteMap) with per-layer toggles in CpLayerControlPanel
(Конкуренты on by default; pipeline + risk off). Competitors/pipeline render as
distinct CircleMarkers from analyze lat/lon (#1074); risk zones as GeoJSON
polygons parsed from geom_wkt via a small inline WKT parser (no new deps).
Graceful on missing coords / empty arrays / thin responses. Coordinate order
verified (GeoJSON lon-lat for <GeoJSON>, Leaflet lat-lon for CircleMarker).

3 of 4 layers; future-ЖК (newbuilding) pending newbuilding_listings API exposure
(#1108 built the table). Part of #999.
bot-backend merged commit 3423a1db74 into main 2026-06-07 09:36:05 +00:00
Sign in to join this conversation.
No reviewers
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#1113
No description provided.