Пересылка команд в программу Map Info.

Лабораторная работа № 3

Разработка интерфейса приложения с использованием средств

Интегрированной картографии

Задание:

Разработать интерфейс пользователя средствами внешней системы программирования для информационно-справочной ГИС, разработанной в лабораторной работе №3.

 

Требования к работе:

1. Интерфейс разрабатывается в любой известной системе программирования (Delphi, C#, VB).

2. Разработанный интерфейс должен позволять просматривать как графическую так и атрибутивную информацию

3. Функциональные требования к интерфейсу соответствуют требованиям к работе №4

4. Интерфейс должен обладать следующими возможностями по работе с картой:

· Выделение объектов (одного и группы)

· Зуммирование

· Панорамирование

5. В случае если БД организована в MS Access рекомендуется использовать ADO для обеспечения доступа к данным

Пояснения к работе:

Запуск MapInfo

Запуск уникального экземпляра программы MapInfo осуществляется вызовом функции CreateOleObject()с присваиванием возвращаемого значения объектной переменной (Можете декларировать объектную переменную как глобальную; в противном случае объект MapInfo освобождается после выхода из локальной процедуры.) Например:

 

MapInfo := CreateOleObject("MapInfo. Application");

Для подключения к ранее исполнявшемуся экземпляру MapInfo, который не был запущен вызовом функции CreateOleObject(). используйте функцию GetObject(),

 

MapInfo = GetObjectf , "MapInfo.Application")

Если работа идет с Runtime-версией MapInfo, а не с полной копией, необходимо задавать "MapInfo.Runtinie" вместо "MapInfo.Application". Runtime-версия и полная версия могут работать одновременно.

Функции CreateOleObject()и GetObject()используют механизм управления объектами OLE (OLE Automation) для связи с MapInfo.

В 32-разрядной версии Windows можно запускать несколько экземпляров MapInfo. Если запустить MapInfo и вслед за этим программу, использующую Интегрированную Картографию и вызывающую CreateOleObject(),то будут работать два независимых экземпляра MapInfo.

 

Пересылка команд в программу Map Info.

После запуска программы MapInfo необходимо сконструировать текстовые строки, представляющие операторы языка Delphi. Например, для исполнения программой MapInfo MapBasic оператор Open Tableможно задать в программе следующую строку:

 

sMsgString := 'Open Table "PEOPLE" as People';

Если установлена связь с MapInfo, используя механизм управления объектами OLE (OLE Automation), можно передавать командную строку программе MapInfo методом Do. Например:

 

oleMapInfo.Do (sMsgString) ;

При использовании метода Do программа MapInfo исполняет командную строку точно так же, как если бы пользователь ввел команду с клавиатуры в окно MapBasic.

Невозможно передать оператор в программу MapInfo, если этот оператор недопус­тим в окне MapBasic. Например, нельзя переслать MapBasic-оператор Dialog, по­скольку его использование не разрешено в окне MapBasic.