Материал: Digitals

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Подсистема контроля карт

допуск точности координат. Точки с разницей в координатах меньше допустимой считаются совпадающими.

С помощью данного инструмента не удастся найти удаленные объекты, но это не беда. Достаточно переключиться во вторую карту и повторить операцию сравнения. Естественно, что объекты, отсутствующие в первой карте, во второй будут найдены как новые.

Пример применения придумать не сложно. Допустим, вы ведете дежурную карту, на которой ведете учет отведенных земельных участков. Инструмент позволяет легко отслеживать текущие изменения в карте, по сравнению с некоторой ее промежуточной копией, которая делается, к примеру, в начале месяца.

ЦМР

Сравнивает объекты с типом слоя Сетка ЦМР из двух открытых карт и выдает окно со статистикой. Узлы сеток должны совпадать в плановом отношении. Может использоваться для контроля изменений в ЦМР. Больше о ЦМР читайте в главе Гл.10, «Работа с ЦМР».

Подсистема контроля карт

В этом разделе рассматривается наиболее “продвинутый” способ проверки карты, а именно, подсистема контроля карт, запускаемая командой Карта > Контроль….

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

Для работы подсистема контоля карт использует один из настраиваемых сценариев контроля. Каждый сценарий представляет собой текстовый файл с расширением MCS (Map Control Script), в котором описаны правила проверки карты. О том, как составлять собственные сценарии, мы поговорим ниже в разделе «Написание собственного сценария». Пока же рассмотрим, как выбрать готовый сценарий и выполнить контроль.

Выбор сценария для контроля карты

Сценарии размещаются в подпапке Control программной папки. В этой папке присутствует несколько примеров сценариев, правда, активен по умолчанию лишь так называемый универсальный сценарий, размещенный в файле Control.mcs. Остальные сценарии (файлы 10000.txt, 2000.txt, in4.txt) неактивны, однако вы всегда можете задействовать их, переименовав расширение TXT в MCS.

Универсальный сценарий контроля проверяет наиболее типовые ошибки и составлен таким образом, чтобы быть максимально независимым от применяемого классификатора. В частности, этот сценарий решает задачу проверки топологической целостности кадастровых обменных файлов форматов IN4 и XML, а также задачу проверки цифровой карты для последующего экспорта в ГИС. Так, сценарий находит ошибки несоответствия объектов типу слоя, что является важным при сохранении в формат ArcGIS SHP (например, точечные объекты в линейных слоях или незамкнутые полигоны в площадных). Осуществляются и другие проверки, например, контроль примыкания линии к другой линии без узловой точки.

Программа выбирает сценарий контроля в зависимости от перечисленных ниже условий:

Если сценарий единственный из доступных, то он будет выбран во всех случаях. Именно такая ситуация возникает сразу после установки программы (универсальный сценарий).

Если присутствуют сценарии с именами 10000.mcs, 2000.mcs и подобными, то программа выберет сценарий, соответствующий масштабу карты.

Если задана константа ControlScript, то подсистема будет использовать сценарий, заданный в качестве ее значения. Вы можете разработать свой сценарий, положить его в папку Control и указать его имя Name в качестве значения константы. Пример: ControlScript=Name.mcs.

Константы представляют собой пары вида Имя=Значение и располагаются на закладке Главная диалога настроек программы. Каждая константа регулирует тонкости поведения

201

Глава 7. Работа с картой (продолжение)

тех или иных функций программы. Как правило, значения констант установленные по умолчанию вполне удовлетворяют типичные потребности пользователя программы. Мы будем знакомиться с теми или иными константами по мере надобности.

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

Процесс контроля

Чтобы запустить процесс контроля, следует выполнить команду Карта > Контроль…. Подсистема выберет подходящий сценарий по описанным выше правилам и запустит проверку.

Взависимости от количества объектов и сложности правил проверки, находящихся в сценарии, процесс проверки может занять довольно продолжительное время. В этом случае будет отображено окно прогресса контроля, в котором операцию проверки можно прервать досрочно.

Вконечном итоге, откроется окно Протокола контроля, пример которого показан на Рис.7.22.

Рисунок 7.22. Окно “Протокол контроля карты”

Остановимся на элементах окна подробнее.

Общее количество найденных ошибок указано в заголовке окна.

В левой части окна распологается, собственно, список ошибок. Каждая ошибка снабжена пиктограммой и описанием.

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

В нижней части окна отображается строка с правилом контроля, соответствующим указанной ошибке.

Справа расположен выпадающий список, в котором выбирается текущий сценарий контроля.

202

Подсистема контроля карт

Ниже него расположена кнопка Повторить контроль и ряд кнопок, управлящих рабочим окном карты:

Кнопка, задающая начальный масштаб рабочего окна карты (крупно или мелко) при позиционировании на ошибку.

, ,

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

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

Список ошибок может иметь значительный объем, и это наводит на мысль, что не все ошибки удасться “осилить” в один присест. Поэтому подсистема сохраняет текущий список ошибок во внешнем файле формата TXT, расположенном в подпапке Control\Log. Имя файла соответствует имени файла карты.

Во время следующего сеанса работы подсистема использует уже готовый список, не выполняя вновь длительной проверки. Разумеется, в этом случае проверку можно выполнить принудительно, нажав кнопку Выполнить контроль, которая отображается взамен рассмотренной выше кнопки Повторить контроль.

Написание собственного сценария

Несмотря на наличие готовых сценариев, по настоящему серьезных результатов можно добиться только используя свой, индивидуально “заточенный” под ваши нужды сценарий. Этот сценарий будет учитывать особенности используемого в вашей работе классификатора и отображать ваши специфические требования к составлению карты.

Написать сценарий, в принципе, работа не сложная, но требующая определенного внимания и аккуратности. Далее мы рассмотрим принципы написания собственных сценариев.

Cценарий содержит набор правил проверки карты. Каждое правило задает условие сравнения определенной пары объектов, выполнение которого является ошибкой.

Правила группируются по секциям сценария, определяющим тип проверки. Тип проверки соответствует некоторому топологическому отношению, например, проверке пересечения объектов, проверке вложенности объектов и тому подобным вариантам. Также предусмотрены секции для проверки содержимого параметров и наличия подписей.

Поскольку сценарий контроля представляет собой текстовый файл, для его написания можно использовать обычный Блокнот. Однако удобнее редактировать текст сценария в окне

Протокола ошибок, переключившись на закладку Редактировать сценарий. В этом окне реализована подсветка синтаксиса, поэтому читать такой сценарий намного легче.

Вкачестве заготовки можно использовать любой из существующих сценариев - для этого просто скопируйте его под новым именем.

Втексте сценария можно использовать комментарии. Таковыми считаются строки, начинающиеся с символа ; (точка с запятой). Например, в шапке универсального сценария Control.mcs в виде комментариев кратко даны сведения о принципах написания сценариев.

Общая схема составления правил следующая:

[Тип проверки] Описание проверки Условие1 : Условие2 ; Строка описания ошибки

При этом:

Для случая проверок топологических отношений Условие1 и Условие2 указывают, какие именно объекты войдут в пару взаимно проверяемых объектов. Возможные условия отбора объектов:

203

Глава 7. Работа с картой (продолжение)

по коду слоя;

с помощью символа-заместителя (описание применяемых символов смотрите в Табл.7.3);

с помощью указания переменной, содержащей набор слоев (псевдонима).

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

$ИмяПеременной=КодСлоя1,КодСлоя2,КодСлоя3 и так далее через запятую.

Для случая проверки содержимого параметра Условие1, как и в первом случае, отвечает за отбор объектов, а Условие2 представляет собой выражение, состоящее из кода параметра, операции сравнения и значения параметра (то есть выражение проверки). Доступные операции сравнения описаны в Табл.7.4.

Для случая проверки наличия подписи Условие2 указывает код параметра, для которого выполняется соответствующая проверка.

Строка описания ошибки содержит текст, который будет отображен в протоколе. В текст ошибки можно подставить имя слоя или параметра реально проверяемого объекта из Условия1 и Условия2. Для этого следует использовать символы заместители %L1 (для слоя из Условия1), %L2 (для слоя из Условия2) и %P (для параметра). Смотрите «Пример сценария» ниже для лучшего понимания.

Описание проверки - это просто описательная строка, помогающая лучше понять суть соответствующего типа проверки. Ее наличие не обязательно.

Здесь мы не будем подробно останавливаться на всех типах проверок, которые можно применять при составлении правил контроля карты. Подробное описание с примерами применения вы можете найти в файле Control.doc, который находится в подпапке Control программной папки. В качестве образца вы можете использовать существующие сценарии из той же папки.

Рекомендуем также ознакомиться со статьей1 Дарьи Сагайдак “Модуль контроля топологии и параметров карты в Digitals” на сайте программы.

Таблица 7.3. Символы-заместители, применяемые в сценарии контроля карты

Символ

Описание

 

 

F

Рамка (Frame)

 

 

P

Любой точечный объект (Point)

 

 

L

Любой линейный объект (Line)

 

 

A

Любой пощадной объект (Area)

 

 

O

Любой прочий объект: таблицы, изображения... (Other)

 

 

S

Этот же объект (Self)

 

 

N

Объект того же слоя

 

 

* (звездочка)

Любой объект

 

 

Таблица 7.4. Операции, доступные в сценарии контроля карт при проверке параметров

Символ

 

Описание

 

 

 

=

Равно

 

 

 

>

Больше

 

 

 

<

Меньше

 

 

 

/

Кратно

 

 

 

\

Не кратно

 

 

 

 

 

 

1 http://www.vinmap.net/?act=check_topology

204

Подсистема контроля карт

Символ

Описание

 

 

<>

Не равно

 

 

>=

Больше или равно

 

 

<=

Меньше или равно

 

 

Пример сценария

Рассмотрим несколько фрагментов описаний реальных правил контроля, взятых из сценариев

Control.mcs и 2000.mcs.

$Квартал=10000,70004 $Участок=20000,70005 $Угодье=30000,70009 $Смежник=50000,70010

[Parameters] Ошибки параметров и размеров

A: 0<=0.01; Площадной объект %L1 имеет нулевую площадь L: -8<2; Линейный объект %L1 состоит из одной точки

*: -10<0.05; Длина линии объекта меньше 5 см

44200200:119<>руїна; %L1 - ошибка в заполнении параметра %P - руїна

[Not Captions] Ошибки не вынесения подписей 44200000:13; %L1 - не вынесен на карту параметр %P

44200100,44200200:119; %L1 - не вынесен на карту параметр %P

[Not Inside] Ошибки не вложенности

$Участок:$Квартал; Объект %L1 не лежит внутри объекта %L2 $Угодье:$Участок; Объект %L1 не лежит внутри объекта %L2

[NEARSYMBOL 3.0]

71132400:N; %L1 - частое расположение (ближе 3.0 мм.)

Пример описания переменной для набора слоев (псевдонима). Заголовок секции контроля параметров.

Проверка параметра 0 “Площадь” для всех площадных объектов. В случае значения площади, меньшего 0.01 кв.м. выводится ошибка с указанием имени слоя проверяемого объекта.

Проверка соответствия содержимого параметра с кодом 119 для объектов с кодом 44200200 тексту

руїна.

Проверка наличия подписей для параметра с кодом 119 для объектов на слоях с кодами 44200100,44200200. Правило находится в секции контроля ошибок не вынесения подписей. Проверка вложенности участков в квартал. Вместо явного указания кодов слоев проверяемых объектов, здесь, как видим, используются ранее определенные переменные.

Проверка близости расположения объектов с кодом 71132400 по отношению к объектам того же слоя.

205

Источник: https://studfile.net/preview/16666704/