Пересылка команд в программу 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.