распечатать
Технологии-Способы разработки под Geomedia 
Схема 1

Одной из особенностей Geomedia, позволяющей смело оперировать понятием Geomedia-архитектура - является ее открытая объектная модель. Значительно раньше чем остальные ведущие игроки рынка ГИС программного обеспечения, Intergraph сделал ставку на технологии Microsoft. Это выразилось в полном отказе от поддержки UNIX (CLIX) технологий, программного обеспечения для них и созданию принципиально нового ГИС продукта -Geomedia. Geomedia- полностью OLE ориентированное программное обеспечение, в момент своего выхода- единственное профессиональное ГИС ПО без внутреннего языка программирования/скриптования. Внутренний язык просто не был нужен, ибо модель автоматизации Geomedia доступна для программирования в любой среде программирования, поддерживающей ActiveX.

Объекты Geomedia доступны как для создания собственных приложений, так и в момент run-time самой Geomedia, т.е вы фактически можете иметь программный доступ к тем же экземплярам объектов автоматизации, что и сама Geomedia в момент работы с ней пользователя. Это позволяет имитировать действия пользователя, или наоборот, организовывать новые программные модули для взаимодействия пользователя с ГИС средой.

Более строго, на самом деле существует ТРИ основных модели работы программиста с Geomedia:

  • команды
  • управляемая Geomedia
  • отдельные приложения

Команды. Программные модули в виде ActiveX DLL, которые исполняются внутри Geomedia. Обычно это диалог с какими либо элементами интерфейса (кнопки, текстовые поля, комбо и проч.) обеспечивающий пользователю некоторый процесс (workflow) специфичный для пользователя, более удобный или вообще уникальный в сравнении со стандартным. Сюда же можно отнести команды интерактивного взаимодействия с окном карты- команды дигитализации(построения географический фичеров). Фактически же абсолютно все, что можно сделать в самой Geomedia, можно написать в собственном приложении- команде.

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

Но иногда такая модель возможна, например если Geomedia используется для проведения какого либо пакетного действия, при этом можно даже не делать видимой саму Geomedia, т.е все действия пройдут как бы в фоновом режиме.

Отдельные приложения. Соверщенно независимые программы. для которых не используется сессия с работающей Geomedia, зато используются визуальные и невизуальные ГИС компоненты идентичные тем, что в Geomedia. При таком подходе у программиста нет доступа к корневому объекту Application, и приходится самостоятельно организовывать создание и взаимодействие объектов овтечающих за доступ к базам, отображение в карте, интерактивность с пользователем и проч. Это трудоемко, однако приложение в таком случае полностью настраивается по желанию разработчика. Этот подход обычно применим для создания программ с нестандартными интерфейсами и логикой, например программ для сбора данных в поле, где даже взаимодействие с GUI в корне отличается от офисного.

© ООО «Арт-мастер» 2000 - 2010. Все права защищены.