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.
|
||
|---|---|---|
| .. | ||
| v1 | ||
| __init__.py | ||