Общие сведения |
Возможности ГИС Панорама по работе с электронными картами и базами данных могут быть расширены путем включения прикладных задач, разработанных пользователями. Прикладные задачи, требующие интерактивного доступа к данным (выбор объекта, редактирование, связь с внешними базами данных и т.д.), создаются с применением программных интерфейсов PANAPI и MAPAPI. В качестве средств разработки могут применяться Visual C++, Embarcadero C++Builder XE*, Embarcadero Delphi XE* и т.п. Интерфейс MAPAPI обеспечивает непосредственную обработку данных электронных карт (векторных, растровых и матричных), а интерфейс PANAPI средства интерактивного выбора данных и указание способа обработки. Интерфейс PANAPI основан на применении трех видов объектов управления: окно электронной карты, прикладная задача, обработчик текущей команды (одного из интерактивных режимов работы задачи). Все объекты могут генерировать события и управляться через изменение их свойств. Программная реализация интерфейсов MAPAPI и PANAPI основана на импорте определенного набора функций из библиотек MAPACCES.DLL (MAPACCES64.DLL) и MAPTASK.DLL (MAPTASK64.DLL) в прикладную задачу, состоящую из одной или нескольких динамических библиотек. Кроме того, реализация интерфейса PANAPI требует, чтобы в пользовательской библиотеке имелся определенный набор экспортируемых функций для обеспечения генерации событий. Для упрощения написания прикладных задач разработана библиотека классов PANTASK, которая поставляется в виде исходных текстов. Файлы, содержащие исходные тексты PANTASK, включаются в проект прикладной задачи. Для реализации прикладных алгоритмов выполняется переопределение виртуальных функций (методов), определяющих реакцию на генерируемые события (работа с мышкой и клавиатурой, выбор объекта, перерисовка карты и т. п.). Исходные тексты классов PANTASK не содержат ссылок на библиотеки других производителей программного обеспечения (OWL, MFC, VCL и т. п.). В качестве типов переменных и структур используются общеупотребительные для среды Windows имена (long int, char, double, POINT, RECT, HDC, HWND и т.п.) или переменные и структуры, основанные на них (HMAP, HOBJ, DOUBLEPOINT, TASKPARM и т.п.). Для языка PASCAL применяются соответствующие прототипы (см. PANTASK\DELPHI).
|