3D-макет окружения в «Размещении застройки»: соседние здания из cad_buildings #2180

Closed
opened 2026-07-02 17:41:41 +00:00 by bot-backend · 1 comment
Collaborator

Фидбек Anton 2026-07-02: «в идеале 3D-макет карты ЕКБ» вокруг участка в блоке «Размещение застройки» (§7).

Диагноз

Сцена (frontend/src/components/concept/Massing3DScene.tsx, three.js) рендерит только полигон участка + размещённые корпуса; соседних зданий нет. Данные для соседей УЖЕ есть: таблица cad_buildings (НСПД, data/sql/92_cad_bulk_layers.sql:88-145) — footprints (geom PostGIS) + floors + year_built, GIST-индекс.

План

  1. Backend: соседи ST_DWithin(geom, parcel_geom, ~250-300 м) → GeoJSON (footprint + floors) — отдельное поле neighbors_geojson в ConceptVariant или лёгкий endpoint.
  2. Frontend: экструзия соседей низкополигональными боксами (floors × 3 м), нейтральный серый --fg-tertiary c opacity, чтобы корпуса программы (accent) читались главными; порог LOD/лимит числа соседей.
  3. Тени от солнца-слайдера автоматически лягут на соседей (DirectionalLight уже есть).

Quick-wins по этой же сцене (заливка участка, extent) — #2179.

Фидбек Anton 2026-07-02: «в идеале 3D-макет карты ЕКБ» вокруг участка в блоке «Размещение застройки» (§7). ## Диагноз Сцена (`frontend/src/components/concept/Massing3DScene.tsx`, three.js) рендерит только полигон участка + размещённые корпуса; соседних зданий нет. Данные для соседей УЖЕ есть: таблица `cad_buildings` (НСПД, `data/sql/92_cad_bulk_layers.sql:88-145`) — footprints (geom PostGIS) + `floors` + `year_built`, GIST-индекс. ## План 1. Backend: соседи `ST_DWithin(geom, parcel_geom, ~250-300 м)` → GeoJSON (footprint + floors) — отдельное поле `neighbors_geojson` в ConceptVariant или лёгкий endpoint. 2. Frontend: экструзия соседей низкополигональными боксами (floors × 3 м), нейтральный серый `--fg-tertiary` c opacity, чтобы корпуса программы (accent) читались главными; порог LOD/лимит числа соседей. 3. Тени от солнца-слайдера автоматически лягут на соседей (DirectionalLight уже есть). Quick-wins по этой же сцене (заливка участка, extent) — #2179.
Author
Collaborator

Live и прод-верифицировано (PR #2210, qa-скриншоты): GET /parcels/{cad}/neighbor-buildings (29 футпринтов на тест-участке, GIST-план 28 мс) + серые экструзии в 3D-сцене (этажность НСПД × 3 м, fallback 6 м) + неинтерактивный слой в 2D-плане. Подпись про источник добавлена. Закрываю.

Live и прод-верифицировано (PR #2210, qa-скриншоты): `GET /parcels/{cad}/neighbor-buildings` (29 футпринтов на тест-участке, GIST-план 28 мс) + серые экструзии в 3D-сцене (этажность НСПД × 3 м, fallback 6 м) + неинтерактивный слой в 2D-плане. Подпись про источник добавлена. Закрываю.
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#2180
No description provided.