feat(concept): 3D-макет окружения — соседние здания из кадастра в §7 (#2180) #2210
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2210
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/massing-neighbors-2180"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
cad_buildings(НСПД) рендерятся серыми низкополигональными объёмами вокруг участка — и в 3D (экструзия floors×3 м, fallback 6 м, opacity 0.55, тени от солнца-слайдера), и в 2D-плане (нейтральный неинтерактивный слой под корпусами).GET /parcels/{cad}/neighbor-buildings?radius_m=300(50..1000) — GeoJSON footprint'овST_DWithinпо geography (GIST-индекс, EXPLAIN 28 мс на плотнейшем участке ЕКБ, 103 мс на radius 1000), исключая пересекающие сам участок; упрощение геометрии; LIMIT 300 по расстоянию +truncated; 404 только при отсутствии геометрии участка (пустые соседи → честный 200).useNeighborBuildings(TanStack), отдельная three.js Group с корректным dispose (без дублей при смене варианта), cap 200; standalone/conceptбез кадастра работает как раньше (enabled=false). Подпись «Соседние здания — контуры и этажность НСПД…» при count>0.app.openapi()+ пиненный openapi-typescript).Test plan
Refs #2180
Backend: GET /parcels/{cad}/neighbor-buildings?radius_m=300 → GeoJSON footprint'ов cad_buildings вокруг участка (ST_DWithin geography, GIST, EXPLAIN 28мс на плотном участке; NOT ST_Intersects с самим участком; SimplifyPreserveTopology; LIMIT 300 по расстоянию + truncated; 404 только при отсутствии геометрии участка). Свойства: floors, height_m (этаж 3 м), building_name, year_built. Frontend: hook useNeighborBuildings (TanStack) + серые низкополигональные экструзии в Massing3DScene (0.55 opacity, fallback 6 м, cap 200, отдельная Group с корректным dispose) + неинтерактивный слой в 2D-плане под корпусами; cadNum прокинут из Section7Concept; standalone /concept без кадастра работает как раньше. Подпись про НСПД-этажность при count>0.