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

Глава 6. Классификатор

4.Не закрывая окна, установите курсор на строку Автостради и назначьте подходящий условный знак данному значению с помощью кнопки Условный знак.

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

5.В Менеджере слоев создайте слой “Дороги”. Установите для него тип Полигон/Полилиния.

Желательно выбирать тип слоя, совместимый с выбранными условными знаками: Одиночный символ для знака Одиночный, Полигон/Полилиния для Линейный и тому подобное.

6.Выберите данный слой в списке и назначьте ему параметр “Тип дороги”, который мы только что создали.

Теперь вы можете собирать все дороги в одном слое, а конкретный знак назначать им, выбирая тип дороги из списка в панели Инфо.

Производные параметры

Производные параметры это параметры, вычисляемые из значений других (исходных) параметров.

Если вы работали с электронными таблицами Microsoft Excel или OpenOffice Calc, то производные параметры, возможно, напомнят вам ячейки с формулами.

В общем случае производный параметр определяется следующим образом: =Выражение ИмяПараметра.

Выражение, вычисляющее параметр, начинается со знака = (равно) и задается перед именем параметра. От самого имени выражение отделяется пробелом. Имя параметра может отсутствовать, в этом случае в качестве имени будет использовано само выражение.

Имена производных параметров отображаются в панели Инфо подчеркнутым шрифтом. Значения таких параметров не поддаются правке.

Простейшим случаем производного параметра является параметр-дубликат. Дубликат определяется в виде ссылки на другой параметр, например: “=P[-2] Высота горизонтали”. В данном случае, выражение P[-2] ссылается на значение параметра с порядковым номером -2 (то есть, на значение параметра “Z”). Дубликаты часто используются для создания подписей для того же параметра, но с другим стилем отображения.

Производные параметры обычно имеют тип Вещественное или Строка. Тип производного параметра определяет способ вычисления его значения:

Параметр с числовым типом вычисляется согласно заданным арифметическим операциям и операндам.

144

Производные параметры

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

Параметр текстового типа конкатенирует (то есть, объединяет) исходные значения в одну строку.

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

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

Пусть мы имеем параметры числового типа с номерами 10, 11, 12 и содержащими 4, 5, 6 соответственно. В таком случае, производный параметр с именем “=P[10]*P[11]/P[12]” будет содержать значение:

3.33, если параметр имеет тип Вещественное;

4*5/6, если параметр имеет тип Строка.

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

P[номер], P[IDномер]

Ссылка на другой параметр по его номеру в списке параметров или по коду. Например: “=P[10] Дубликат параметра” или “=P[ID10120] Еще один дубликат параметра”.

Использование ссылки по коду делает ваше выражение не зависящим от порядка параметров в списке, который, потенциально, может измениться. Например, вследствие сортировки.

Parent[Номер], Parent[Номер](НомерСлоя)

Возвращает значение параметра из внешнего объекта. Параметр задается по номеру или коду.

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

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

Neighbors[Номер]

Функция применяется для извлечения определенного параметра у всех смежных объектов. Извлеченные значения, разделенные запятой, собираются в одну строку. Данную функцию можно использовать в шаблонах документов, в которых автоматически генерируется список смежников. О шаблонах документов мы будем говорить в Гл.12, «Применение в землеустройстве».

Функции в производных параметрах

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

Каждая функция имеет имя, по которому она встраивается в выражение.

Некоторые функции принимают аргументы (обычно в круглых скобках после имени).

Функции можно вкладывать друг в друга, составляя сложные выражения.

Функции разделяются на применяемые со строковыми (текстовыми) параметрами и числовыми.

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

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

145

Глава 6. Классификатор

Рассмотрим операции и функции, доступные для работы с параметрами типа Вещественное:

+ (плюс), - (минус), * (умножить), / (разделить), () (скобки)

Позволяет строить арифметические выражения в числовых параметрах.

Например, чтобы вычислить среднее из содержимого двух параметров, нужно определить параметр вида “=(P[1]+P[2])/2 Среднее значение”.

DeltaX, DeltaY, DeltaZ

Функции возвращают размах объекта по Х-координате, Y-координате и Z-координате соответственно.

SlopeAngle

Вертикальный угол уклона объекта.

SlopeDir

Дирекционный угол направления уклона объекта.

ObjectScale

Позволяет выяснить масштаб объекта, вставленного в карту командой Правка > Специальная вставка > В другом масштабе…. Также применяется в шаблонах документов DMT с автомасштабом.

Latitude, Longitude

Возвращают широту и долготу центра объекта соответственно.

AreaDeviation

Возвращает среднеквадратическую ошибку вычисления площади объекта, исходя из условия, что точность определения координат объекта составляет 1 метр. Для приведения ошибки, через * (звездочку) следует указать реальную точность определения координат объектов карты.

Например, параметр вида “=AreaDeviation*0.1” вернет ошибку площади для точности определения координат в 0.1 м.

Length3D

Вычисляет трехмерную (пространственную) длину объекта. Напомним, что фиксированный параметр с кодом -1 “Длина” вычисляет длину без учета координаты Z (то есть в проекции на горизонтальную плоскость).

Рассмотрим операции и функции, доступные для работы с параметрами типа Строка:

_ (подчеркивание)

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

Например, соединить два параметра через пробел в одну строку можно таким образом: “=P[1]_P[2] Два в одном”.

FIO(Строка)

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

Например, если параметр номер 10 содержит строку Иванов Иван Иванович, то параметр вида

“=FIO(P[10])” вернет Иванов И. И.

ROP(), FIR()

Склоняют в родительный падеж (Кого? Чего?). Функции возвращают полную и короткую форму имени соответственно. Например: Иванова Ивана Ивановича и Иванова И. И.

DAP(), FID()

Склоняют в дательный падеж (Кому? Чему?).

VIP(), FIV()

Склоняют в винительный падеж (Кого? Что?).

146

Производные параметры

TVT(), FIT()

Склоняют в творительный падеж (Кем? Чем?).

PRP(), FIP()

Склоняют в предложный падеж (О ком? О чем?).

Правила преобразования окончаний для каждого падежа задаются во внешних файлах, находящихся в программной папке. Сперва программа просматривает файл Names.txt, содержащий мужские имена. Затем из файлов Rod.txt, Dat.txt, Vin.txt, Tvo.txt, Pre.txt выбирается подходящее окончание (каждый из файлов отвечает за определенный падеж).

Файлы окончаний содержат три колонки: исходное окончание, окончание для мужских имен, окончание для женских. Если определенная строка окончаний помечена символом M или F, то эти окончания применяются только для мужского или женского имени соответственно.

LEN(Строка)

Возвращает длину строки. Строку можно задать ссылкой на параметр.

POS(Подстрока,Строка)

Возвращает позицию первого вхождения Подстроки в Строке.

CUT(НачальныйСимвол,Количество,Строка)

Вырезает часть Строки начиная с НачальногоСимвола и длиной в Количество. Например, “=CUT(4,2,P[26])” вернет два символа начиная с четвертого из параметра с номером 26.

CLP(Количество,Строка)

Возвращает Строку, обрезанную справа на Количество символов. Аргумент Количество может быть выражением.

FST(Лимит,Строка), RST(Лимит,Строка)

FST возвращает начальную часть Строки с количеством символов не более Лимит, обрезанную по ближайшему пробелу или запятой. RST возвращает остаток Строки после последнего перед Лимит символа пробела или запятой.

Функции обычно работают в паре и применяются для разбивки длинной Строки на две части. Пример применения данных функций можно найти в шаблоне госакта Госакт (голубой)

лицевая.DMT.

CLA(Строка)

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

GET(Часть,Строка)

Выполняет выделение частей из строки по запятым и пробелам. Функция в основном используется при работе с параметрами объектов обменных кадастровых файлов формата IN4.

Допустим, что параметр с номером 1 содержит строку один,два,три четыре пять. В этом случае:

функция GET(1,P[1]) вернет значение один, то есть первую часть строки, считая разделителем запятую.

функция GET(3/2,P[1]) вернет значение четыре, то есть сначала возьмет третью часть строки, считая разделителем запятую, а затем вторую часть из получившейся строки, считая разделителем пробел.

функция GET(3/-2,P[1]) вернет значение три пять, то есть возьмет третью часть строки, считая разделителем запятую, а затем из получившейся строки - все части кроме второй, считая разделителем пробел.

SEL(ПроверяемоеЗначение,Вход1|Выход1|Вход2|Выход2|...|*|ВыходПрочее)

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

Например, если в параметре номер 3 задано некое число, то параметр “=Sel(P[3],1|Один|2|Два|3|Три| *|P[15])” вернет Один, Два, Три - для чисел 1, 2, 3 соответственно, и содержимое параметра номер 15 - для всех остальных чисел.

147