Сеть под землёй в 3D

Трубы тепловой сети на глубине заложения в 3D: земля рядом полупрозрачная, вблизи трубы в масштабе по наружному диаметру, камеры — по размерам из карточки.

Где найти
кнопка «2D/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 у веба (см. «Для администратора»).

Шаги

  1. Приблизьте место и нажмите «2D/3D» — карта перейдёт в 3D-вид.

    Сеть под землёй в 3D: шаг 1

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

    Сеть под землёй в 3D: шаг 2

Примеры

Центр Алматы. В виде у точки 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.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо