УДК 004.4'244
© Е.С. Фереферов, ЮА. Новицкий, Г.М. Ружникое, А.Е. Хмельное
ТЕХНОЛОГИЯ ИНТЕГРАЦИИ ГЕОИНФОРМАЦИОННЫХ ФУНКЦИЙ В ИНФОРМАЦИОННЫЕ СИСТЕМЫ1
Статья посвящена проблемам расширения функциональных возможностей существующих информационных систем (ИС) за счёт встраивания геоинформационных функций. Предложен ряд инструментальных средств, автоматизирующих данный процесс.
Ключевые слова: информационные системы, геоинформационные системы, инструментальные средства.
E S. Fereferov, Yu.A. Novitsky G.M. Ruzhnikov, A.E. Khmelnov TECHNOLOGY OF INTEGRATION OF GIS FUNCTIONS ТО INFORMATION SYSTEMS
The article is devoted to the problems of extending the fonctionality of existing information systems (IS) by embedding GIS fonctions. The authors propose tool systems to automate that process.
Keywords: information systems, géographie information systems, tool systems.
Введение
В информационных системах, ориентированных на управление территориальным развитием, как правило, используется информация, имеющая пространственную привязку (например, почтовые адреса, кадастровые номера). При этом в таких системах часто отсутствует геоинформационная составляющая. Применение ГИС технологий повышает наглядность представления информации, позволяет проводить пространственный анализ и как следствие позволяет повысить качество и обоснованность управленческих решений. Поэтому расширение функциональных возможностей существующих ИС за счёт интеграции в них ГИС-функций является актуальной задачей.
Для решения данной задачи существует несколько подходов: разработка ИС средствами ГИС (например, «Приложение БД» в ГИС «Панорама» [1]) или реализация функций ГИС в существующих АИС. В первом случае приходится реализовывать все функции существующей информационной системы средствами ГИС, по сути, создавая систему заново. При этом программисту может потребоваться освоение встроенных языков ГИС (например, Avenue для ArcView [2], MapBasic для Maplnfo [3]). Второй подход требует от разработчика знаний в области геоинформационных технологий, поскольку необходима реализация функций для работы с пространственными объектами, а также обязательное наличие исходных текстов существующей ИС.
Из вышесказанного можно сделать вывод, что интеграция геоинформационных функций в существующие ИС - задача трудоемкая. Поэтому актуальна разработка инструментальных средств, позволяющих автоматизировать интеграцию функций ГИС в существующие системы.
Картографический модуль
Для работы с цифровыми картами из внешних приложений авторами создан картографический модуль, реализованный в виде СОМ-сервера, к которому могут подключаться ИС-клиенты (возможно несколько сразу). Реализация модуля для работы с ГИС в виде СОМ-сервера дает ряд полезных свойств. Во-первых, при взаимодействии с несколькими приложениями-клиентами, картографический модуль является интегрирующей составляющей, позволяющей объединять информацию из различных информационных систем на уровне ГИС. Во-вторых, существует возможность средствами ОС Windows настроить запуск картографического модуля от имени пользователя, обладающего правами доступа к файлам карты, что позволяет исключить несанкционированное копирование файла электронной карты. В режиме «по умолчанию» СОМ-приложения запускаются под учетной записью текущего (запускающего) пользователя, но есть
1 Работа выполнена при частичной финансовой поддержке РФФИ проекты 11-07-00426-а, 11-07-92204-Монг-а, междисциплинарного проекта № 131 СО РАН, ОНИТ РАН (проект № 4.1)
возможность при помощи утилиты dcomcnfg.exe настроить запуск СОМ-сервера под учетной записью указанного пользователя. Данная возможность позволяет наладить работу с файлами карт, доступ к которым текущему пользователю запрещен.
Методы интерфейса приложения созданного картографического модуля позволяют вызывать окно для работы с цифровыми картами (рис.1) в формате ГИС «Панорама» [1], и обеспечивают выполнение ряда ГИС-функций. Применение данного модуля при разработке или модернизации существующих ИС позволяет избежать необходимости написания функций для работы с цифровой картой. В картографическом модуле уже реализованы следующие ГИС-функции:
• масштабирование,,
• перетаскивание,
• получение информации по объекту карты (семантика и метрика объекта),
• создание новых объектов,
• создание пользовательских слоев,
• поиск объектов на цифровой карте по адресу (функция «Адресный план»).
Для взаимодействия с ИС-клиентами библиотека типов созданного СОМ-сервера содержит описание двух интерфейсов: 1АррИсайоп и 1СМсп1 1АррНсайоп содержит функции для работы с цифровыми картами, реализованные в картографическом модуле, а 1СНсп{ - функции, вызываемые картографическим модулем для передачи или получения информации из программы-клиента, которые должны быть реализованы на клиенте соответственно. Рассмотрим данные интерфейсы более подробно.
Рис. 1. Взаимодействие ИС с картографическим модулем
Методы интерфейса IApplication:
function SetClientInt(const Clientlnt: IClient): HResult - функция передачи клиентского интерфейса.
function AddClientButton(Tg: Integer; const Hnt: WideString; SN: Integer): HResult - функция позволяет создать в окне картографического модуля кнопку с номером (Tg), подписью (Hnt), при нажатии которой в приложение-клиент будет передано значение семантики с номером SN выбранного объекта. Созданным клиентским кнопкам может быть задан внешний вид.
function ShowObjByAddr(const S: WideString; const H: WideString): HResult - функция позволяет искать объекты цифровой карты, у которых семантика «Улица»=8, «Дом»=Н. При этом объекты удовлетворяющие запросу выделяются цветом и перемещаются в центр окна (происходит фокусировка).
function ShowObjsByAddrs(const Addrs: WideString; L: Integer): HResult - Функция поиска объектов на карте по списку адресов вида «Улица 1, Дом1, Улпца2, Дом2,, УлицаЬ, ДомЬ».
function ShowObjByID(ID: Integer): HResult - Функция поиска объектов на цифровой карте по уникальному ключу ID объекта.
function ShowObjsBySemNum(SN: Integer; const SV: WideString): HResult - функция позволяет искать объекты цифровой карты, у которых семантика с номером SN имеет значение SV.
function AddObjsToList(IDL: Integer; IDOBJ: Integer; SelAppend: Integer; Color: Integer): HResult - функция добавляет в список выборки объект с номером пользовательской карты IDL, уникальным ключом IDOBJ и цветом выделения Color. При этом, если параметр SelAppend=l, то
список выборки будет создан заново иначе объекты будут добавляться в существующий список. Для отображения списка объектов необходимо вызвать function ShowSelList: HResult.
Методы интерфейса IClient:
procedure GetObjInfoPress(Tg: Integer; const VL: WideString) - процедура для обработки получаемых значений семантики VL выбранного объекта карты при нажатии пользовательской кнопки с номером Tg в картографическом модуле.
function GetFieldValByNameClnt(const FldName: WideString): WideString - функция для получения значения из поля FldName таблицы. Данная функция может вызываться картографическим модулем при построении отчётов, содержащих связанную с объектом карты информацию из БД приложения-клиента.
procedure ShowMapObjDBInfo(hL: Integer; hObj: Integer) процедура для поиска и отображения в приложении-клиенте информации связанной с выбранным объектом карты.
Описанные процедуры и функции в большинстве случаев достаточны для решения задачи взаимодействия ИС-клиентов с картографическим модулем.
Модуль формирования отчетов по карте
Для поддержания возможности создания отчетов, содержащих информацию об объектах цифровых карт, авторами был разработан генератор отчетов, реализованный в виде динамически подключаемой библиотеки (dll), взаимодействующей с картографическим модулем. В основе данного построителя лежит технология создания отчетов с использованием метаописаний структур БД и шаблонов в MS Word, содержащих метки форматирования данных[4], впервые апробированная при создании генератора отчетов для системы ГеоАРМ[5].
Изначально генератор был разработан для построения отчетов с использованием метаописаний структур баз данных. При вызове генератора из метаописания ему передавалась информация о соединении с БД, файле-шаблоне и таблице или представлении (таблице со значениями полученными по ссылкам), для записей из которых нужно построить отчет. В метаописании таблиц (представлений) могла содержаться информация о связях типа «Мастер-Детали», что позволяет наладить вывод данных из таблиц-деталей.
При создании отчетов по объектам цифровой карты, семантика объекта воспринимается генератором отчётов как поля записи таблицы, а метрика как детали. При этом именами полей выступают имена соответствующих семантик.
В процессе подготовки отчета происходит нахождение меток в тексте шаблона, после чего на основании параметров метки происходит вставка данных. Шаблоны отчётов содержат метки следующего вида:
<#[Вид данных] N=Hmh (Формат)>, где [Вид данных] = {FV - значение семантики; IMG - изображение фрагмента карты; DETAIL -значения из метрики};
N=Hmh - имя соответствующей семантики, из которой будут браться данные;
(Формат) - необязательный набор параметров, для каждого вида данных свой. Например, для склонения подставляемых значений можно указать падеж (для реализации данной функции была применена библиотеки padeg.dll[6]). Имя может иметь вид: N = «А» «Имя таблицы» «.» «Имя поля» - тогда данные будут подставляться из соответствующего поля и таблицы приложения клиента.
^ 003 - Microsoft Word
внн
Метрика объекта
№ Подобъект X Y
1. 0 20801,75 29220,9
2. 0 2 0 825, 85 29213,15
3. 0 2 0 824, 95 29210,4
4. 0 20833,55 29207,б
5 . 0 20838,2 29222,7
б. 0 20805,5 29232,95
7. 0 20801,75 29220,9
■ Рисованиет ^ Автофигуры ’ \ 4LJOÉl^C*Ll]SI<''*'' ’ ÉL ' — '■ uJ
Стр, 4 Разд 3 4/4 На Ст английский ßjT
: Файл Правка Вид Вставка Формат Сервис Таблица Reguirements Окно Справка Введите вопрос т х
ujaiidAiyaii - -1 a, j _з j¡ и g]i -д ^ ^ - # и1 ^ I
: ^4 Название + Aria * Arial т 11 т | Ж К Ч Щ |ж| Щ Щ ' = - | *Щ | [Т] т afe? ■> т jg
Имя — Многоквартирный жилой дом СОСТОЯНИЕ - ЖИЛОЙ РАЙОН - СВЕРДЛОВСКИЙ АДРЕС — 4-я Железнодорожная 34
УЛИЦА - 4-я Железнодорожная ДОМ - 34
Рис. 2. Отчёт с объектами цифровой карты
Кроме того в отчёте может быть опубликован объект цифровой карты с помощью примитивов графики MS Word (рис. 2). Для этого в шаблоне документа должны присутствовать объекты MS Word: полотно с именем «Границы», задающее область рисования, автофигура с именем «Центр», задающая центр рисования объекта, а также автофигуры, отвечающие за служебные подписи.
Заключение
Описанные выше инструментальные средства позволяют интегрировать функции для работы с векторными картами в формате «Панорама» в приложения, где такая работа не была ранее поддержана. Реализация картографического модуля в виде COM-сервера позволяет регламентировать работу с электронной топоосновой на уровне политик безопасности ОС Windows, при этом исключив несанкционированное копирование файлов карт. Модуль публикации позволяет создавать отчётные формы, содержащие информацию об объектах цифровых карт. Разработанные инструментальные системы были внедрены в МУП Бюро технической инвентаризации г. Иркутска.
Литература
1. ГИС Панорама. URL: http://www.gisinfo.ra
2. GIS and Mapping Software. URL: http://esri.com
3. Maplnfo Corporation. URL: http://mapinfo.com
4. Фереферов E. С., Хмельнов A. E. Технология создания отчетов с использованием метаописаний структур БД и шаблонов, содержащих метки форматирования данных. Ляпуновские чтения: материалы конф. Иркутск, 2008. С. 53-54.
5. Фереферов Е.С., Бычков И.В., Хмельнов А.Е. Метаописание баз данных как основа интеграции информационно-справочных систем и ГИС // «Вычислительные технологии». Т.12, № 5. С. 41-51.
6. Склонение фамилий, имен и отчеств по падежам. Библиотека функций. Виртуальный клуб программистов «Королевство Delphi». URL: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=412
Фереферов Евгений Сергеевич, научный сотрудник ИДСТУ СО РАН, 664033, г. Иркутск, ул. Лермонтова, 134, тел. (395-2) 453071, e-mail: fcrcfcrov <7 .icc.ru
Новицкий Юрий Александрович, программист ИДСТУ СО РАН, тел. (395-2) 453071, e-mail: no\ itskiv <7 icc.ru Ружников Геннадий Михайлович, канд. техн. наук, ИДСТУ СО РАН, тел. (395-2) 453006, e-mail: rugmkovj2licc.ru
Хмельное Алексей Евгеньевич, канд. техн. наук, зав. лаб. ИДСТУ СО РАН, тел. (395-2) 453071, e-mail: [email protected]
Fereferov Evgeniy Sergeevich, researcher of Institute for System Dynamics and Control Theoiy of SB RAS, e-mail: lerclerox <7 icc.ru
Novitskiy Yuriy Alexandrovich, programmer of Institute for System Dynamics and Control Theory of SB RAS Ruzhnikov Gennadiy Mikhailovich, candidate of technical science. Institute for System Dynamics and Control Theojy of SB RAS
Khmelnov Alexey Evgenievich, candidate of technical science. Chief of laboratory of Institute for System Dynamics and Control Theory of SB RAS