Импорт SHP / Excel / координат

Импорт узлов и участков из SHP или Excel и координат узлов: сопоставление полей, превью, отмена импорта.

Где найти
«Инструменты» (значок чемоданчика справа вверху) → Исходные данные → «Импорт SHP / Excel / координат». То же — палитрой команд: Ctrl+K и начните набирать название.
Права
право «Импорт сети» — иначе пункт в меню не виден.
Короткое видео: как это выглядит в системе
Читаю как

Возможности

  • Три режима: «Узлы» (точки → новые узлы фрагмента), «Участки» (линии → новые участки), «Координаты узлов» (перенос существующих узлов).
  • Источники: файл ГИС (shapefile в zip или набором файлов, GeoPackage, GeoJSON и ESRI JSON, FlatGeobuf, SXF+RSC, GML, KML, MapInfo, база ArcGIS *.gdb в zip), таблица .xlsx или .csv; для участков ещё треки .gpx и линии .dxf.
  • «Разобрать файл» — колонки, число строк, система координат файла, образец значений; у многолистовой книги — выбор «Лист», у многослойного файла ГИС — «Слой файла», у DXF — «Слои DXF (пусто — все)».
  • Сопоставление полей: колонки предлагаются сами по названиям, любую можно сменить или выбрать «— не импортировать —»; обязательные поля отмечены звёздочкой, справа — пример значений из файла.
  • Параметры: фрагмент; система координат («Из файла», «WGS84: долгота / широта», «Местная система (SRID 9998), м», «Координаты десктопа (x/y узлов, см)»); для участков — «Допуск привязки концов, м» (до 50 м); для координат — «Узел в файле — это» (код или номер), «Пересчитать длины участков по геометрии», «Построить геометрию участков без линии».
  • «Проверить (dry-run)» — отчёт без записи: что будет создано или перенесено, ошибки по строкам. «Пропустить строки с ошибками» — применить без них.
  • «Применить» и «Отменить импорт» — запись одной операцией и её отмена.

Как это работает

Разбор. Файл ГИС читает GDAL: система координат берётся из файла, у shapefile без .prj её нужно указать. Таблица Excel/CSV — первая строка заголовков, CSV в UTF-8 или Windows-1251. Если в колонках X/Y градусы, окно само выбирает WGS84. Не больше 5000 строк и 20 МБ за загрузку; zip распаковывается не больше чем в 200 МБ.

Узлы. Каждая строка — новый узел выбранного фрагмента в таблице nodes: код (externalnodename), наименование, рег. номер, отметка земли. Код расчётной схемы и признак нового узла — от ближайшего узла фрагмента, как при создании узла в редакторе.

Участки. Каждая линия — новый участок (linesobj) с паспортом трубы (heatpipesections) по образцу участка фрагмента; Ду и длина — из полей файла, если они сопоставлены. Концы линии привязываются к узлу фрагмента в пределах допуска, иначе создаются новые узлы; узлы, созданные этим же импортом, тоже находятся. Мультилинии нужно разбить заранее.

Координаты. Строка «код или номер узла → X, Y» переносит узел так же, как перенос в редакторе: концы участков идут за узлом, длины паспорта пересчитываются по геометрии. Поиск по коду ограничен выбранным фрагментом.

Проверка и запись. И проверка, и запись выполняют импорт целиком в одной транзакции; проверка затем откатывается — поэтому номера в отчёте проверки условные. Строка с ошибкой не ломает остальные. При записи строки с ошибками останавливают импорт, если не отмечено «Пропустить строки с ошибками». Записанный импорт — одна операция журнала отмены топологии (IMPORT_NODES, IMPORT_LINES или IMPORT_COORDS) и записи в audit_log; «Отменить импорт» удаляет созданное или возвращает прежние координаты. В отчёте — не больше 500 действий.

Ограничение. Проверка не сравнивает точки с районом сети: если выбрать неверную систему координат, узлы окажутся далеко от города, а отчёт покажет «Будет: узлов создано: …» без предупреждения. Смотрите на карту сразу после записи.

Что нужно для работы

  • Пункт в «Инструментах» и разбор файла — общее право «Импорт сети» и право «Участки: Создание».
  • Проверка (dry-run) — ещё и включённая запись топологии на сервере (TOPOLOGY_MUTATIONS_ENABLED=true, MUTATIONS_ENABLED=true): проверка тоже пишет, хоть и откатывает.
  • «Применить» — роль «Администратор» (сервер проверяет роль, а не матрицу прав). Окно предупреждает: «Разбор и превью — редактору при включённых правках топологии на сервере; применение — только администратору».
  • Отмена — пользователем, который сделал импорт, пока это его последняя операция топологии.

Шаги

  1. Откройте «Инструменты» и наберите в поиске «Импорт SHP / Excel / координат» — пункт выделен рамкой.

    Пункт «Импорт SHP / Excel / координат» в панели «Инструменты»

  2. Нажмите пункт — откроется окно.

    Окно «Импорт SHP / Excel / координат»

  3. Выберите, что импортировать («Узлы», «Участки» или «Координаты узлов»), укажите файл и нажмите «Разобрать файл». Ниже появятся параметры и таблица сопоставления полей. Выберите фрагмент, куда добавлять объекты, и систему координат файла; проверьте, что каждой колонке файла соответствует нужное поле.

    Импорт SHP / Excel / координат: шаг 3

  4. Нажмите «Проверить (dry-run)». База не меняется: в отчёте видно, сколько объектов будет создано и какие строки с ошибками. Если всё верно — нажмите «Применить»; ошибочные строки можно пропустить флажком «Пропустить строки с ошибками».

    Импорт SHP / Excel / координат: шаг 4

Примеры

Учебный файл узлов. Файл import-nodes.csv из комплекта инструкции: три вымышленные точки «УЧ-1», «УЧ-2», «УЧ-3» с колонками code, name, x, y, elevation. «Разобрать файл»: «Таблица, строк: 3», сопоставление подставилось само (X ← x, Y ← y, код ← code, наименование ← name, отметка ← elevation), система — «WGS84: долгота / широта». «Проверить (dry-run)»: «Будет: узлов создано: 3 (строк: 3)», строки отчёта начинаются со «стр. 2» — первая строка файла занята заголовками.

Копия Алматы: запись и отмена. В учебный фрагмент — копию фрагмента 42 (14 узлов) — импорт записал три узла: в фрагменте стало 17 узлов, узел «УЧ-1» лёг в точку 76,9205; 43,2405. «Отменить импорт» удалил три узла, во фрагменте снова 14.

Если не получается

  • Кнопка «Проверить» неактивна — не выбран фрагмент или не сопоставлено обязательное поле (они отмечены звёздочкой, список — под кнопкой).
  • Объекты легли не туда — неверная система координат: «Отменить импорт», выберите систему в списке «Система координат» и проверьте снова. Проверка (dry-run) не сравнивает точки с районом сети — смотрите на карту после записи.
  • Кнопка «Применить» неактивна — нет права на правку топологии, после проверки поменялись параметры (проверьте ещё раз), в отчёте есть ошибки без флажка «Пропустить строки с ошибками» или нет ни одной годной строки. Записать импорт может только администратор: иначе сервер отвечает «Применение импорта — роль admin (правка топологии)».
  • Импорт сделан по ошибке — нажмите «Отменить импорт» в этом же окне.
  • «Укажите фрагмент (fileid)» — фрагмент не выбран (для режимов «Узлы», «Участки» и координат по коду).
  • «В файле больше 5000 строк — разбейте импорт на части», «Загрузка больше 20 МБ», «Архив распаковывается больше чем в 200 МБ» — слишком большой файл.
  • «Не удалось определить кодировку CSV (ожидается UTF-8 или Windows-1251)», «Формат .xls (Excel 97–2003) не поддерживается — сохраните файл как .xlsx или CSV», «Нет файла … — shapefile неполный» — сохраните файл заново или добавьте недостающие части shapefile.
  • «В … нет системы координат: укажите её (WGS84, местная или десктоп)» — выберите систему в списке «Система координат».
  • «… — трассы участков: выберите режим «Участки»» — GPX и DXF бывают только трассами.
  • Ошибки строк в отчёте: «… — не число», «долгота/широта вне диапазона WGS84», «нет геометрии», «мультилиния из … частей — разбейте на участки», «диаметр вне 0…2000 мм».
  • «Применение импорта — роль admin (правка топологии)» — запись разрешена только администратору.
  • «Отмена не выполнена: …» — после импорта были другие операции топологии этого пользователя или объекты правили; отмените их по порядку в «Истории правок».

Для администратора

  • Флаги: MUTATIONS_ENABLED, TOPOLOGY_MUTATIONS_ENABLED. Без них недоступны и проверка, и запись.
  • Импорт пишет журнал отмены топологии и audit_log, после записи сбрасывается кеш моделирования отключений. Чтение файлов ГИС — через GDAL (pyogrio) на сервере API.
  • Кнопка «Сопоставить ИИ» в окне видна только при включённом помощнике ИИ.

Для разработчика

  • API (routers/network_import.py, database/network_import.py, трассы GPX/DXF — database/survey_formats.py): POST /api/v1/import/inspect (multipart: files, mode, encoding, sheet, layer) и POST /api/v1/import/run (files, params — JSON mode, fileid, source_crs, mapping, match_by, snap_tolerance_m, recalc_lengths, build_missing_lines, skip_errors, sheet, layer, layers; dry_run). Ошибки строк при записи без skip_errors — 422 row_errors с отчётом. Отмена — POST /api/v1/topology/undo (operation_id).
  • Веб: components/NetworkImportDialog.vue, utils/networkImport.ts, запросы — services/api/reports.ts (inspectNetworkImport, runNetworkImport).
  • Тесты: API — tests/test_network_import.py, tests/test_network_import_gdal.py, tests/test_survey_import.py; веб — tests/utils/networkImport.spec.ts; e2e — e2e/functions/source-data.spec.ts («Импорт сети из файла»: разбор import-nodes.csv, dry-run, запись в учебный фрагмент, отмена, сверка числа узлов через API).
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо