- •Digitals
- •Содержание
- •Введение
- •Кому адресована эта книга
- •Организация книги
- •Системные требования
- •Соглашения, принятые в данной книге
- •Вопросы и пожелания
- •Благодарности
- •Об авторе
- •Глава 1. Установка и обновление
- •Приобретение Digitals
- •Версии программы
- •Виды лицензий
- •Установка Digitals
- •Установка из Интернет
- •Электронный ключ защиты
- •Проверка установки
- •Установка сервера лицензий
- •Получение лицензии из локальной сети
- •Обновление Digitals
- •Обновление вручную
- •Обновление лицензии
- •Работа в демонстрационном режиме
- •Несколько версий на одном компьютере
- •Что в программной папке?
- •Глава 2. Краткий обзор интерфейса
- •Запуск Digitals
- •Запуск нескольких копий программы
- •Настройка языка интерфейса
- •Главное окно
- •Заголовок программы
- •Главное меню
- •Главная панель инструментов
- •Закладки открытых карт
- •Рабочее окно карты
- •Контекстное меню
- •Боковые панели инструментов
- •Строка статуса
- •Главное окно в режиме стерео
- •Использование боковой колонки
- •Получение помощи
- •Когда ничего не работает
- •Глава 3. Быстрый старт
- •Постановка задачи
- •Урок 1. Расчет полевой съемки
- •Урок 2. Привязываем растровую подложку
- •Урок 3. Составляем топографический план
- •Урок 4. Создаем обменный файл
- •Урок 5. Готовим документы
- •Подводим итоги
- •Глава 4. Основы работы с картой
- •Создание карты
- •Открытие и сохранение карт
- •Открытие перетаскиванием
- •Список “Избранное”
- •Автоматическое сохранение карт
- •Шаблоны карт
- •Создание собственных шаблонов
- •Установка свойств карты
- •Масштаб
- •Рамка
- •Система координат
- •Точность карты
- •Точность координат
- •Графическая точность
- •Ограничение доступа к карте
- •Режимы просмотра карты
- •Режим показа центров
- •Специальные режимы просмотра
- •Дополнительные настройки отображения
- •Управление рабочим окном карты
- •Навигатор
- •Глава 5. Сбор и правка объектов
- •Общие понятия
- •Захват точки
- •Точность захвата
- •Захват с клавиатуры
- •Пометка объекта
- •Особенности пометки нескольких объектов
- •Слои и их статус
- •Быстрое изменение статуса слоя
- •Параметры объекта
- •Отмена и повтор операций
- •Сбор
- •Выбор активного слоя
- •Избранные слои
- •Выбор слоя по образцу
- •Выбор из окна статуса слоев
- •Выбор шаблона сбора
- •Установка режима высоты
- •Порядок сбора
- •Дополнительные возможности при сборе
- •Особенности сбора объектов с разрывом
- •Настройки режима Сбор
- •Применение навигатора в процессе сбора
- •Режимы конструирования
- •Сбор по координатам
- •Новый объект
- •Вставка из буфера обмена
- •Правка
- •Манипулирование объектами в целом
- •Удаление объектов
- •Работа с буфером обмена
- •Правила вставки объектов
- •Специальная вставка
- •Перемещение объекта
- •Изменение порядка отрисовки
- •Изменение слоя объекта
- •Работа с точками (узлами)
- •Применение “горячих клавиш” при работе с узлами и линиями
- •Дополнительные возможности при перемещении узлов
- •Особенности работы с точечными объектами
- •Маркирование точек и линий
- •Окно свойств линии
- •Перемещение маркированной линии
- •Окно свойств объекта
- •Изменение координат объекта
- •Инструменты редактирования
- •Контекстное меню точки (узла)
- •Панель Правка
- •Меню Правка
- •Меню Сервис и прочие возможности
- •Инфо
- •Быстрое назначение параметров слою
- •Заполнение параметров
- •Копирование и вставка значений параметров
- •Копирование перетаскиванием
- •Специальная вставка
- •Шаблоны заполнения
- •Калькулятор
- •Фиксированные и производные параметры
- •Делаем карту плоской
- •Автоматизация заполнения параметров и выноса подписей
- •Поиск и замена
- •Поиск по списку
- •Поиск по содержимому нескольких параметров
- •Дополнительные возможности поиска
- •Замена значений
- •Инструмент Автоинфо
- •Вынос подписей
- •Быстрый вынос
- •Менеджер подписей
- •Манипулирование подписями в рабочем окне карты
- •Контекстное меню подписи
- •HTML-подписи
- •Особенности работы в режиме стерео
- •Глава 6. Классификатор
- •Устройство карты
- •Слои
- •Список слоев
- •Контекстное меню слоя
- •Режим редактирования имен
- •Порядок слоев
- •Фиксированные слои
- •Слой по умолчанию
- •Фильтрация списка
- •Поиск в списке слоев
- •Загрузка и сохранение списка
- •Тип слоя
- •Атрибуты отображения
- •Атрибуты линии
- •Атрибуты заливки
- •Атрибуты шрифта
- •Назначение условного знака слою
- •Назначение параметров слою
- •Группа слоя
- •Статус слоя
- •Диапазон видимости
- •Шаблон сбора
- •Сервисные операции
- •Параметры
- •Список параметров
- •Фиксированные параметры
- •Тип параметра
- •Атрибуты отображения
- •Атрибуты линии
- •Атрибуты заливки
- •Атрибуты шрифта
- •Назначение условного знака параметру
- •Условный знак, зависящий от содержимого параметра
- •Производные параметры
- •Функции в производных параметрах
- •Маска параметра
- •Маски форматирования
- •Маски правил проверки и форм ввода
- •Статус параметра
- •Библиотека условных знаков
- •Работа с каталогом знаков
- •Операции с буфером обмена
- •Создание и редактирование знака
- •Размер знака
- •Точка привязки знака
- •Тип знака
- •Рисование элементов знака
- •Пометка элементов знака
- •Изменение формы и положения элементов
- •Атрибуты отображения
- •Группировка элементов
- •Цепочки знаков
- •Сохранение библиотеки во внешний файл
- •Глава 7. Работа с картой (продолжение)
- •Группировка объектов
- •Манипулирование группами в целом
- •Манипулирование содержимым группы
- •Пометка объектов входящих в группу
- •Просмотр и редактирование объектов
- •Отображение групп в рабочем окне карты
- •Построения в карте
- •Засечки
- •Вынос в натуру
- •Преобразование объектов
- •Разворот объекта(ов)
- •Особенности поворота точечных объектов
- •Заполнение контуров точечными значками
- •Блоки
- •Порядок создания
- •Вставка блока в карту
- •Инструменты, применимые к карте в целом
- •Вставка внешних данных в карту
- •Обрезка и выравнивание карты
- •Разворот карты
- •Генерализация
- •Сводка, сшивка и другие сервисные операции
- •Статистика карты
- •Оформление карты
- •Зарамочное оформление на базе шаблона
- •Создание шаблона
- •Вставка шаблона
- •Вставка номенклатурной рамки
- •Вставка легенды
- •Сетка координат
- •Разбивка карты на листы
- •Вставка таблиц
- •Редактирование таблиц
- •Переопределение слоев и тематические виды
- •Переопределение слоев
- •Создание тематического вида
- •Проверка качества карты
- •Контроль узлов
- •Анализ карты в панели Список
- •Проверка типа и вложенности объектов
- •Навигация по дереву
- •Визуальный контроль совпадения узлов
- •Меню Карта > Проверка
- •Сравнение карт
- •Подсистема контроля карт
- •Выбор сценария для контроля карты
- •Процесс контроля
- •Написание собственного сценария
- •Пример сценария
- •Глава 8. Работа с растрами
- •Общие понятия
- •Типы растровых материалов
- •Характеристики растра
- •Форматы растров
- •Какой формат выбрать?
- •Ориентирование растров
- •Полиномиальное ориентирование
- •Назначение растру системы координат
- •Аэросъемка, спутниковые снимки и прочие виды съемок
- •Где хранится геопривязка?
- •Другие форматы геопривязки
- •Порядок поиска геопривязки
- •Работа с архивом элементов ориентирования
- •Использование растра в качестве подложки
- •Режим стерео
- •Особенности работы со снимками 3-DAS-1
- •Коррекция тона
- •Просмотр свойств открытых растров
- •Растрово-векторные карты
- •Вставка растров
- •Из буфера обмена
- •Из файла
- •Вставка по ссылке
- •Совмещенный режим
- •Манипулирование растровым объектом в карте
- •Маскировка части растра
- •Автоматическая маскировка при вставке
- •Коррекция тона
- •Полупрозрачность
- •Трансформирование растров
- •Трансформирование карт
- •Пошаговое трансформирование
- •Пакетное трансформирование группы планшетов
- •Создание ортофото
- •Трансформирование растров в другую систему координат
- •Использование картографических сервисов Интернет
- •Уточнение места положения загруженных растров
- •Получение атрибутов объектов из некоторых типов карт
- •Дополнительные сведения
- •Глава 9. Cистема координат карты
- •Общие понятия
- •Государственная система координат Украины
- •Пересчет по связующим точкам
- •Округление координат карты
- •Графический способ указания связующих точек
- •Применение датумов
- •Автоматический пересчет координат
- •Встроенные датумы
- •Специализированные датумы
- •Описание датума
- •Как работает пересчет координат
- •Особенности пересчета высот
- •Использование полиномиальной коррекции для связи устаревших систем с УСК2000
- •Пример использования
- •Работа с географическими координатами
- •Вставка из буфера обмена
- •Пересчет в / из
- •Глава 10. Работа с ЦМР
- •Общие понятия
- •Триангуляционная сеть (TIN)
- •Сетка ЦМР
- •Создание сетки
- •Автоматическое создание
- •Создание для всего блока
- •Создание из существующих объектов
- •Комбинированный способ
- •Ручное измерение сетки
- •Редактирование сетки
- •Изменение конфигурации сетки
- •Изменение высоты узлов
- •Дополнительные настройки режима измерения ЦМР
- •Коррекция высот сетки в целом
- •Специальные возможности
- •Преобразование в пикеты
- •Построение горизонталей
- •Переприсвоение высот
- •Линейное переприсвоение высот
- •Трехмерное отображение карты
- •Введение в 3D-моделирование
- •Профиль, сечение, объем
- •Построение продольного профиля
- •Вспомогательные инструменты
- •Другие типы профилей. Сечение.
- •Получение отчета по трассе
- •Подсчет объемов
- •Более сложный пример
- •Режим вычитания сеток ЦМР
- •Планирование площадок
- •Глава 11. Импорт и экспорт карт
- •Общие понятия
- •О настройках чтения и записи
- •Текстовые форматы
- •DAT file (NXYZ)
- •ASCII text file
- •AutoCAD DXF/DWG
- •И все-таки, DXF или DWG?
- •Альтернативные подходы к сохранению карты в DXF/DWG
- •Псевдонимы имен слоев и блоков
- •Особенности чтения файлов DXF/DWG
- •ArcGIS SHP
- •Чтение
- •Запись
- •Настройки чтения и записи
- •Псевдонимы имен слоев и параметров
- •MapInfo MID/MIF
- •Вывод в растровые форматы
- •Глава 12. Применение в землеустройстве
- •Общие понятия
- •Еще раз о точности карты
- •Типовые настройки округления
- •Графическая интерпретация округления координат
- •Чтение обменных файлов
- •Настройки чтения
- •Запись обменных файлов
- •“Подводные камни”
- •Прочие возможности при сохранении …
- •для формата IN4
- •для формата XML
- •Настройки записи
- •Создание обменных файлов “с нуля”
- •Создание IN4
- •Обзор шаблона по умолчанию Normal.dmf
- •Порядок создания
- •Пример карты
- •Создание XML
- •Обзор шаблона XMLNormal.dmf
- •Порядок создания
- •Пример карты
- •Поддержка справочников для ввода некоторых данных
- •Шаблоны заполнения
- •Изменение существующих обменных файлов
- •Проверка обменных файлов
- •Модуль проверки IN4
- •Модуль проверки XMLChecker
- •Конвертация IN4 в XML
- •Пакетная конвертация группы файлов
- •Извлечение информации из карты
- •Вставка таблиц
- •Экспликация
- •Список смежников
- •Создание простых текстовых отчетов
- •Графический фрагмент
- •Шаблоны документов
- •Порядок генерации документа из шаблона
- •Пакеты документов
- •Групповой режим
- •Два участка в одном шаблоне
- •Создание шаблона документа
- •Настройка существующего шаблона документа “под себя”
- •Создание нового шаблона на базе существующего
- •Создание “с нуля”
- •Автомасштаб
- •Элементы шаблона DMT и их настройка
- •IN4+FastReport
- •Порядок работы
- •Пакеты документов
- •Настройки модуля Reports
- •Что происходит “за кадром”
- •Дизайнер отчетов FastReport
- •Элементы, размещаемые в шаблоне
- •Понятие о языке скриптов PascalScript. Функции.
- •Советы по разработке шаблонов отчетов
- •XML+DMT+FastReport
- •Создание нового шаблона
- •Порядок работы с XML в скриптах
- •Функции для работы с XML
- •Layout DMT
- •Систематизируем: что, где и как
- •Модуль текстовых констант List editor
- •Создание формы 6-зем
- •Глава 13. Печать
- •Настройка параметров страницы
- •Печать окна
- •Печать
- •Отступы печати
- •Особенности печати…
- •…зарамочного оформления
- •…с разбивкой по листам
- •…с растровой подложкой
- •Двусторонняя печать
- •Окно предварительного просмотра
- •Калибровка принтера
- •Вывод в формат PDF
- •Открытие и сохранение растров
- •Навигация в окне
- •Функции редактирования
- •Обрезка
- •Поворот
- •Коррекция тона
- •Создание пирамиды
- •Измерения по растру
- •Информация о растре
- •Печать
- •Паевание
- •Оценка земли
- •Функции, используемые в шаблоне денежной оценки
- •Geodesy
- •GeoTrans
- •Topotracer
- •AutoOrientation
- •Регистратор
- •Пользовательские панели инструментов
- •Язык скриптов
- •Комментарии
- •Команды
- •Переменные
- •Массивы текстовых строк
- •Выражения
- •Условный оператор @if
- •Управление ходом выполнения
- •Подпрограммы
- •События
- •Пример обработчика событий
- •Библиотека скриптов
- •Выполнение подпрограммы
- •Передача параметров (1-й способ)
- •Передача параметров (2-й способ)
- •Отладка скриптов
- •Дополнительная информация
Библиотека скриптов
%Events.OnSelect $S=@EventObject
@If $S=0 then @Break $S=@Map.Object[$S].Parameter[-5] @Dialog.InfoBox 3000 Пометка объекта||$S
;
%Events.OnChange $S=@EventObject
@If $S=0 then @Break $S=@Map.Object[$S].Parameter[-5] @Dialog.InfoBox 3000 Изменение объекта||$S
;
%Events.OnPointCollect $N=@EventObject $C=@Map.Object[$N].Count $C=$C-1
@If $C=0 then $C=1 $P=@Map.Object[$N].Point[$C] @Map.AddObject 0|1|id28|1|0 $P
После нажатия кнопки активируются обработчики событий сбора объекта, его пометки, изменения, а также событие регистрации точки.
Команда @Dialog.InfoBox, используемая в данном скрипте, выводит на экран автоматически убираемое сообщение. Аргументами команды является число милисекунд, в течении которого будет демонстрироваться окно, и текст сообщения.
Создайте карту на основе шаблона по умолчанию, нажмите вновь созданную кнопку и попробуйте сначала собрать, а затем отредактировать объект. Программа будет реагировать на ваши действия соответствующими диалогами, которые будут появляться в момент “перехвата” событий.
Библиотека скриптов
Библиотека предназначена для хранения внешних скриптов, то есть скриптов, предназначенных для вызова из других скриптов. Такие скрипты мы еще называем подпрограммами. Подпрограмма обычно применяется для решения определенной повторяющейся из скрипта в скрипт задачи. Чтобы не дублировать код, его можно оформить внешним скриптом.
Отправить скрипт в библиотеку можно нажатием соответствующей кнопки в окне, показанном на Рис.D.1. Внешний скрипт хранится в обычном текстовом файле с расширением DSF (Digitals Script File) в папке Library программной папки. При необходимости скрипты можно хранить и в подпапках папки Library, группируя их по функциональности.
Выполнение подпрограммы
Запустить подпрограмму на выполнение можно командой вида
@ExecuteScript Имя_скрипта [Строковый_Параметр]
Здесь квадратные скобки указывают на необязательность передачи параметров в подпрограмму. Имя_скрипта начинается с метки %Library и далее, через точку, имени файла, содержащего скрипт (возможно, с включением имени подпапки, в которой этот скрипт находится). Примеры:
%Library.ReplaceComma 101,32 %Library.MyFolder\MyScript My parameters
Существует возможность вызывать скрипты размещенные не только в библиотеке, но и на других пользовательских панелях. Делается это так:
%Script.Имя_панели.Имя_кнопки [Строковый_Параметр]
345
Приложение D. Введение в Digitals Script
Передача параметров (1-й способ)
В коде вызываемого скрипта (подпрограммы) доступны специальные переменные с именами $PARAMETERS и $RESULT. Первая позволяет передать строку параметров в подпрограмму, а вторая передать результат обратно в вызывающий скрипт.
Переданную в подпрограмму строку парамеров можно разобрать на части с помощью функций для работы со строками, например, с помощью @StringPart.
По умолчанию функция @StringPart делит строку на части по пробелам. Таким образом можно передать в подпрограмму в одной строке числа, разделенные пробелом. Но @StringPart можно использовать и с другим разделителем. Допустим, вам нужно передать в подпрограмму пару переменных, содержащих пробелы. Давайте используем в качестве разделителя символ ~ (тильда):
$S1=Первая строка
$S2=Вторая строка
%Library.MyScript $S1~$S2
Тогда внутри подпрограммы мы можем разделить переданную строку на отдельные части таким образом:
$S1=@StringPart 1~$PARAMETERS $S2=@StringPart 2~$PARAMETERS
Для передачи скрипту длинных списков с неизвестным наперед количеством элементов можно использовать массив текстовых строк @Text. Например:
;Вызов скрипта
@Text.Add Первый элемент списка @Text.Add Второй элемент списка
;...
@Text.Add N-ый элемент списка $S=@Text.Text %Library.MyScript $S
;Текст скрипта
@Text.Text $PARAMETERS $C=@Text.Count
@If $C=0 @Break Список параметров пуст
;обработка строк списка параметров от 1 до $С через @Text.Lines[$I]
Передача результата из подпрограммы выполняется так: $RESULT=Возвращаемая_строка
Передача параметров (2-й способ)
Второй способ передачи параметров неофициальный. Дело в том, что для каждой карты в Digitals существуют глобальные переменные с именами @Map.TempInteger и @Map.TempString. Как понятно из названия, первая переменная может хранить число, а вторая строку. В строке, при желании, можно передать список значений неограниченной длины, воспользовавшись приемом, похожим на тот, что мы видели выше (передача строк с помощью массива @Text).
Пример использования:
;Скрипт 1
$A=ул. Первомайская $B=17
$C=кв. 32
; Добавляем значения трех переменных в текстовый список
Text.Add $A
Text.Add $B
346