Удалить объекты внутри объектов другой карты

Печать Предыдущая страница Стартовая страница Следующая страница

Скрипт предназначен для автоматического поиска и удаления объектов на одной векторной карте, которые полностью находятся внутри контуров объектов на другой векторной карте и имеют те же ключи. При этом удаляемые объекты можно перенести на карту‑архив.

Для работы необходимы две открытые векторные карты в одном документе. Одна карта выступает в роли «контейнера» (анализируемая, содержит внешние контуры), другая — в роли редактируемой (объекты которой проверяются на вхождение). Объекты редактируемой карты, полностью лежащие внутри объекта-контейнера с тем же ключом, считаются «внутренними» и подлежат удалению.

 

Требования к картам

• Обе карты должны быть открыты в текущем документе;

• Обе карты должны быть созданы по одному классификатору;

• Редактируемая карта должна иметь разрешение на редактирование (не должна быть защищена от записи).

 

Модели (условия поиска)

Скрипт использует модель, заданную в виде XML‑файла с расширением vclx. Она определяет, какие именно объекты на каждой карте будут участвовать в анализе.

При открытии диалога скрипт автоматически предлагает путь к файлу моделей по умолчанию, который ищется в папке классификатора (например, map5000m.rscz.vclx).

Если у вас нет готовой модели, вы можете создать её через диалог Поиск объектов карты, вызвав его по кнопке Добавить.

Подробнее о создании моделей можно прочитать в соответствующем разделе справки.

 

Интерфейс диалога

После запуска скрипта появляется окно со следующими элементами:

 

Элемент управления

Описание

Поле Анализируемая карта

Выпадающий список всех открытых карт. Выберите карту, относительно объектов которой будет выполняться поиск.

Поле Редактируемая карта

Карта, с которой будут удаляться объекты.

Кнопка Выбрать

Путь к файлу моделей.

Поле Файл моделей

Выбрать файл моделей.

Поле Модель

Выбор конкретной модели из загруженного файла.

Кнопка Добавить

Вызвать диалог Поиск объектов карты.

Галочка Удалённые объекты сохранять в карту

Установить опцию сохранения удалённых объектов в указанную карту.

Поле Карта удалённых объектов

Карта, на которую сохраняются удалённые объекты при включении соответствующей опции.

Кнопка Выбрать

Выбрать файл карты удалённых объектов.

Кнопка Выполнить

Выполнить скрипт.

Кнопка Выход

Закрыть диалог без выполнения.

Кнопка Помощь

Открыть страницу справочной системы.

 

clip0163

 

Чтобы начать работу в диалоге:

1. Откройте в ГИС «Панорама» документ, содержащий как минимум две векторные карты (например, Карта1.sitx и Карта2.sitx).

2. Во вкладке Скрипты диалога Запуск приложений найдите и запустите скрипт Удалить объекты внутри объектов другой карты.

3. В появившемся диалоге:

• В выпадающем списке Анализируемая карта выберите карту, относительно объектов которой будет выполняться поиск.

• В выпадающем списке Редактируемая карта выберите карту, с которой будут удаляться объекты.

• В поле Файл моделей укажите путь к файлу моделей, содержащему условия отбора объектов.

• В выпадающем списке Модель выберите конкретную модель (если их несколько).

• При необходимости установите галочку Удалённые объекты сохранять в карту и укажите соответствующую карту.

 

4. Нажмите кнопку Выполнить.

 

  Скрипт:

  • Загружает модели и находит все объекты на обеих картах, удовлетворяющие условиям.

  • Для каждого объекта на редактируемой карте проверяет, не лежит ли он целиком внутри одного из контуров объектов-контейнеров.

  • Если условие выполняется, объект копируется в новую карту‑архив и удаляется из исходной.

  • На экране отображается индикатор прогресса.

 

5. По окончании появится окно с сообщением о количестве перемещённых объектов.

 

Примечания и ограничения:

• Скрипт проверяет полное вхождение объекта в контур: объект должен быть расположен строго внутри, без касания границ или пересечения с внешним контуром.

• Если объект-контейнер имеет несколько внешних контуров, то проверяемый объект должен находиться целиком внутри хотя бы одного контура.

• Объекты с вырожденной метрикой (нулевое количество точек) игнорируются при проверке.

• Для работы требуется, чтобы в системе были установлены модули py_mapapi14 (штатная поставка ГИС «Панорама») и Python 3.5 или новее.

• Если редактируемая карта защищена от записи, скрипт выдаст предупреждение и не запустит операцию.

• При возникновении ошибок (например, не удалось создать архивную карту) скрипт выводит сообщение пользователю и завершается, не изменяя исходные данные.

• Скрипт не изменяет объекты-контейнеры и не затрагивает другие карты документа.

• Скрипт не работает с графическими объектами.