Реферат: Разработка модуля для поиска информации в MapInfo с помощью Delphi
- мощные средства визуализации карт;
- усиленная функциональность создания отчетов;
- обновление данных «на лету». [4, 5, 8]
Вывод:
Геоинформационные технологии бурно развивающееся направление современных информационных технологий. ГИС играет большую роль в нашей жизни. В настоящее время ГИС - это многомиллионная индустрия, в которую вовлечены сотни тысяч людей во всем мире. ГИС изучают в школах, колледжах и университетах. Эту технологию применяют практически во всех сферах человеческой деятельности - будь то анализ таких глобальных проблем как перенаселение, загрязнение территории, сокращение лесных угодий, природные катастрофы, так и решение частных задач, таких как поиск наилучшего маршрута между пунктами, подбор оптимального расположения нового офиса, поиск дома по его адресу, прокладка трубопровода на местности, различные муниципальные задачи.
Глава 2. Разработка модуля для поиска информации в MapInfo с помощью Delphi
2.1. Интеграция MapInfo и Delphi
Пакетом MapInfo можно управлять, используя языки программирования, отличные от языка MapBasic (встроенного в MapInfo языка программирования). Написать интегрированное приложения можно на нескольких языках программирования, среди которых наиболее часто используются C/C++, Visual Basic, Borland Delphi. Такой способ разработки приложений известен как интегрированная картография, так как при этом происходит интеграция элементов MapInfo в своё приложение.
При желании можно создать интерфейс пользователя, радикально отличающийся от интерфейса MapInfo (рис.7.). Внешний вид на экране приложения с интегрированной картой определяется разработчиком. При интегрировании окна Карта MapInfo в разрабатываемую программу пользователь видит на экране оригинальное полнофункциональное окно MapInfo, а не растр, метафайл или графическое представления какого-либо другого типа. Пользователю может интерактивно взаимодействовать с картой (используя, например, инструменты Лупа для увеличения Карты). Интегрированное окно карты имеет все возможности, присущие окну Карта в среде MapInfo.
Для интеграции в программе должна присутствовать инструкция, запускающая MapInfo в фоновом режиме. Например, в программе на языке Borland Delphi можно запустить MapInfo вызовом функции CreateObject()/CreateOLEObject(). На примере будет выглядеть так:
OleMapInfo:= CreateOLEObject('MapInfo.Application');
Программа MapInfo запускается в фоновом режиме незаметно для пользователя, не выводя заставку на дисплей.
Разрабатываемое приложение осуществляет управление программой MapInfo, конструируя строки, представляющие операторы языка MapBasic, которые затем передаются в MapInfo посредством механизма управления объектами OLE (OLE Automation) или динамического обмена данных (DDE). MapInfo выполняет эти операторы точно так же, как если бы пользователь вводил их с клавиатуры в окно MapBasic.
Если необходимо открыть окно Карта, нужно использовать оператор Map языка MapBasic точно таким же образом, как в обычной MapBasic-программе. Однако в приложении с интегрированной картой должны также использовать дополнительные операторы (например, Set Next DocumentParent), чтобы окно Карта могло стать подчиненным (порожденным) окном Вашего приложения. Этот процесс известен как «переподчинение» окна. Можно переподчинить окна Карты, Списка, Графика, Отчета и Легенды.
Рис.7. Интерфейс пользователя разработанный в Borland Delphi
Для отображения карты в приложении необходимо использовать оператор Set Application Window. Этот оператор объявляет, какое окно будет окном приложения. Для всех последующих окон диалогов MapInfo будет считаться, что они порождены этим другим окном. Этот пример используется в интегрированной картографии, когда окна MapInfo показываются из других приложений.
Обычно программа, написанная на Borland Delphi, сначала создаёт объект MapInfo Object и затем посылает MapInfo оператор Set Application Window, после чего приложение на Borland Delphi становиться порождающим окном для диалогов MapInfo. Если оператор Set Application Window не был прописан, то становиться очень трудно координировать передачу фокуса между MapInfo и Borland Delphi.
Пересылка команд в программу MapInfo
После запуска программы MapInfo необходимо сконструировать текстовые строки, представляющие операторы языка Map Basic. Если установлена связь с MapInfo, используя механизм управления объектами OLE (OLE Automation), командная строка передаётся программе MapInfo методом Do.
Например:
OleMapInfo.Do ('здесь команда MapBasic');
В компоненте это реализовано процедурой ExecuteCommandMapBasic, но, в сущности, вызывается OleMapInfo.Do.
При использовании метода Do программа MapInfo исполняет командную строку точно, так как если б ее ввели в окне команд MapBasic. Возможно передать оператор в программу MapInfo, если этот оператор допустим окне MapBasic. Не возможно переслать MapBasic-оператор Dialog, поскольку его использование не разрешено в окне MapBasic.
Технические аспекты интегрированной картографии
Системные требования
- Интегрированная картография возможна только в операционной среде Windows. Можно использовать 16-битовую среду (Windows 3.1, Windows for Workgroups) или 32-битовую среду (Windows 95, Windows NT 3.51 или более поздние версии).
- Интегрированная картография требует наличия программы MapInfo 4.0 или более поздней версии. Можно использовать полную копию MapInfo или исполнительный (runtime) модуль MapInfo (специальная «усеченная» версия MapInfo, поставляемая только в качестве основы для специализированных приложений).
- Компьютер пользователя должен иметь достаточно свободной памяти для одновременной работы Вашей программы-клиента и программы MapInfo.
- Программа-клиент должна быть способна действовать в качестве контроллера механизма управления объектами OLE (OLE Automation controller) или клиента динамического обмена данных (DDE-клиента). Рекомендуется применение механизма управления объектами OLE как более быстрого и надежного метода по сравнению с динамическим обменом данных.
- Программа-клиент должна быть способна создать интерфейсные элементы (окна, формы и т.п.), в которые можно поместить окно Карты и определять Windows HWND окна
Другие технические замечания
- Для разработки приложения с интегрированной картой необходимо написать программу на языке, отличном от MapBasic, называемую в дальнейшем программа-клиент. Можно написать программу-клиент, используя различные популярные среды программирования, такие как Visual Basic (версия 3.0 или более поздняя), C, PowerBuilder или Delphi.
- Интегрированная Картография использует механизм управления объектами OLE (OLE Automation), но не использует Внедрение OLE. Когда Вы хотите поместить окно Карта MapInfo в приложение, не осуществляется его внедрение (embedding); напротив, происходит переподчинение окна посредством пересылки программе MapInfo серии командных строк. В результате окна MapInfo отображаются на дисплее как порожденные окна приложения.
- Интегрированная Картография не использует специализированные элементы управления VBX (Visual Basic Custom Control) или OCX. MapInfo Corporation не предоставляет какие-