Сеть под землёй в 3D
Трубы тепловой сети на глубине заложения в 3D: земля рядом полупрозрачная, вблизи трубы в масштабе по наружному диаметру, камеры — по размерам из карточки.
Возможности
- Трубы на глубине заложения: цвет — класс глубины (до 1 м, 1–2 м, 2–3 м, глубже 3 м), отдельно надземная прокладка и трубы с неизвестной глубиной (на поверхности).
- Вблизи (до 1500 м от камеры) — цилиндры в масштабе по наружному диаметру, дальше — линии.
- Тепловые камеры — объёмы по внутренним размерам из карточки или точки, если размеров нет.
- Земля вблизи полупрозрачная: видно, что под ней.
- Счётчик: сколько труб в виде и у скольких известна глубина; кнопка обновить — загрузить участки после сдвига вида.
Как это работает
Глубина — до верха трубы: отметка земли минус отметка верха трубы в концевых узлах участка (nodes.geomarknodearea − nodes.geomarktoptube). Если у обоих концов отметок нет, глубина оценивается по соседним узлам. Поле паспорта «Глубина заложения» не используется: в базах там почти везде значение по умолчанию. Рассчитанные глубины хранятся в таблице tgid_heat_depth, API обновляет её сам.
Загрузка. Кнопка «Сеть под землёй» запрашивает участки показанных фрагментов в прямоугольнике текущего вида (GET /api/v1/network3d/lines). Подача и обратка на одной трассе рисуются одной трубой.
Что нужно для работы
- Отметки земли и верха трубы в узлах — иначе трубы лежат на поверхности серым («глубина неизвестна»).
- Вид не больше 0,5° по стороне (примерно 40–55 км): приблизьте карту.
- Браузер с WebGL и видеокарта: без неё 3D-вид работает медленно и с искажениями.
- Фотореалистичные здания («Здания 3D») — ключи Cesium ion у веба (см. «Для администратора»).
Шаги
Приблизьте место и нажмите «2D/3D» — карта перейдёт в 3D-вид.

«Сеть под землёй» загружает участки текущего вида. В панели — сколько труб и сколько из них с известной глубиной, легенда по глубине и пояснение.

Примеры
Центр Алматы. В виде у точки 43,252° с. ш., 76,946° в. д. — «Труб — 99, с глубиной — 99»: отметки есть у всех узлов, и все трубы легли на свою глубину.
Если не получается
- «Наклоните камеру к земле: в виде нет поверхности» — в кадре только небо.
- «Слишком большая область — приблизьте вид (до 0,5° по стороне)».
- «Сеть под землёй не загрузилась» — ошибка сервера; повторите кнопкой обновления.
- Все трубы серые — в узлах нет отметок земли или верха трубы.
Для администратора
NUXT_PUBLIC_CESIUM_ION_TOKEN,NUXT_PUBLIC_CESIUM_PHOTOREALISTIC_ASSET_ID(0 — без кнопки «Здания 3D»); необязательная отдельная 3D-модель сети —NUXT_PUBLIC_NETWORK_TILESET_URL.- Пределы сервера: до 20 000 участков и 5000 камер за запрос; модель вида кешируется на 10 минут.
Для разработчика
- API:
routers/network3d.py,database/network3d.py, глубины —database/heat_depth.py;GET /api/v1/network3d/lines?bbox=минДолгота,минШирота,максДолгота,максШирота&fileids=…. - Веб:
components/CesiumViewer.vue,utils/cesiumUnderground.ts,utils/network3d.ts,services/api/network3d.ts. - Тесты:
tests/test_network3d.py,test_network3d_router.py,test_heat_depth.py; веб —tests/utils/network3d.spec.ts.
