<<
>>

Подсистема «Карта»

Подсистема «Карта» реализована при помощи разработанного автором инструментального средства для обеспечения взаимодействия с пространственными данными - «Интерфейса АП» [16, 48, 50].

Данное средство разработано с использованием пакета GIS ToolKit [42] ГИС «Панорама» и представляет собой COM-сервер, вызов методов которого позволяет создать окно для взаимодействия с цифровыми картами (ЦК) и обеспечивает выполнение ряда функций обработки ПД. Использование «Интерфейса АП» при разработке или модернизации существующих ППС позволяет избежать реализации функций работы с цифровой картой. Кроме того, данное приложение может использоваться независимо от каких-либо ППС, как средство работы с цифровыми картами.

Важной особенностью реализации модуля для работы с ПД в виде COM- сервера является возможность настройки средствами ОС Windows запуска от имени пользователя, обладающего правами доступа к файлам карты, что позволяет исключить несанкционированное копирование файла электронной карты. В режиме «по умолчанию» COM-приложения запускаются под учетной записью текущего (запускающего) пользователя, но есть возможность при помощи утилиты dcomcnfg.exe ОС Windows настроить запуск под учетной записью указанного пользователя. Таким образом, данная возможность позволяет наладить работу с файлами карт, доступ к которым текущему пользователю запрещен.

«Интерфейс АП» обеспечивает выполнение стандартных функций ГИС, таких как масштабирование, перетаскивание, получение информации по объекту,

создание пользовательских слоев, вывод на печать. Кроме того, в данной системе реализована функция «Адресный план» - поиск объектов на цифровой карте по адресу.

Таблица типов «Интерфейса АП» содержит описание двух программных интерфейсов IApplication и IClient. IApplication содержит описание функций для работы с ПД, реализованные в самой системе, а IClient - функции, обеспечивающие передачу значений из «Интерфейса АП» в программу-клиент, которые должны быть реализованы на клиенте, соответственно.

Функции интерфейсов приведены в таблице 7 и таблице 8.

Таблица 7 Функции интерфейса IApplication

Функции Описание
function ShowObjByAddr(const S:

WideString; const H: WideString):

HResult;

Поиск объектов на ЦК по атрибутам

«Улица, Дом»

function ShowObjByID(ID:

Integer): HResult;

Поиск объекта на ЦК по уникальному номеру
function ShowObjsByAddrs(const

Addrs: WideString; L: Integer):

HResult;

Поиск списка объектов на ЦК по атрибутам «Улица, Дом». В Параметр Addrs передаётся список адресов типа «Улицаї, Домі, ...,УлицаЫ, ДомЫ», а параметр L=N.
function ShowObjsBySemNum(SN: Integer; const SV: WideString): HResult; Поиск объектов на ЦК по значению их семантики. Здесь SN номер семантики в классификаторе ЦК, а SV - значение.
function AddObjsToList(IDL: Integer; IDOBJ: Integer; SelAppend: Integer; Color: Integer): HResult; Добавить объект ЦК в список выделения для последующего

отображения. Здесь IDL номер слоя ЦК, IDOBJ - уникальный номер объекта

function ShowSelList: HResult; Отобразить список выделения.
function ResetSelList(Color:

Integer): HResult;

Очистить список выделения.
function SetClientInt(const ClientInt: IClient; SN: Integer): HResult; Передать приложению-серверу

указатель на интерфейс клиента.

function AddClientButton(Tg: Integer; const Hnt: WideString; SN: Integer): HResult; Создать в интерфейсе пользователя приложения-сервера кнопку.
Здесь Tg - номер кнопки, Hnt - всплывающая подсказка кнопки, SN - номер семантики.
function SetButtonBitmapData(Tg: Integer; Pic: OleVariant): HResult; Задать изображение для кнопки в потоке. Здесь Tg - номер кнопки, которой задаётся изображение, Pic - изображение.
function SetButtonBitmapFromFile (Tg: Integer; const FileName: WideString): HResult; Задать изображение для кнопки из файла.
function SetButtonBitmapFromRes (Tg: Integer; const ExeName: WideString; const ResName: WideString): HResult; Задать изображение для кнопки из ресурса.
function GetSelObjID(var L:

HResult): HResult;

Получить уникальный номер и номер слоя выделенного объекта.

Таблица 8 Функции интерфейса IClient

Функции Описание
procedure GetObjInfoEvent(const S: WideString; const D: WideString; const V: WideString); Получение информации по объекту ЦК
procedure GetObjInfoPress(Tg: Обработка нажатия клиентских кнопок

Integer; const VL: WideString); «Интерфейса АП».
function GetFieldValByNameClnt

(const FldName: WideString)

Получить значение поля по имени.
procedure ShowMapObjDBInfo(hL:

Integer; hObj: Integer)

Показать в приложении-клиенте

информацию связанную с объектом ЦК.

function DisconnSrv: HResult; Обработка закрытия окна «Интерфейса

АП»

function ObjLinkDelete(ObjID:

Integer; LID: Integer): HResult;

Обработка удаления объекта с ЦК. Необходимо для удаления связей на клиенте с объектами ЦК.

Привязка записей БД к объектам ЦК осуществляется двумя способами: через геокодирование, т.е.

при помощи полей содержащих адреса домов, или привязкой к произвольным объектам карты через таблицу связей. Для первого способа спецификации таблицы (представления) БД указываются поля таблиц, в которых содержатся значения адреса объекта (например, «ADDRS=UL,Dom») При наличии такой информации на форме для редактирования таблицы отображается кнопка «Адрес», после нажатия на которую выполняется поиск адреса. При этом открывается окно карты, улица и номер дома заносятся в поля панели поиска адреса, и, если такой адрес имеется на карте, то в окне выделяется соответствующее здание (Рисунок 22). Для использования второго способа в БД должна быть создана специальная таблица привязки объектов к карте MAP_LNK (одна на всю базу), позволяющая связать любой объект карты с данными из БД (Таблица 9).

Таблица 9 Структура таблицы привязки MAP_LNK

KIND Код таблицы в БД
ID Указатель на ключевое поле таблицы с данными из тематической БД (таблица определяется значением поля KIND)
ID_L Номер слоя карты
ID_OBJ Уникальный номер объекта на карте в слое ID L

Рисунок 22. Окно подсистемы «Карта»

При работе с модулем «Карта» поверх основной топоосновы могут создаваться специализированные (пользовательские) слои, предназначенные для нанесения на карту отсутствующих там объектов (например, слои «Гаражи», «Реклама» и т.д.). При этом предполагается, что пользователь не имеет права редактировать исходную топооснову, но может вносить изменения в созданные им самим специализированные слои. При необходимости включения в классификатор карты новых типов объектов, такой классификатор должен быть создан или изменен средствами ГИС Панорама.

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

Выводы

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

Предложенный программный интерфейс для взаимодействия с внешними модулями обеспечивает необходимый доступ к наборам данных ПБД и позволяет реализовывать специфические вычисления и обработку данных без изменения кода ПБД.

Картографический модуль реализует взаимодействие ПБД с ПД, а само инструментальное средство «Интерфейс АП» применяется сторонними разработчиками для реализации ГИС-функциональности при разработке ИС.

Разработанные автором лично подсистемы, модули и функции опубликованы в работах [8, 15,47, 48, 50, 51, 55, 57-59,62]. На разработанные инструментальные средства получены свидетельства о государственной регистрации программ для ЭВМ [12, 14, 16].

<< | >>
Источник: Фереферов Евгений Сергеевич. ТЕХНОЛОГИЯ АВТОМАТИЗАЦИИ СОЗДАНИЯ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ С ГИС-ФУНКЦИОНАЛЬНОСТЬЮ НА ОСНОВЕ ИХ ДЕКЛАРАТИВНЫХ СПЕЦИФИКАЦИЙ. ДИССЕРТАЦИЯ на соискание ученой степени кандидата технических наук. Иркутск - 2014. 2014

Еще по теме Подсистема «Карта»:

  1. Вопрос о семантической систематизации славянизмов (церковнославяно-русских полисемантов)
  2. Численные исследования внутреннего резонанса 1:1:2
  3. Численныеисследования внутреннего резонанса 1:1:1
  4. Приложение 6 Результаты реализации метода выявления субъективных ожиданий[3]
  5. ПРИЛОЖЕНИЕ
  6. Формирование представлений о личностных и профессионально важных качествах идеального школьного учителя в 1900-1920 гг.
  7. Право на удовлетворение иска и право на получение судебной защиты
  8. Психолингвистический анализ современной медианоминации
  9. 21. Исполнение опекунами и попечителями обязанностей в отношении подопечного. Распоряжение и доверительное управление имуществом подопечного.
  10. Статистика влияния типа грунтов на распространение КРН
  11. 53. Оспоримые сделки: основания, условия, последствия и момент недействительности.
  12. Моделирование методом конечных элементов. Численный эксперимент
  13. Химченко Алексей Игоревич. ИНФОРМАЦИОННОЕ ОБЩЕСТВО: ПРАВОВЫЕ ПРОБЛЕМЫ В УСЛОВИЯХ ГЛОБАЛИЗАЦИИ. Диссертация на соискание ученой степени кандидата юридических наук. Москва - 2014, 2014
  14. Комбинационные резонансы аддитивно-разностного типа
  15. Модели движения воздуха в воздушных пространствах конструкций вентфасадов при турбулентном режиме
  16. Моделирование теплопотерь в конструкции вентфасада с учетом скорости ветра и термического сопротивления вентилируемого воздушного пространства с отражательной теплоизоляцией
  17. Выводы по главе
  18. Влияние активаторов на зарядно-разрядные процессы