--PAGE_BREAK--
MapInfo
MapInfo Professional – географическая информационная система (ГИС), предназначенная для сбора, хранения, отображения, редактирования и анализа пространственных данных. Первая версия ГИС MapInfo Professional была разработана в 1987 году компанией MapInfo Corp., и быстро стала одной из самых популярных ГИС в мире. Сейчас MapInfo Professional используется в 130 странах мира, переведена на 20 языков, включая, русский, и установлена в десятках тысяч организаций. В России благодаря простоте освоения, богатым функциональным возможностям и умеренной стоимости MapInfo Professional стала самой массовой геоинформационной системой.
ГИС MapInfo (Рис. 4.) – высокоэффективное средство для визуализации и анализа пространственных данных. Сферы применения ГИС MapInfo: бизнес и наука, образование и управление, социологические, демографические и политические исследования, промышленность и экология, транспорт и нефтегазовая индустрия, землепользование и кадастр, службы коммунального хозяйства и быстрого реагирования, армия и органы правопорядка, а также многие другие отрасли народного хозяйства.
На сегодняшний день основными программными продуктами компании MapInfo являются:
— MapInfo Professional – полнофункциональная геоинформационная система;
— MapBasic – среда программирования для MapInfo Professional;
— MapInfo SpatialWare – технология управления пространственной информацией в БД SQL
Server/Informix;
— MapInfo MapX – библиотека разработчика приложений;
— MapXtreme – программное обеспечение для разработки картографических приложений для Intranetили Internet.
Рис. 4. Интерфейс ГИС MapInfo.
Источники данных MapInfo:
— Обменные векторные форматы САПР и геоинформационных систем: AutoCAD (DXF, DWG), Intergraph/MicroStationDesign, ESRIShapeфайл, ARC/INFOExport, а также растровые карты в форматах GIF, JPEG, TIFF, PCX, BMP, MrSID, PSD, ECW, BIL(снимки SPOT) и GRID(GRA, GRD). В MapInfo можно отображать данные, полученные с помощью GPS и других электронных геодезических приборов.
— Файлы Excel, Access, xBASE, Lotus 1-2-3 и текстовые, в которых кроме атрибутивной информации могут храниться координаты точечных объектов.
— ГИС MapInfo может выступать в роли “картографического клиента” при работе с такими известными СУБД, как Oracle и DB2, поскольку поддерживает эффективный механизм взаимодействия с ними через протокол ODBC. Более того, доступ к данным из СУБД Oracle возможен и через внутренний интерфейс (OCI) этой базы данных.
В одном сеансе работы одновременно могут использоваться данные разных форматов. Встроенный язык запросов SQL, благодаря географическому расширению, позволяет организовывать выборки с учетом пространственных отношений объектов, таких как удаленность, вложенность, перекрытия, пересечения, площади объектов и т.п. Запросы к базе данных можно сохранять в виде шаблонов для дальнейшего использования. В MapInfo имеется возможность поиска и нанесения объектов на карту по координатам, адресу или системе индексов.
Способы представления данных:
Карта и список.В окне Карты доступны инструменты редактирования и создания картографических объектов, масштабирования, изменения проекций и другие функции работы с картой. Связанная с картографическими объектами атрибутивная информация хранится в виде таблиц, данные из которых можно представить в виде графиков и диаграмм различных типов.
Легенда.В окне Легенды отображаются условные обозначения объектов на карте и тематических слоях.
Отчет.В окне Отчета предоставляются средства масштабирования, макетирования, а также сохранения шаблонов многолистных карт. Работая с MapInfo, можно формировать и распечатывать отчеты с фрагментами карт, списками, графиками и надписями. При выводе на печать MapInfo использует стандартные драйверы операционной системы.
Тематические карты. Для наглядного представления и картографического анализа пространственных данных в ГИС MapInfo используется тематическое картографирование. MapInfo предлагает следующие методы построения тематических карт: диапазоны значений, столбчатые и круговые диаграммы, градуированные символы, плотность точек, отдельные значения, непрерывная поверхность. Сочетание тематических слоев и методов буферизации, районирования, слияния и разбиения объектов, пространственной и атрибутивной классификации позволяет создавать синтетические многокомпонентные карты с иерархической структурой.
Интеграция с другими приложениями:
ГИС MapInfo открывает большие возможности для разработчиков геоинформационного программного обеспечения. Использование современных методов взаимодействия между Windows приложениями позволяет интегрировать окно Карты MapInfo в программы, написанные на языках Delphi, VisualBasic, C++, PowerBuilderи др. Совместное использование MapInfo и среды разработки MapBasic дает возможность каждому создавать специфические приложения для решения конкретных прикладных задач. [4, 6]
AutoCAD Map 3D
AutoCAD Map 3D предоставляет пользователям доступ к данным, необходимым для планирования инфраструктуры, проектирования и эксплуатации объектов (Рис.). Он помогает специалистам, разрабатывающим проекты транспортных сетей, электрических сетей, земле- и водопользования, объединять имеющуюся в их распоряжении кадастровую, коммунальную, топографическую, природоохранную, графическую и полученную путем лазерного сканирования информацию. (Рис. 5.)
Рис. 5. Внешний вид программы AutoCADMAP 3D
Возможности
AutoCADMap 3D – это картографический программный продукт на платформе последней версии AutoCAD. С его помощью пользователи получают непосредственный доступ к данным, которые необходимы для планирования, проектирования и эксплуатации инфраструктуры. AutoCADMap 3D помогает специалистам, выполняющим проекты в сфере транспортного строительства, энергоснабжения, земле- и водопользования, создавать, обрабатывать и анализировать проектную и ГИС-информацию.
Доступ к данным и обмен ими
AutoCAD Map 3D способен взаимодействовать со всеми распространенными САПР и ГИС. Вы можете читать, сохранять и преобразовывать данные в стандартных форматах:
DWG, Покрытия Arc/Info, SHPи E00 из ESRI, MapInfoMIF/MID™, MapInfoTAB, MicroStationDGN, GeneralizedMarkupLanguage, OrdnanceSurveyMasterMap (DNF), (GML2, только чтение), Oracle, VectorProductFormat (VPF, только чтение), ASCII, LandXML, SDF, SpatialDataTransferStandard (SDTS, только чтение)/
Полученные из других программ данные можно сохранить в DWG-файле, преобразовать и записать в другой файл, либо передать в базу картографических данных.
Работа с данными топосъемки
AutoCADMap 3D позволяет собирать данные в различных форматах и строить карты на их основе. В программе обеспечивается организация, управление и эффективное использование данных, полученных при топосъемке. Среди функциональных возможностей в этой области — следующее:
— импорт точек ASCII и данных в формате LandXML;
— данные и схемы топографической съемки;
— группы точек;
— создание FDO-элементов по данным топосъемки. [7]
ArcGis
ARCVIEW GIS— система, которая предназначена для отображения, редактирования, пространственного анализа, поиска и управления геопространственными данными. Это программное средство, как и ARCINFO, разработано фирмой ESRI. На Рис. 6. показан интерфейс программы ARCVIEW GIS.
Рис. 6. Интерфейс программы ARCVIEW GIS.
Многие пользователи программных продуктов ESRI для построения и управления своими географическими базами данных используют ARC/INFO, а для расширенной визуализации данных и их анализа применяют ARCVIEW. Для дальнейшего упрощения взаимодействия этих двух продуктов в ARCVIEW GIS добавлены новые линейные символы, предназначенные для лучшей совместимости картографических отображений ARC/INFO и ARCVIEW. Кроме того, в ARCVIEW теперь возможен импорт многослойных и сложных линейных символов, имеющихся в ARC/INFO.
Одна из привлекательных особенностей ARCVIEW GIS – включение в пакет программ подсказчиков (мастеров). Эти подсказчики облегчают использование множества новых инструментов и полезны как для новичков, так и опытных пользователей. Добавлены инструменты для создания координатных сеток и рамок карты (управление интервалами, типами линий, типом рамок).
Средства геообработки и анализа ARCVIEW позволяют проводить такие сложные пространственные операции с географическими данными как создание буферных зон вокруг картографических объектов, вырезка, слияние, пересечение, объединение тем и присвоение данных по местоположению.
Ключевые особенности ARCVIEW GIS:
— удобный и понятный интерфейс;
— доступ к множеству типов данных;
— объединение диаграмм, карт, таблиц и графики;
— мощные средства визуализации карт;
— усиленная функциональность создания отчетов;
— обновление данных «на лету». [4, 5,8]
Вывод:
Геоинформационные технологии бурно развивающееся направление современных информационных технологий. ГИС играет большую роль в нашей жизни. В настоящее время ГИС — это многомиллионная индустрия, в которую вовлечены сотни тысяч людей во всем мире. ГИС изучают в школах, колледжах и университетах. Эту технологию применяют практически во всех сферах человеческой деятельности — будь то анализ таких глобальных проблем как перенаселение, загрязнение территории, сокращение лесных угодий, природные катастрофы, так и решение частных задач, таких как поиск наилучшего маршрута между пунктами, подбор оптимального расположения нового офиса, поиск дома по его адресу, прокладка трубопровода на местности, различные муниципальные задачи.
Глава 2. Разработка модуля для поиска информации в MapInfoс помощью Delphi
2.1. Интеграция MapInfo и Delphi
Пакетом MapInfo можно управлять, используя языки программирования, отличные от языка MapBasic (встроенного в MapInfoязыка программирования). Написать интегрированное приложения можно на нескольких языках программирования, среди которых наиболее часто используются C/C++, Visual Basic, BorlandDelphi. Такой способ разработки приложений известен как интегрированная картография, так как при этом происходит интеграция элементов MapInfo в своё приложение.
При желании можно создать интерфейс пользователя, радикально отличающийся от интерфейса MapInfo (рис.7.). Внешний вид на экране приложения с интегрированной картой определяется разработчиком. При интегрировании окна Карта MapInfo в разрабатываемую программу пользователь видит на экране оригинальное полнофункциональное окно MapInfo, а не растр, метафайл или графическое представления какого-либо другого типа. Пользователю может интерактивно взаимодействовать с картой (используя, например, инструменты Лупа для увеличения Карты). Интегрированное окно карты имеет все возможности, присущие окну Карта в среде MapInfo.
Для интеграции в программе должна присутствовать инструкция, запускающая MapInfo в фоновом режиме. Например, в программе на языке BorlandDelphi можно запустить MapInfo вызовом функции CreateObject()/CreateOLEObject(). На примере будет выглядеть так:
OleMapInfo:= CreateOLEObject('MapInfo.Application');
Программа MapInfo запускается в фоновом режиме незаметно для пользователя, не выводя заставку на дисплей.
Разрабатываемое приложение осуществляет управление программой MapInfo, конструируя строки, представляющие операторы языка MapBasic, которые затем передаются в MapInfo посредством механизма управления объектами OLE (OLE Automation) или динамического обмена данных (DDE). MapInfo выполняет эти операторы точно так же, как если бы пользователь вводил их с клавиатуры в окно MapBasic.
Если необходимо открыть окно Карта, нужно использовать оператор Map языка MapBasic точно таким же образом, как в обычной MapBasic-программе. Однако в приложении с интегрированной картой должны также использовать дополнительные операторы (например, Set Next DocumentParent), чтобы окно Карта могло стать подчиненным (порожденным) окном Вашего приложения. Этот процесс известен как «переподчинение» окна. Можно переподчинить окна Карты, Списка, Графика, Отчета и Легенды.
Рис.7. Интерфейс пользователя разработанный в BorlandDelphi
Для отображения карты в приложении необходимо использовать оператор Set Application Window. Этот оператор объявляет, какое окно будет окном приложения. Для всех последующих окон диалогов MapInfo будет считаться, что они порождены этим другим окном. Этот пример используется в интегрированной картографии, когда окна MapInfo показываются из других приложений.
Обычно программа, написанная на BorlandDelphi, сначала создаёт объект MapInfoObjectи затем посылает MapInfoоператор SetApplicationWindow, после чего приложение на BorlandDelphi становиться порождающим окном для диалогов MapInfo. Если оператор SetApplicationWindowне был прописан, то становиться очень трудно координировать передачу фокуса между MapInfoи BorlandDelphi.
Пересылка команд в программу
MapInfo
После запуска программы MapInfo необходимо сконструировать текстовые строки, представляющие операторы языкаMapBasic. Если установлена связь с MapInfo, используя механизм управления объектами OLE (OLEAutomation), командная строка передаётся программе 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 не предоставляет какие-либо заголовочные файлы или библиотеки. (Программное обеспечение MapInfo включает в себя несколько динамически подключаемых библиотек (файлы .DLL), но к ним не обращаются непосредственно; эти библиотеки предназначены для внутреннего использования программой MapInfo).
Объектная модель механизма управления объектами OLE
На следующей диаграмме приведена схема объектной модели MapInfo (Рис. 8.).
Рис.8. Схема объектной модели MapInfo.
— Объект Application (Приложение) представляет работающий экземпляр MapInfo.
— Семейство MBApplications (MapBasic-Приложения) представляет список MapBasic-приложений, работающих в данный момент.
- Семейство MBGlobals (Глобальные переменные в среде MapBasic) представляет список глобальных переменных, декларированных одним из работающих MapBasic-приложений.
Пример простейшей программы
Следующая программа на BorlandDelphi даст представление о том, как легко встроить окно MapInfo в другую программу.
Сначала, создадим новый проект Delphi. В процедуре FormCreate добавим следующие строки:
Const
SW_SHOWNORMAL = 1;
var
OleMapInfo: Variant;
MsgString: String;
sWinHand: String;
begin
OleMapInfo := CreateOLEObject('MapInfo.Application');// запускMapInfo.
Str(pnlMap.Handle, sWinHand);// Указываем место где будет отображаться карта.
MsgString := 'Set Next Document Parent ' + sWinHand + ' Style 1';// переподчинение окна.
OleMapInfo. Do(MsgString);//ПересылкакомандвпрограммуMapInfo
MsgString := 'Set Application Window ' + sWinHand; // становлениепорождающегоокнадлядиалоговMapInfo.
OleMapInfo.Do(MsgString);//ПересылкакомандвпрограммуMapInfo
OleMapInfo.Do('Set Window Info Parent '+IntToStr(frmGis_Spravka.handle)); // ПодключениеокнадиалогаИнформация.
OleMapInfo.Do('Set Window Ruler Parent '+IntToStr(frmGis_Spravka.Handle)); // ПодключениеокнадиалогаРулетка
end;
Как только запустили программу на Delphi, она запускает MapInfo, которая создает окно Карты. При этом MapInfo действует как «скрытый» сервер, а окно Карты ведет себя, как порожденное программой Delphi. [3]
2.2. Разработка ГИС
Для разработки интегрированной среды будем использовать язык программирования BorlandDelphi7 и геоинформационную систему MapInfo.
продолжение
--PAGE_BREAK--