НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«сМОЛЕНСКИЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ»
ФАКУЛЬТЕТ КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ, ЭКОНОМИКИ И ДИЗАЙНА
КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И БЕЗОПАСНОСТИ
Группа
52 ПИГ
Специальность 080801.65
Прикладная информатика (в ГЕОГРАФИИ
)
«Разработка модуля для поиска информации в MapInfo с помощью Delphi»
КУРСОВОЙ ПРОЕКТ
«К защите допущена»
заведующий кафедрой
_
_________ к.п.н., доцент А.В.Андреева
«____» ___________ 2010 г.
Выполнила студентка
__________ А.А.Данилова
Руководитель курсового проекта
________ к.т.н., доцент В. Д. Игнатов
Смоленск
2010
План - график выполнения курсового проекта
Студент
Кузнецов Денис Сергеевич 52 ПИГ
Тема курсового проекта
«Разработка и применение прикладных приложений на базе
MapInfo»
Закреплена на заседании кафедры
от __________
протокол № ___
№ |
Этапы работы |
Сроки выполнения |
Вид отчетности |
Отметка о выполнении |
1. |
||||
2. |
||||
3. |
||||
4. |
||||
5. |
Заключение научного руководителя по предзащите
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Курсовой проект допускается к защите:
Дата Подпись научного руководителя
_______________ _______________
НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«СМОЛЕНСКИЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ»
КАФЕДРА
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И БЕЗОПАСНОСТИ
З А Д А Н И Е
на курсовой проект студента
Кузнецова Дениса Сергеевича
Тема курсового проекта
«Разработка и применение прикладных приложений на базе
MapInfo».
Закреплена на заседании кафедры
Информационных технологий и безопасности протокол
№
от _________
Целевая установка.
Исследовать особенности производственной деятельности (объекта моделирования), определить параметры и условия, при которых показатели экономической эффективности будут наиболее благоприятными.
Основные вопросы, подлежащие разработке (исследования) в проекте:
1. Кратко описание геоинформационной системы.
2. Сферы применения ГИС.
3. Базовые компоненты ГИС.
4. Принципы организации информации в ГИС.
5. Работа вMapInfo
6. Среда разработки приложений для MapInfo.
7. Разработка ГИС.
8. Программное обеспечение для разработки прикладных приложений.
Оглавление
Введение
………………………………………………………………………….5
Глава 1.
Геоинформационные системы (ГИС)………………………………..7
1.1. Введение в геоинформационные системы (ГИС)…………………….........7
1.2. Сферы применения ГИС…………………………………………………….9
1.3. Базовые компоненты ГИС…………………………………………….........10
1.4 Типология ГИС……………………………………………………………...11
1.5. Современные ГИС…………………………………………………………..15
Глава 2.
Разработка модуля для поиска информации в MapInfo с помощью Delphi……………………………………………………………………………..22
2.1. Интеграция MapInfo и Delphi……………………………………………....22
2.2 Разработка ГИС……………………………………………………………..27
2.3 Инструкция пользователя…………………………………………………...33
Заключение
……………………………………………………………………...37
Список литературы
…………………………………………………………….39
Введение
Во все времена знания о пространственной ориентации физических объектов или, попросту говоря, об их географическом положении, были очень важны для людей. К примеру, первобытные охотники всегда знали местонахождение своей добычи, а жизнь или смерть исследователей - первопроходцев напрямую зависела от их знаний географии. Также и современное общество живет, работает и сотрудничает, опираясь на информацию о том, кто и где находится. Прикладная география в виде карт и информации о пространстве помогала совершать открытия, способствовала торговле, повышала безопасность жизнедеятельности человечества в течение как минимум прошлых 3000 лет, а карты являются одними из наиболее красивейших документов, рассказывающих об истории нашей цивилизации.
Наиболее часто наши знания из области географии применяются к решению повседневных задач, таких как, поиск нужной улицы в незнакомом городе или вычисление кратчайшего пешего пути до места своей работы. Пространственная информация помогает нам эффективно производить сельскохозяйственную продукцию и промышленные товары, добывать тепло и электроэнергию, устраивать развлечения, которыми мы наслаждаемся.
Последние тридцать лет прошлого столетия человечество интенсивно развивало инструментальные средства, названные географическими информационными системами (ГИС
), призванные помочь в расширении и углублении географических знаний. ГИС помогают нам в накоплении и использовании пространственных данных. Некоторые компоненты ГИС исключительно технологические; они включают в себя современные хранилища пространственных данных, передовые телекоммуникационные сети и усовершенствованную вычислительную технику. Хотя есть и другие методы ГИС, которые очень просты. Например, использование простого карандаша и листа бумаги для верификации карт.
Как и многие аспекты нашей жизни в последние пятьдесят лет, процесс накопления и использования пространственных данных был сильно трансформирован интенсивным развитием микроэлектроники. Программное обеспечение и аппаратная платформа ГИС – это главный технологический результат, так как получение и обработка пространственных данных значительно ускорились за прошлые три десятилетия, и продолжает неустанно развиваться. [4, 10]
Тема моей курсовой работы «Разработка модуля для поиска информации в MapInfo с помощью Delphi».
Цель курсовой работы: изучить географические информационные системы (ГИС) в целом, а также разработать модуль для поиска информации в MapInfo с помощью Delphi.
Для достижения указанной цели были определены следующие задачи:
- изучить основы геоинформационной системы;
- выяснить сферы применения ГИС;
- изучить базовые компоненты ГИС;
- изучить типологию геоинформационных систем;
- рассмотреть современные ГИС;
- рассмотреть интеграцию MapInfo и Delphi.
В процессе написания курсовой работы мною были использованы различные источники. Например, из книги А. С. Самардак «Геоинформационные системы» я узнала об основах геоинформационной системы, о сфере применения ГИС, о типологии геоинформационных систем. Книга В. С. Тикунова «Основы геоинформатики» помогли мне узнать о понятии ГИС. Книга Л. М. Бугаевского «Геоинформационные системы» также помогла мне в написании моей курсовой работы. В ней я изучила базовые компоненты ГИС. Остальные источники также помогли мне в написании курсовой работы.
Глава 1. Географические информационные системы (ГИС)
1.1. Введение в геоинформационные технологии.
Появление географических информационных систем относятся к началу 60-х годов прошлого века. Именно тогда сложились предпосылки и условия для информатизации и компьютеризации сфер деятельности, связанных с моделирование географического пространства и решением пространственных задач. Их разработка базировалась на исследованиях университетов, академических учреждений, оборонных ведомств и картографических служб.
Кратко ГИС определялись как информационные системы, обеспечивающие сбор, хранение, обработку, отображение и распространение данных, а также получение на их основе новой информации и знаний о пространственно-координированных явлениях. [2]
Человек, абсолютно незнакомый с географическими информационными системами, может задать вопрос: “а зачем мне нужно знать, что такое геоинформатика?” Действительно, в жизни большинства из нас далеко не каждый день возникает необходимость обращаться к географическим атласам или картам. Но если разобраться, то геоинформационные технологии представляют из себя несколько больше, чем просто карту, помещенную в компьютер. В то же время, понятие “географическая информационная система (геоинформационная система, ГИС)” неразрывно связано с обычной печатной картой. По сути, любая географическая карта есть модель земной поверхности, и является объектом анализа её пользователей.
Человек в научной, производственной и управленческой деятельности постоянно сталкивается с необходимостью обработки больших массивов информации, которые связанны с пространственным местоположением разных объектов, описывающих трансформацию их свойств и характеристик в зависимости от времени. В итоге получают визуальное отображение, а весь процесс визуализации – есть процесс создания карты.
Большинство задач для ГИС можно решить просто, без компьютерного анализа или моделирования. Однако печатать текст можно и на печатной машинке, а мы сейчас предпочитаем использовать компьютер. Это очень удобно, быстро, эффективно. Обычно человек подходит к ГИС незаметно для себя. Все начинается с использования распространенных графических редакторов, таких как Photoshop, CorelDraw, Illustrator. В процессе работы становится ясно, что на нашу схему или тематический слой нужно разместить дополнительные данные из других источников (как нанести изображение на контурную карту). Для таких операций требуется единое координатное пространство. Это является первым шагом к использованию определенных систем координат и картографических проекций. На следующем этапе возникает необходимость составлять и делать запросы по атрибутивной информации. Простейшие запросы можно делать в графических редакторах. Но часто существует потребность в более сложных запросах, таких, как отметить все офисные многоэтажные здания, построенные из бетонных блоков, или найти нужную улицу на карте. Как только вы начали формировать подобного рода задачи, вы становитесь потенциальным пользователем ГИС. [4]
1.2. Сферы применения ГИС
В настоящее время геоинформационные технологии проникли практически во все сферы жизни. Отметим основные:
- экология и природопользование;
- земельный кадастр и землеустройство;
- морская, авиационная и автомобильная навигация;
- управление городским хозяйством;
- региональное планирование;
- маркетинг;
- демография и исследование трудовых ресурсов;
- управление дорожным движением;
- оперативное управление и планирование в чрезвычайных ситуациях;
- социология и политология.
Кроме того, ГИС используются для решения разнородных задач, таких как:
- обеспечение комплексного и отраслевого кадастра;
- поиск и эффективное использование природных ресурсов;
- территориальное и отраслевое планирование;
- контроль условий жизни населения, здравоохранение, социальное обслуживание, трудовая занятость;
- обеспечение деятельности правоохранительных органов и силовых структур;
- наука и образование;
- картографирование.
Специалисты, работающие в области ГИС и геоинформационных технологий, занимаются следующим:
- накоплением первичных данных;
- проектированием баз данных;
- проектированием ГИС;
- планированием, управлением и администрированием геоинформационных проектов;
- разработкой и поддержкой ГИС;
- маркетингом и распространением ГИС-продукции и геоданных;
-профессиональным геоинформационным образование и обучением ГИС-технологиям. [4, 11, 9]
1.3. Базовые компоненты ГИС
Любая ГИС включает в себя следующие компоненты:
- аппаратная платформа (hardware);
- программное обеспечение (software);
- данные (data);
- человек-аналитик.
Аппаратная платформа в свою очередь состоит из следующих частей:
- компьютеры (рабочие станции, ноутбуки, карманные ПК);
- средства хранения данных (винчестеры, компакт-диски, дискеты, флэш-память);
- устройства ввода информации (дигитайзеры, сканеры, цифровые камеры и фотоаппараты, клавиатуры, компьютерные мыши);
- устройства вывода информации (принтеры, плоттеры, проекторы, дисплеи).
Сердцем любой ГИС являются используемые для анализа данные. Устройства ввода позволяют конвертировать существующую географическую информацию в тот формат, который используется в данной ГИС. Географическая информация включает в себя бумажные карты, материалы аэрофотосъемок и дистанционного зондирования, адреса, координаты объектов собранные при помощи систем глобального позиционирования GPS (Global Position System), космических спутников или цифровой географической информации, хранимой в других форматах.
Если говорить о программном обеспечении ГИС, то следует отметить, что большинство программных пакетов обладают схожим набором характеристик, такими как, послойное картографирование, маркирование, кодирование геоинформации, нахождение объектов в заданной области, определение разных величин, но очень сильно различаются в цене и функциональности. Выбор программного обеспечения зависит от конкретных прикладных задач, решаемых пользователем. [1]
1.4. Типология ГИС
Геоинформационные системы можно классифицировать по разным признакам и характеристикам, но при этом нужно учитывать тот факт, что жесткая конкурентная борьба между основными производителями специализированного ПО ведет к совершенствованию ГИС от версии к версии. Исходя из этого, критерии оценки систем крайне условны и справедливы лишь в течение какого-то определенного временного интервала.
Наиболее существенная классификация на сегодняшний день - это классификация по функциональным возможностям
.
В соответствии с ней ГИС подразделяются на:
- профессиональные
,
нацеленные на обработку больших массивов информации на высокопроизводительных компьютерах и вычислительных сетях
, предназначенные для серьезных научных исследований, руководства целыми отраслями или крупными территориями (государствами, мегаполисами, городами). Наиболее выделяющиеся среди них программные продукты фирм ESRI, INTERGRAPH, AutoDesk, GDS и др.;
- настольные
,
имеющими по сравнению с первыми меньшую производительность и используемыми для решения прикладных научных задач оперативного управления и планирования. Среди них можно отметить такие продукты, как MapInfo Professional, ArcView, WinGIS, Atlas GIS, Credo, ГИС-Конструктор и т.д. (Рис.1)
Рис. 1. Окно программы ArcView GIS
- вьюверы (viewer),
электронные атласы, т.е. простые недорогие системы для информационно-справочного использования. Программные продукты этого класса лишены возможности редактирования информации и предназначены в основном для поиска и визуального отображения информации, подготовленной в профессиональных или настольных ГИС.
Кроме того ГИС можно классифицировать по типам представления географической информации. Выделяют два типа ГИС, в которых используются разные модели представления данных:
- ГИС на основе растровой модели представления данных
(
регулярно-ячеистое представление
и квадротомическое представление)
.
В таких ГИС цифровое представление географических объектов формируется в виде совокупности ячеек растра (пикселей) с присвоенным им значением класса объекта. (Рис. 2.)
Рис. 2. Пример структуры, описываемой растровой моделью. 1 – жилой район, 2 – водоем, 3 – с/х земли
- ГИС на основе векторной модели представления данных
(
векторно-топологическое представление и векторно-нетопологическое).
В этом случае цифровое представление точечных, линейных и полигональных пространственных объектов осуществляется в виде набора координатных чисел. (Рис. 3.)
Рис. 3. Пример структуры, описываемой векторной моделью. 1 – жилой район, 2 – водоем, 3 – с/х земли.
Следует отметить, что современные геоинформационные системы обычно работают как с векторной, так и с растровой моделями представления данных.
Рассмотрим преимущества растровой и векторной моделей.
Растровая модель:
1. Картографические проекции просты и точны, т.е. любой объект неправильной формы описывается с точностью до одной ячейки растра.
2. Непосредственное соединение в одну картину снимков дистанционного зондирования (спутниковые изображения или отсканированные аэрофотоснимки).
3. Поддерживает большое разнообразие комплексных пространственных исследований.
4. Программное обеспечение для растровых ГИС легче освоить и оно более дешевое, чем для векторных ГИС.
Векторная модель:
1. Хорошее визуальное представление географических ландшафтов.
2. Топология местности может быть детально описана, включая телекоммуникации, линии электропередач, газо - и нефтетрубопроводы, канализационную систему.
3. Превосходная графика, методы которой детально моделируют реальные объекты.
4. Отсутствие растеризации (зернистости) графических объектов при масштабировании зоны просмотра.
Кроме представленных выше классификаций, существующие ГИС можно разделять по используемой в системе
топологической модели данных
:
- без топологической поддержки;
- с объектной топологической поддержкой;
- с линейно-узловой топологической поддержкой.
По принципам внутреннего устройства и функционирования ГИС выделяют открытые (расширяемые) и закрытые системы.
Открытые системы
позволяют пользователю адаптировать программную среду для решения его прикладных задач путем создания собственных приложений. Для этого используют широко распространенные языки программирования, такие как С++, Java, Delphi и др.
Закрытые системы
не имеют этих достоинств. Они изначально нацелены на решение специфических прикладных задач и при изменении хотя бы одного условия задачи становятся бессильными. Помимо этого, зачастую возникают проблемы, связанные с обменом информации между приложениями. Это можно объяснить недостаточной документированностью внутренних форматов цифрового представления данных.
Широкое использование ГИС приводит к множественности типов геоинформационных систем, которые отличаются функциональностью, территориальным охватом, тематикой. Так выделяют несколько видов ГИС, разнящихся величиной пространственного охвата и масштабом. (Табл. 1.) [4]
Виды ГИС.
Вид ГИС |
Охват территории, км2
|
Масштаб |
Глобальные |
105
|
1:1000000 - 1:100000000 |
Национальные |
104
|
1:1000000 – 1:10000000 |
Региональные |
103
|
1:100000 – 1:2500000 |
Муниципальные |
103
|
1:1000 – 1:50000 |
Локальные |
102
|
1:1000 – 1:100000 |
1. 6. Современные ГИС
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/Micro Station Design, ESRI Shape файл, ARC/INFO Export, а также растровые карты в форматах 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, Visual Basic, C++, PowerBuilder и др. Совместное использование MapInfo и среды разработки MapBasic дает возможность каждому создавать специфические приложения для решения конкретных прикладных задач. [4, 6]
AutoCAD Map 3D
AutoCAD Map 3D
предоставляет пользователям доступ к данным, необходимым для планирования инфраструктуры, проектирования и эксплуатации объектов (Рис.). Он помогает специалистам, разрабатывающим проекты транспортных сетей, электрических сетей, земле- и водопользования, объединять имеющуюся в их распоряжении кадастровую, коммунальную, топографическую, природоохранную, графическую и полученную путем лазерного сканирования информацию. (Рис. 5.)
Рис. 5. Внешний вид программы AutoCAD MAP 3D
Возможности
AutoCAD Map 3D – это картографический программный продукт на платформе последней версии AutoCAD. С его помощью пользователи получают непосредственный доступ к данным, которые необходимы для планирования, проектирования и эксплуатации инфраструктуры. AutoCAD Map 3D помогает специалистам, выполняющим проекты в сфере транспортного строительства, энергоснабжения, земле- и водопользования, создавать, обрабатывать и анализировать проек
Доступ к данным и обмен ими
AutoCAD Map 3D способен взаимодействовать со всеми распространенными САПР и ГИС. Вы можете читать, сохранять и преобразовывать данные в стандартных форматах:
DWG, Покрытия Arc/Info, SHP и E00 из ESRI, MapInfo MIF/MID™, MapInfo TAB, MicroStation DGN, Generalized Markup Language, Ordnance Survey MasterMap (DNF), (GML2, только чтение), Oracle, Vector Product Format (VPF, только чтение), ASCII, LandXML, SDF, Spatial Data Transfer Standard (SDTS, только чтение)/
Полученные из других программ данные можно сохранить в DWG-файле, преобразовать и записать в другой файл, либо передать в базу картографических данных.
Работа с данными топосъемки
AutoCAD Map 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, 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 не предоставляет какие-либо заголовочные файлы или библиотеки. (Программное обеспечение MapInfo включает в себя несколько динамически подключаемых библиотек (файлы .DLL), но к ним не обращаются непосредственно; эти библиотеки предназначены для внутреннего использования программой MapInfo).
Объектная модель механизма управления объектами OLE
На следующей диаграмме приведена схема объектной модели MapInfo (Рис. 8.).
Рис.8. Схема объектной модели MapInfo.
- Объект Application
(Приложение) представляет работающий экземпляр MapInfo.
- Семейство MBApplications
(MapBasic-Приложения) представляет список MapBasic-приложений, работающих в данный момент.
- Семейство MBGlobals
(Глобальные переменные в среде MapBasic) представляет список глобальных переменных, декларированных одним из работающих MapBasic-приложений.
Пример простейшей программы
Следующая программа на Borland Delphi даст представление о том, как легко встроить окно 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. Разработка ГИС
Для разработки интегрированной среды будем использовать язык программирования Borland Delphi 7 и геоинформационную систему MapInfo.
Delphi является среди широкого круга пользователей популярной системой объектно-ориентированного программирования, основу которой составляет язык Object Pascal.
Delphi – это система объектно-ориентированного визуального программирования. Приложения (прикладные программы) Delphi являются интерактивными системами, в которых для организации взаимодействия между пользователем и программой используются методы (подпрограммы), управляемые событиями.
MapInfo Professional – географическая информационная система (ГИС), предназначенная для сбора, хранения, отображения, редактирования и анализа пространственных данных.
Разрабатываемая ГИС на основе MapInfo будет решать следующие задачи:
- находить улицы;
- находить дома;
- подписывать дома и улицы;
- выдавать список улиц и список домов принадлежащей улице.
Главным достоинством разрабатываемой программы является, то, что она может производить поиск, подписывать, выдавать список из любых слоёв, т.е. является универсальной.
Для интеграции MapInfo и Delphi создадим новый проект 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';// переподчинение окна.
LoadMap := ExtractFilePath(Application.ExeName);
OleMapInfo. Do('Run Application"'+LoadMap+'mapmap.wor'+'"'); // загрузка рабочего набора
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;
После создания процедуры FormCreate, запускаем приложение (Рис. 9.).
Рис. 9. Готовое приложение
Интегрированные приложения создаются для каких-то определённых целей и служат для улучшения уже имеющихся функций ГИС, а также созданию уникального и простого в использовании интерфейса пользователя. Наше разрабатываемое приложение не исключение, по сколько оно носит информационно-поисковой характер, значит, и функции в нём будут исключительно для поиска и получения информации.
Поиск улиц, зданий
Искать дом или улицу будем посредством SQL-запроса в атрибутивных данных карты. К примеру, для поиска улицы напишем следующий код в обработчике событий для кнопки «Найти»:
var
NameStreet: String;
CentroidX: String;
CentroidY: String;
Layer: String;
Street: String;
Hom: String;
begin
Try
NameStreet := Edit1.Text; //информацию введённую в поле поиска улицы внесём в переменную
Layer := ComboBox1.Items[ComboBox1.ItemIndex]; //слой в котором будет производиться поиск
Street := ComboBox2.Items[ComboBox2.ItemIndex]; // поле в котором буде производиться поиск
OleMapInfo.Do ('Select * From '+Layer+' Where '+Street+' Like "%'+NameStreet+'%" Into Selection'); // SQl запрос на поиск улицы (Выбрать всё из слоя где поле = значению Edit1)
frmStreetFind.Top := 25; // помещаем форму с выводом результата в правый верхний угол, чтобы она не мешала отображению найденного объекта
frmStreetFind.Left := Screen.Width - frmStreetFind.Width;
CentroidX := OleMapInfo.Eval('CentroidX(Selection.Obj)'); //определяем центр найденного объекта по оси Х
CentroidY := OleMapInfo.Eval('CentroidY(Selection.Obj)'); // определяем центр найденного объекта по оси У
OleMapInfo.Do('Set Map Center ('+'"'+CentroidX+'",'+'"'+CentroidY+'")'); // перемещаем найденный окно карты в центр найденного объекта
OleMapInfo.Do('Set Map Scale 1 Units "cm" For 35 Units "m"');
Except
MessageDlg('Указанной улицы нет!', mtInformation, [mbOk], 0);
End;
frmGisFind.StatusBar1.Panels[1].Text := 'Найдено объектов: ' + OleMapInfo.Eval('SelectionInfo(3)') ; // в строку состояния выводим информацию о том сколько объектов найдено
end;
Для поиска здания используем следующий код в обработчике событий для кнопки «Найти»:
var
Ndom: String;
NameStreet: String;
CentroidX: String;
CentroidY: String;
Layer: String;
Street: String;
Hom: String;
begin
Try
NameStreet := Edit1.Text; //значение улице присваиваем переменной
Ndom := Edit2.Text; //значение дома присваиваем переменной
Layer := ComboBox1.Items[ComboBox1.ItemIndex]; // выбираем слой с домами
Street := ComboBox2.Items[ComboBox2.ItemIndex]; // выбираем поле улицы в слое с домами
Hom := ComboBox3.Items[ComboBox3.ItemIndex]; // выбираем поле дома в слоек с домами
OleMapInfo.Do ('Select * From '+Layer+' Where '+Street+' Like "%'+NameStreet+'%" and '+Hom+' = "'+Ndom+'" Into Selection'); // составляем SQL-запрос на поиск дома (Выбрать всё из слоя с домами где поле с улицей =Edit1 и поле с домом = Edit 2)
frmSQLdom.Top := 25; // помещаем окно с найденной информацией в правый верхней угол
frmSQLdom.Left := Screen.Width - frmSQLdom.Width;
CentroidX := OleMapInfo.Eval('CentroidX(Selection.Obj)');
CentroidY := OleMapInfo.Eval('CentroidY(Selection.Obj)');
OleMapInfo.Do('Set Map Center ('+'"'+CentroidX+'",'+'"'+CentroidY+'")');
OleMapInfo.Do('Set Map Scale 1 Units "cm" For 5 Units "m"');
Except
MessageDlg('Указанного дома нет!', mtInformation, [mbOk], 0);
End;
frmGisFind.StatusBar1.Panels[1].Text := 'Найдено объектов: ' + OleMapInfo.Eval('SelectionInfo(3)') ;
Создание подписей для домов и улиц
Для создание подписей в обработчике событий кнопки «Подписать» напишем следующий код:
begin
try
layerStr := ComboBox1.Items[ComboBox1.ItemIndex]; // выбор слоя для подписи улицы
layerHom := ComboBox3.Items[ComboBox3.ItemIndex]; // выбор слоя для подписи дома
PoleStr := ComboBox2.Items[ComboBox2.ItemIndex]; // выбор поля для подписи улицы
PoleHom := ComboBox4.Items[ComboBox4.ItemIndex]; // выбор поля для подписи дома
OleMapInfo.Do('Set Map Layer '+layerStr+' Label Font ("Arial CYR",1,9,16711680) With '+PoleStr+''); // посылаем команду ( подписать на слое улицы шрифтом Arial CYR, жирным красным цветом) информацию для подписи взять из поля подписи улицы
OleMapInfo.Do('Set Map Layer '+layerStr+' Label Auto On'); // включить подпись
OleMapInfo.Do('Set Map Layer '+layerHom+' Label Font ("Arial CYR",1,9,255) With '+PoleHom+''); // посылаем команду ( подписать на слое дома шрифтом Arial CYR, жирным синим цветом) информацию для подписи взять из поля подписи домов
OleMapInfo.Do('Set Map Layer '+layerHom+' Label Auto On'); // включить подпись
Close;
except
end;
Получение списка улиц и списка домов принадлежащей данной улице
Для получения списка в обработчике событий для кнопки «Список» напишем следующий код:
var
sMsgString : String;
sWinHand,s : String;
d,i : byte;
begin
ListBox1.Items.Clear;
sMsgString:='Select '+ComboBox2.Items[ComboBox2.ItemIndex]+' from '+ComboBox1.Items[ComboBox1.ItemIndex]+' group by '+ComboBox2.Items[ComboBox2.ItemIndex]+' order by '+ComboBox2.Items[ComboBox2.ItemIndex]+' into TMP';
oleMapInfo.Do(sMsgString); // запрос на получение списка из таблицы и поля, результат отсортировать по имени
s:=olemapinfo.eval('TableInfo("TMP", '+inttostr(8)+')');
d:=strtoint(s);
for i:=1 to d do
begin
oleMapInfo.Do('Fetch Rec '+ IntToStr(i) +' From TMP');
sMsgString := 'tmp.'+ComboBox2.Items[ComboBox2.ItemIndex]+'';
S := oleMapInfo.Eval(sMsgString);
listbox1.Items.Add(s); // вывести результат запроса в таблицу
end;
2.3. Инструкция пользователя
Для поиска необходимого дома выбираем на панели инструментов кнопку . В открывшемся окне указываем в поле «Таблица» указываем нужную таблицу, по которой мы будем искать нужный нам дом. В «Поле улицы» указываем нужную улицу. Затем указываем «Поле дома». В значениях мы пишем «Название улицы» и «Номер дома». Затем нажимаем кнопку «Найти» и у нас отображается найденный дом выделенным цветом. (Рис. 10.)
Рис. 10 Окно с найденным домом
Для поиска необходимой улицы выбираем кнопку и в открывшемся окне в поле «Таблица» указываем таблицу. Затем указываем поле улицы по которому мы будем искать. В значениях указываем улицу. Далее нажимаем кнопку «Найти» и на экране у нас отображается найденная улица в центре окна. (Рис. 11.)
Рис. 11. Окно с найденной улицей
Для того чтобы подписать улицы и дома нажимаем кнопку . Указываем в настройках шрифта таблицу с улицами. Затем указываем поле в которой которой хранится информация для подписей. Для подписей домов узазываем таблицу с домами и указываем из какого поля будут подписываться дома. Затем нажимаем кнопку «OK» и мы видим, что улицы подписываются красным цветом, а дома синим. При повторном нажатии на кнопку подписи исчезают. (Рис. 12.)
Рис. 12. Окно с подписями
Чтобы вывести список улиц, нажимаем кнопку , затем указываем с какого слоя нам брать список, и указываем поле. После этого в списке выбираем любую улицу, и она отображается у нас на экране. (Рис. 13.)
Рис. 13. Окно со списком улиц
Для того чтобы вывести список с домами также нажимаем кнопку , затем выбираем, с какого слоя нам брать список, и указываем поле. После этого в списке выбираем улицу и у нас будут отображаться дома, принадлежащей указанной улице. (Рис. 14.)
Рис. 14. Окно со списком домов
Вывод:
Пакетом MapInfo можно управлять, используя языки программирования, отличные от языка MapBasic (встроенного в MapInfo языка программирования). Написать интегрированное приложения можно на нескольких языках программирования, например, C/C++, Visual Basic, Borland Delphi.
Можно создать интерфейс пользователя, радикально отличающийся от интерфейса MapInfo. Внешний вид на экране приложения с интегрированной картой определяется разработчиком.
При создании интеграции MapInfo и Delphi, вместо того чтобы писать большой запрос, где используются различные элементы, мы упрощаем ряд функций. Запрос встраивается в приложение. Это является большим преимуществом. Разработчик сам решает, что будет в его приложении.
Заключение
Геоинформационные технологии бурно развивающееся направление современных информационных технологий.
С помощью ГИС решается ряд задач:
- ГИС позволяют точнейшим образом учитывать координаты объектов и площади участков. Благодаря возможности комплексного (с учетом множества географических, социальных и других факторов) анализа информации о качестве и ценности территории и объектов на ней, эти системы позволяют наиболее объективно оценивать участки и объекты, а также могут давать точную информацию о налогооблагаемой базе.
- В области транспорта ГИС давно уже показали свою эффективность благодаря возможности построения оптимальных маршрутов, как для отдельных перевозок, так и для целых транспортных систем, в масштабе отдельного города или целой страны.
- ГИС позволяют вести мониторинг экологической ситуации и учет природных ресурсов. Они не только могут дать ответ, где сейчас находятся "тонкие места", но и благодаря возможностям моделирования подсказать, куда нужно направить силы и средства, чтобы такие "тонкие места" не возникали в будущем.
- С помощью ГИС определяются взаимосвязи между различными параметрами (например, почвами, климатом и урожайностью сельскохозяйственных культур), выявляются места разрывов электросетей.
- Компания, занимающаяся инженерными коммуникациями, может четко спланировать ремонтные или профилактические работы, начиная с получения полной информации и отображения на экране компьютера (или на бумажных копиях) соответствующих участков, скажем водопровода, и, заканчивая автоматическим определением жителей, на которых эти работы повлияют, с уведомлением их о сроках предполагаемого отключения или перебоев с водоснабжением.
- ГИС помогает, например, в решении таких задач, как предоставление разнообразной информации по запросам органов планирования, разрешение территориальных конфликтов, выбор оптимальных (с разных точек зрения и по разным критериям) мест для размещения объектов и т. д. Требуемая для принятия решений информация может быть представлена в лаконичной картографической форме с дополнительными текстовыми пояснениями, графиками и диаграммами.
- ГИС служат для графического построения карт и получения информации, как об отдельных объектах, так и пространственных данных об областях, например о расположении запасов природного газа, плотности транспортных коммуникаций или распределении дохода на душу населения в государстве. Отмеченные на карте области во многих случаях гораздо нагляднее отражают требуемую информацию, чем десятки страниц отчетов с таблицами. [1]
Список литературы
1. Бугаевский Л. М. Геоинформационные системы / Л. М. Бугаевский, В. Я. Цветков. – Учебное пособие для вузов. – М.: «Златоуст», 2000. - 222с.: ил. 28.
2. Капралов Е. Г. Геоинформатика / Е. Г. Капралов, А. В. Кошкарев, В. С. Тикунов / Под редакцией В. С. Тикунова. – М.: Издательский центр «Академия», 2005. – 480с., с. цв. ил.:ил.
3. Руководство пользователя Map Basic
4. Самардак А. С. Геоинформационные системы / А. С. Самардак: Учебное пособие. – М.: Владивосток: ДВГУ, 2005. — 124 с.
5. Электронный справочник по ArcCIS
6. Электронный справочник по Map Info
7. Электронный справочник по AutoCAD Map 3D
8. ArcView GIS: Руководство пользователя. – М.: МГУ, 1998. – 365с.
9. http://www.dias.ru /products/Gis
10. http://ru.wikipedia.org/wiki/Gis
11. http://www.studfiles.ru/dir/cat42/subj1178//file9566/view96932.html
12. http://www.dataplus.ru/Industries/100_GIS/GIS.htm