Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Digitals.pdf
Скачиваний:
73
Добавлен:
28.06.2022
Размер:
9.86 Mб
Скачать

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

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

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

, ,

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

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

Список ошибок может иметь значительный объем, и это наводит на мысль, что не все ошибки удасться “осилить” в один присест. Поэтому подсистема сохраняет текущий список ошибок во внешнем файле формата 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