- •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-й способ)
- •Отладка скриптов
- •Дополнительная информация
Глава 12. Применение в землеустройстве
Советы по разработке шаблонов отчетов
Главный совет при разработке шаблонов: учитесь на примерах. Не стесняйтесь экспериментировать, внося изменения в поставляемые шаблоны. Если вы боитесь напортачить, то сделайте копию файлов с расширением FR3, находящихся в папке Templates.
Особенностью проектирования шаблонов отчетов в модуле Reports является тот факт, что в ряде случаев вы можете обойтись вообще без бэндов. Для примера, обратитесь к шаблону Технічна документація. Учитывая, что данный шаблон “заточен” под выдачу документа на один единственный участок, усложнять себе жизнь бэндами не было нужды.
Разработчику этого шаблона удалось обойтись без бэндов и в пофамильной версии отчета, которая предназначена для выдачи документов для пары участков с целевыми назначениями ОЖБ и ОСГ. Дополнительные аргументы функции PARAM позволяют извлечь данные из второго участка по его номеру, а сам номер участка можно отыскать, написав довольно простой код в скрипте.
Вообще, анализируя поставляемые с Digitals шаблоны можно заметить, что написанию в них программного кода отводится ведущая роль. Очень часто используется следующий подход: после запуска шаблона на выполнение в стартовом коде отчета вычисляются все необходимые в дальнейшем переменные, которые и используются в элементах шаблона вместо прямых вызовов функций.
Отсюда возникает еще один совет: вспоминаем школьные уроки информатики. Ну и не забываем заглядывать в справочную систему.
XML+DMT+FastReport
Данная технология призвана объединить оба описанных выше подхода (шаблоны документов DMT и отчеты FastReport) и учесть сложности, сопутствующие представлению обменного файла XML в кадастровой карте. Вот как все происходит:
1.Откройте файл XML и пометьте участок. Для примера можно взять файл XMLExample.xml из папки
Maps.
2.Выполните команду меню Сервис > Документы и выберите один из шаблонов, чье имя задано в угловых скобках и помечено специальной иконкой. Например, пункт <CadPlanA4>.
Этот пункт соответствует пакету (по сути - папке) CadPlanA4.dmt, хранящейся в папке Templates. Внутри нее находится шаблон документа CP.dmt и шаблон отчета CadPlanA4.fr3.
3.Программа сгенерирует графическую часть на базе шаблона CP.dmt и откроет ее в новой карте. Далее, вам следует отредактировать ваш будущий план по своему вкусу. После окончания редактирования, нажмите кнопку Продолжить в диалоге ожидания.
Все, что попадает в рамку карты, будет автоматически экспортировано в файл формата WMF в подпапку Pictures программной папки под уникальным именем. Временная карта будет закрыта.
Далее, в буфер обмена программа запишет данные о самом обменном файле. Отметим, что от передачи в виде неявно формируемого Комбинированного списка разработчикам пришлось отказаться. Вместо этого используется тот же язык XML, немного адаптированный для данной задачи. Подробности чуть ниже.
4.На этом шаге запускается модуль Reports, в который на обработку передается шаблон отчета
CadPlanA4.fr3.
Здесь вступает в игру программный код, которым данный шаблон просто таки “нафарширован”. Код выполняет разбор данных, переданных из Digitals, создает элементы отчета (в частности, экспликацию), а также загружает сохраненную на предыдущем этапе графическую часть.
5.Готовый документ можно открыть для окончательной правки в дизайнере двойным щелчком. Сохранить и/или распечатать отчет можно с помощью стандартных команд модуля Reports.
Создание нового шаблона
Вероятно, самый простой способ создать новый шаблон - это воспользоваться Проводником Windows, чтобы скопировать существующий:
312
XML+DMT+FastReport
1.Создайте папку вида ИмяШаблона.DMT в папке Templates.
2.Скопируйте внутрь из другого пакета файл шаблона отчета FR3 и файл шаблона документа DMT. Чтобы новый пакет отобразился в меню Документы, Digitals придется перезапустить.
Отметим, что шаблонов DMT может быть несколько, если требуется несколько вариантов графической части, а может и не быть вовсе, если вы составляете, к примеру, шаблон каталога координат.
3.Отредактируйте шаблон DMT, просто открыв его в окне Digitals.
Здесь вам должна помочь информация, изложенная выше в разделах «IN4+DMT» и «XML+DMT».
4.Чтобы отредактировать шаблон отчета FastReport, запустите пакет на выполнение командой меню Сервис > Документы и, в открывшемся окне модуля Reports, выберите команду меню Дизайнер >
Правка шаблона.
За дополнительной информацией о работе с Дизайнером отчетов обращайтесь к разделу
«IN4+FastReport».
5.Повторяйте предыдущие два пункта, пока не добьетесь желаемого результата.
Порядок работы с XML в скриптах
Чтобы представить себе, какие именно данные передаются модулю Reports из Digitals в случае создания документов из обменного файла XML, попробуем заглянуть в буфер обмена. Для этого, сразу после создания документа, следует открыть любой текстовый редактор и нажать кнопку Вставка.
В качестве редактора автор использовал NotePad++, рекомендованный одним из старожилов форума в ветке “XML против Reports3”. Будучи оснащенным плугином XMLTools, этот редактор является замечательным средством для просмотра и правки документов XML.
К слову, упомянутая ветка форума, несмотря на большей частью устаревшую информацию, содержит массу примеров по извлечению данных из XML. Также здесь можно найти и скачать довольно неплохие готовые шаблоны.
Ниже на снимке экрана показано содержимое буфера обмена после форматирования в редакторе. Поскольку полный текст занял бы слишком много места, часть информации “свернута” (такие строки слева помечены + плюсами).
3 http://www.geosystema.net/forum/viewtopic.php?f=1&t=2051
313
Глава 12. Применение в землеустройстве
Прежде чем мы продолжим, сделаем небольшой экскурс в синтаксис языка XML. Если сказать совсем просто, то язык состоит из элементов (или узлов), каждый из которых состоит из открывающего тега вида <element1>, соответсвующего ему закрывающего тега вида </element1> и данных, которые заключены между ними.
Элементы могут быть вложенными друг в друга, образуя тем самым иерархическое дерево. Для удобства чтения документов на языке XML человеком, вложенные элементы принято показывать с некоторым отступом. Цепочка вложенных элементов, ведущая к неким данным, представляет собой ветку или путь.
Для работы с путями используется так называемый язык запросов XPath. Подробное его изучение его в рамках данной книги невозможно, да и не нужно. В Digitals используется упрощенная его версия, которая позволяет извлекать значение одного заданного узла, содержащего текстовое значение.
Пути бывают абсолютными, то есть от самого внешнего элемента, и относительными - от текущего. Первые обязательно начинаются с символа / (прямого слэша). Такой же прямой слэш применяется и для разделения элементов, входящих в путь. Если на некотором уровне имеется несколько элементов, то конкретный элемент можно указать по номеру в [ ] квадратных скобках.
Например:
'ProprietorInfo/Authentication/NaturalPerson/FullName/LastName'
Извлекает фамилию собственника участка.
'ProprietorInfo[1]/Authentication/NaturalPerson/FullName/LastName'
В этом случае собственников несколько, поэтому указываем номер в квадратных скобках после элемента ProprietorInfo.
Теперь вернемся к снимку экрана, показанному выше. Что же мы видим:
•Вся информация заключена в один внешний элемент самого высокого уровня Data.
•На втором уровне находится три элемента, каждый из которых отвечает за свой “кусок” данных:
EmbeddedXML
Этот элемент предназначен для передачи “чистого” XML файла, каким бы вы его увидели при сохранении на диск. Пользователи, знакомые со структурой обменного файла формата XML, сразу узнают его по элементу UkrainianCadastralExchangeFile. Внутри последнего находится абсолютно все “родные” элементы, предусмотренные данным форматом.
Map
Этот элемент предназначен для передачи информации об исходной карте. Здесь имеется информация о слоях, параметрах, объектах и их узлах (точках).
Graphics
Вдочерних узлах этого элемента указаны имена файлов, содержащие графическую часть отчета (элемент Graphic), а также элемент, содержащий таблицу смежников (элемент Neighbours).
Таким образом, в распоряжении разработчика шаблона отчета имеется вся доступная информация - остается только ее правильно обработать. И здесь на сцену выходит язык PascalScript и функции запросов к XML.
Функции для работы с XML
Ниже даны формальные описания функций и примеры запросов. (В примерах, ввиду слишком длинных для книги строк, пришлось применить перенос строки, которого в реальном коде быть не должно.)
IsNodeExists(Path:String):Boolean
Проверка наличия узла. Возвращает True или False. Например, следующий запрос отвечает на вопрос, является ли первый по счету собственник участка физическим лицом:
IsNodeExists('InfoPart/CadastralZoneInfo/CadastralQuarters/
CadastralQuarterInfo/Parcels/ParcelInfo[1]/Proprietors/
ProprietorInfo[1]/Authentication/NaturalPerson')
314