инструкция одного из них

advertisement
2
ВВЕДЕНИЕ
До 1993 года основной рост рынка ГИС был связан лишь с крупными
проектами федерального уровня, сегодня же главный потенциал перемещается в
сторону массового рынка в связи с приобщением к ним все новых и новых предметных
сфер их использования. Современная геоинформатика все больше и больше
ориентируется на массового пользователя. В связи с этим постоянно расширяется круг
задач, которые требуется решать с использованием ГИС, и стандартных средств
анализа, предоставляемых ГИС, может быть недостаточно для решения конкретных
пользовательских задач. Важную роль при этом играет создание универсальных
средств анализа, которые бы как можно меньше ограничивали предметную область их
применения, либо не ограничивали ее вовсе.
Многие
задачи
требуют
не
только
кропотливого
сопоставления
пространственного положения различных объектов территории исследований (подсчет
и классификация пересечений трассы с объектами гидрографии, дорожной сети и т.д.;
оценка удаленности каждого участка будущего строительства от транспортных
коммуникаций и населенных пунктов), но и моделирование с учетом набора
характеристик и алгоритмов, присущих каждому типу объектов. Примерами таких
задач могут быть: определение стоимости строительства трубопровода, оценка
расположения предприятия в зависимости от удаленности подходящих заданным
условиям поставщиков и т. д.
Появляется все больше задач, в которых пространственные данные играют
далеко не первостепенную роль по сравнению с непространственной (атрибутивной)
информацией. Работа с такими задачами лишь формально относится к ГИС, от которых
в таких случаях требуется лишь наглядная привязка объектов к местности и их
визуализация на карте. Основную же роль при этом играет работа с атрибутами
объектов. Зачастую, время и средства, затраченные на создание атрибутивных данных
цифровой картографической информации, составляют от 70% до 90% от времени и
средств, затраченных на создание всего ГИС-проекта. В связи с этим наиболее важным
становится вопрос, какие возможности способны будут предоставлять атрибуты
объектов для последующей работы с ними и решения поставленных задач.
Традиционно, каждому картографическому объекту лишь соответствует запись
в атрибутивной базе данных, отдельные поля которой - числовые, символьные,
логические - определяют различные атрибуты объекта. Однако для решения множества
3
задач было бы удобно, если бы объекты содержали также некоторые алгоритмы для
вычисления производных атрибутов (алгоритмы, работающие одновременно как с
пространственными, так и с атрибутивными данными объектов на карте). Существенно
расширило бы понятие “атрибута” объекта и возможность представления его в любом,
пользовательском типе помимо стандартного набора возможных типов. Очевидно, что
для подобных задач моделирования было бы логичным использование в качестве типов
пространственных объектов классы, взятые из объектно-ориентированного подхода в
программировании (под классом подразумевается некая сущность, которая задает
некоторое общее поведение для объектов).
В связи с расширением круга задач в состав ГИС, как правило, включается
программный инструментарий, позволяющий наращивать возможности системы и
дополнять ее специфическими функциями. Такие ГИС больше похожи на оболочки,
дополнительную функциональность которым придают разработчики подобных
дополнений.
ПОСТАНОВКА ЗАДАЧИ
Задача заключается в исследовании проблематики в сфере ГИС, изучении
существующих подходов к решению возникающих в этой сфере задач, а также
разработка части программного комплекса и средств, предоставляющих возможность
использовать и визуализировать в рамках ГИС географические объекты, обладающие
расширенной функциональностью для возможности решения принципиально большего
круга задач в этой области. Таким образом, речь идет о разработке части программного
комплекса, что требует также разработку общей инфраструктуры приложения.
В работе предложено совместить понятие географических объектов в ГИС с
понятием классов в объектно-ориентированном подходе в программировании, и
использовать классы языка программирования C# в качестве типов картографических
объектов. Такой подход не ограничивает пользователя в типизации свойств класса, а
также позволяет реализовать алгоритмы поведения объектов с помощью методов
класса. Предложено создать конвертер, позволяющий преобразовывать объектноориентированные классы в один из форматов хранения данных в ГИС и наоборот.
Таким образом, разрабатываемый программный комплекс в целом должен
предоставлять не возможность решения набора фиксированных задач, который бы был
4
строго закреплен и оставался неизменным для любого конечного пользователя
системы, а позволил бы пользователю использовать свои навыки в программировании
при создании классов, задавая их содержимое специфическим образом в зависимости
от поставленной задачи для ее решения. Идея состоит в том, чтобы не сводить задачи к
определенному множеству, а предоставить пользователю средства для самостоятельной
разработки алгоритмов, позволяющих эти задачи решить, при этом, что это будут за
алгоритмы, пользователь выбирает в каждом случае сам, создавая их наилучшим для
решения тех или иных задач образом, какие бы эти задачи ни были.
Разрабатываемая система должна предоставить средства использования
подобных классов для их размещения в ГИС-формате хранения данных для
возможности отображения на картах ГИС, хранения и анализа с пространственной
точки зрения средствами ГИС, а также предполагается создание собственных средств
решения некоторых пространственных запросов. Разрабатываемая система должна
обеспечить поддержку хранения данных в объектной базе данных, а также
синхронизацию работы объектной базы с базой данных ГИС-формата, используемого в
ГИС.
Целью
создания
подобной
системы
является
уменьшение
количества
ограничений в отношении решения задач широкого круга в области географических
информационных систем.
Объектная база данных Db4objects
В объектно-ориентированном программировании объекты в программе
представляют объекты из реального мира. В современных объектно-ориентированных
языках используются методы: наследование, инкапсуляция, полиморфизм и типизация.
db4o (db4objects) — встраиваемая система управления базами данных для
объектов с открытым исходным кодом. Для некоммерческого использования db4o
доступна под лицензией GPL. Поскольку СУБД предназначена для хранения объектов,
её
полноценная
реализация
возможна
только
в
языках
программирования,
использующих технологию Reflection. Версия 5.2 поддерживает технологии Java, .NET
Framework и Mono.
db4o – база данных для объектов – хранит объекты в таком виде, в котором их
создает C# или Java программа. Иными словами, объекты продолжают существовать
5
после завершения программы. Нет необходимости создавать схему для базы данных,
чтобы привязать объекты к таблицам. Запросы к базе данных можно писать на языке
программирования, вместо того, чтобы использовать “чужой” язык запросов.
В некоторых случаях, для приложений db4o решает проблему хранения
данных.
Под
хранением
данных
обычно
подразумевают
распространенные
реляционные базы данных, MySQL или Oracle, или упрощенные SQL базы (lightweight
SQL databases, которые становятся все популярнее для встраивания их в свое
приложение). Объектно-реляционные базы данных также построены на реляционном
принципе. Реляционные базы данных используются повсюду в промышленности и
изучаются во всех университетах, что во многом обеспечивает их популярность.
Объектно-ориентированные приложения и реляционные базы данных –
принципиально различные пути представления данных. Сохранение состояния
отдельного объекта в реляционной базе может повлечь за собой разделение значений
его атрибутов по двум либо более реляционным таблицам. Приходится создавать
таблицу базы данных с колонками, соответствующими полям каждого класса, который
требуется сохранить (см. Рис. 1.6). Однако, даже в самой простой системе объекты
структурированы, они могут содержать ссылки на другие объекты, либо наборы
объектов. Объектно-ориентированная СУБД хранит уникальные идентификаторы
объектов (OID).
Рисунок 1.6 – Сравнение размещения объектов в реляционных таблицах (слева)
и так, как они есть – в объектной базе (справа)
Ключевыми преимуществами db4o являются быстрота работы, компактность,
отсутствие требований в администрировании, простота и возможность сохранять Java
или .NET объекты в исходном виде. Добавление одной библиотеки DLL в свой проект
позволяет получить доступ к db4o API для работы с базой. Главным является и то, что
объектные базы реализованы близко к программному языку – таким образом, меньше
6
строк кода нужно для использования полученных данных. Результатом является
увеличение продуктивности работы разработчика.
Объектно-реляционный
подход
во
многом
противоположен
объектно-
реляционному. Вместо того чтобы давать возможность устойчивого хранения данных
объектно-ориентированной системе, этот подход предполагает некоторые объектноориентированные возможности внутри базы данных.
Разработанный
программный
модуль
предполагает
использование
преимуществ объектной базы данных для хранения пространственных объектов,
используемых в ГИС, а также для составления запросов к ним и решения задач анализа.
[3]
Уточненная постановка задачи
Поставленная задача состояла в разработке части программного комплекса.
Программный комплекс в целом должен:
1.
работать со стандартным форматом представления данных в ГИС, а также
обеспечивать возможность хранения атрибутивной информации географических
объектов ГИС в объектной базе данных для того чтобы реализовывать преимущество
использования объектной базы в решении задач анализа
2.
предоставлять возможность решать некоторые задачи пространственного
анализа данных, представленных в ГИС-формате
3.
обеспечивать интеграцию созданных программных модулей с уже
существующей ГИС
Предполагается реализовать программный комплекс в виде подключаемого
дополнения к существующей ГИС, которая работает с распространенным ГИСформатом хранения данных. Комплекс позволит расширить возможности анализа
атрибутивных данных, существующие в используемой ГИС благодаря использованию
объектных баз данных, а также позволит использовать функционал ГИС для решения
некоторых пространственных задач анализа.
Разрабатываемая часть программного комплекса включит в себя разработку
нескольких программных модулей, а также обеспечение взаимодействия всех модулей
7
комплекса между собой и обеспечение программной интеграции разработанного
комплекса с существующей ГИС посредством создания плагина. В ходе работы решено
использовать в качестве подобной ГИС MapWindow (см. “1.4 ГИС MapWindow”) как
одну из лучших программных разработок с открытым исходным кодом,
поддерживающих распространенный ГИС-формат Shapefile (см. “1.2.2 Техническое
описание формата Shapefile ArcView GIS”).
Первый из разрабатываемых программных модулей обеспечит следующую
функциональность:
просмотр содержимого dll-библиотек CLR-типа (использование dll-
1)
библиотек обусловлено необходимостью их использования при работе с объектами в
объектной базе, которые представляют собой объекты классов, описанных в этих dll)
a) визуальное отображение всех пространств имен, классов, свойств и
методов классов, содержащихся в сборке
b) создание на основе выбранного из библиотеки класса слоя
географических объектов в ГИС-формате Shapefile. При этом в качестве
атрибутов объектов этого слоя будут поля, соответствующие свойствам
выбранного класса
просмотр карт Google в разрабатываемом приложении посредством
2)
интернет-подключения и использования картографического сервиса Google Maps,
a) интерактивное отображение карт Google
b) отображение файлов KML формата на картах Google
c) конвертирование файлов KML в файлы ГИС-формата Shapefile
3)
конвертирование любых Shapefile в объектно-ориентированные классы, а
также последующее размещение всех объектов слоя Shapefile в объектной базе данных
Db4objects.
Второй из разработанных программных модулей предоставит:
1)
отображение таблицы атрибутов объектов выбранного слоя в ГИС
2)
обеспечит связь с ГИС и данными в ГИС-формате, позволяет
редактировать эти данные
3)
обеспечит взаимную связь между визуальным выделением объектов на
карте и выделением строк в таблице
8
4)
для размещения объектов с карты в объектной базе данных будут
вызываться предоставленные интерфейсы по работе с объектной базой - при
добавлении новых объектов, изменении, либо удалении
5)
некоторые функции по работе с таблицей, в том числе составление
запросов выборки строк таблицы по задаваемому критерию.
Третий из разработанных модулей будет использовать данные, получаемые из
табличного редактора, и будет представлять собой средство пространственного
анализа. Разработанный модуль позволит:
1)
строить сети на основе линейных слоев, отображать таблицу с
характеристиками каждого объекта, вошедшего в сеть, а также позволит отобразить
построенную сеть визуально на карте
2)
построение зон охвата территории с помощью построения буферных зон
вокруг множества задаваемых объектов из разных слоев и анализ множества объектов,
попадающих в зону охвата. Множество объектов анализа задается множествами
объектов разных слоев. Анализировать можно будет либо по количественному
критерию, либо по качественному (на основе атрибутивного поля).
2.2 Описание функциональности системы
Созданный программный комплекс представляет собой плагин к известной
ГИС с открытым исходным кодом MapWindow (см. Рис. 2.1). Плагин предоставляет
следующие возможности:
1. Конвертирование объектно-ориентированных классов языка C# в слои ГИСформата Sahpefile – создание новых слоев динамических объектов на основе
классов из dll-сборок, содержащих описания этих классов.
2. Конвертирование слоев ГИС-формата Sahpefile в объектно-ориентированные
классы и сохранение созданных классов в dll-библиотеках.
3. Одновременное использование вместе с базой данных Shapefile объектной базы
данных Db4objects для хранения объектов слоев динамических объектов.
Синхронизация объектной базы данных с базой атрибутивных данных формата
Shapefile.
9
4. Создание новых объектов в слое динамических объектов, удаление или
изменение. При этом вызывается соответствующий интерфейс объектной базы
данных на добавление, удаление либо изменение.
5. Просмотр карт Google, управление и настройка их отображения, возможность
просмотра файлов ГИС-формата KML на отображаемых картах и
конвертирование из KML в Shapefile формат.
6. Удобный табличный редактор для просмотра атрибутивной информации ГИСформата Shapefile, который отображает таблицу атрибутов для всех объектов
выбранного слоя. Поддерживается взаимосвязь между выделением объектов на
карте и выделением соответствующих им строк в таблице. Также есть
возможность составления запросов на выборку объектов из таблицы, используя
значения полей таблицы.
7. Пространственный анализ на основе построения сетей связанных объектов на
основе слоя линейных объектов, отображение построенной сети на карте с
градиентной заливкой от начальных узлов сети до конечных узлов.
Пространственный анализ на основе построения буферных зон вокруг
множества объектов из разных слоев.
8. Составление запросов к объектной базе – обычных запросов на выборку либо
программируемых запросов (на основе языка программирования).
Рисунок 2.1 – Тулбар созданного плагина ExecutableObjects в ГИС
MapWindow. Состоит из кнопок (слева направо): Создание классов исполняемых
объектов, Создать слой исполняемых объектов или слой из KML, Добавить объект
10
заданной формы в слой, Добавить новый объект в слой, Опции отмены,
Редактирование слоя исполняемых объектов.
2.2.1 Приложение добавления слоев динамических объектов
Запуск программного модуля “Добавление новых исполняемых слоев и KMLслоев” происходит при нажатии соответствующей кнопки в тулбаре плагина. Окно
приложения состоит из риббон-панели кнопок, панели с деревом-списком содержания
открываемой сборки и панели для отображения классов и их содержимого (см. Рис.
2.2).
Рисунок 2.2 – Окно просмотра dll библиотек и отображение классов-шаблонов для
создания слоя в ГИС
Разрешается открывать сборки как dll, так и exe, они должны быть CLR-типа.
При открытии сборки ее содержимое отображается в tree-view, который имеет
трехуровневую систему – корень дерева-списка содержит название открытой сборки,
узлы следующего уровня содержат имена пространств имен в сборке, самый нижний
уровень содержит имена классов. Для выбранных в дереве классов, либо для
выбранного пространства имен можно отобразить диаграмму классов (кнопка
“Отобразить”). На панели диаграмм появятся блоки, соответствующие классам, их
можно сворачивать (при этом будет видно только имя класса), либо разворачивать
11
(будут отображаться конструкторы, свойства и методы). При отображении нескольких
связанных классов будут нарисованы межклассовые связи.
Можно настраивать отображение диаграммы (группа кнопок “Вид”). Можно
редактировать цвета диаграммы, группировку классов по количеству колонок, список
отображаемых характеристик классов (enumerators, interfaces, delegates), отображать по
инкапсуляции (public only, private, both) и др. Диаграмму можно экспортировать в
растровый формат.
Выбрав один из классов, можно создать на его основе слой Shapefile. Для
удобства формируется окно, содержащее классы в открытой сборке (см. Рис. 2.3)
Рисунок 2.3 – Окно с классами, в данном случае в сборке содержится только один класс
Менеджер создания нового слоя запускается сразу после того, как выбрано
действие создания нового слоя, описанное выше. Он позволяет внести последние
корректировки в создаваемый слой, просмотреть список атрибутов выбранного класса
(см. Рис. 2.4).
12
Рисунок 2.4
На вкладке “Google KML” располагается множество кнопок для отображения и
настройки отображения карт Google. Для того, чтобы открыть карту, нужно выбрать
”Меню > Домой”, при этом откроется форма с картой и будет отображена карта с URL
адреса (см. Рис. 2.5), определенного в качестве домашнего.
13
Рисунок 2.5 – Внизу отображаемой карты есть ползунок для регулирования уровня
зумма
Можно перетаскивать карту курсором, либо с помощью кнопок на главной
форме, менять тип отображаемой карты (с картинкой со спутника, без картинки но с
отображением дорог, совместно), менять зумм, в качестве настроек можно выбрать
интернет-узел, на котором размещена карта, прозрачность окна с картой (см. Рис. 2.6).
14
Рисунок 2.6
Открыть на карте файл KML, расположенный на любом сайте общего доступа,
можно выбрав ”Меню > Открыть KML”. Выбранный файл “наложится” на
отображаемую карту (см. Рис. 2.7).
Рисунок 2.7 – Пример открытого KML файла, содержащего полигоны
(закрашены темным) и отметки. Отметки могут содержать всплывающие подсказки при
нажатии на них, как на примере.
15
Открытый KML файл пользователь может загрузить к себе на компьютер и
открыть в разработанном приложении конвертер (кнопка “kml2shp”). Конвертер
создаст файлы Shapefile на основе файла KML.
2.2.2 Приложение редактирования слоев динамических объектов
Редактор
слоев
атрибутивной
информации
запускается
при
нажатии
соответствующей кнопки плагина, он предназначен для просмотра атрибутивной
информации слоев Shapefile, строки таблицы отображают объекты в слое, а столбцы –
их атрибуты (см. Рис. 2.8). Поле SHAPE_ID есть во всех таблицах, отражающих
Shapefile, так как оно служит для связи файлов метрики и атрибутики (см. “1.2.2
Техническое описание формата Shapefile ArcView GIS”). Если слой содержит
динамические объекты, в таблице должен быть столбец вида DB4O (<имя_класса>), где
имя_класса – это имя класса, который лег в основу данного слоя.
Рисунок 2.8 – Редактор таблиц атрибутивной информации
16
При выделении объектов на карте, соответствующие им строки в таблице тоже
выделятся и наоборот, при выделении строк таблицы изменяется выделение на экране
(см. Рис. 2.9).
Рисунок 2.9
В таблице можно оставить только выбранные строки, либо перейти к месту
выбранных объектов на карте. Поля таблицы можно удалять или добавлять, если слой
является динамическим, это никак не отразится на добавлении/удалении свойств
класса.
Есть функции выделить все строки, снять выделение, обратить выделение.
Можно выделять строки в результате простейшего запроса выборки (см. Рис. 2.10).
Окно составления запросов выборки содержит список полей-атрибутов в таблице, при
двойном щелчке по полю из списка оно добавится в запрос, а также можно добавлять
логические операции, операции сравнения. В запросе можно использовать числа,
строки (например, tenure_type = 'Freehold' AND tenure_area > 5000).
Также есть возможность поиска и замены (“Поле > Найти и заменить”) полей
таблицы. Из табличного редактора запускается окно запросов к объектой базе данных
(“Запросы > SODA запросы” и (“Запросы > Программируемые запросы”), а также
можно запустить окно пространственного анализа, которое будет рассмотрено далее.
17
Рисунок 2.10 – Составляется запрос выборки и выделяются строки, удовлетворяющие
запросу
2.2.3 Модуль пространственных запросов
Приложение пространственного анализа включает в себя две части: анализ
объектов, входящих в буферные зоны, а также построение сетей на основе линейных
слов (содержащих линии). В таблицу буферных зон можно заносить множества
объектов с разных слоев, причем каждая строка таблицы содержит имя слоя, из
которого были добавлены объекты, и список идентификаторов объектов через запятую.
Добавляются только те объекты, которые выделены в данный момент в табличном
редакторе (см. “2.2.2 Приложение редактирования слоев динамических объектов”).
Вторая таблица содержит аналогичные множества объектов, которые требуется
анализировать, для каждого множества выбирается поле анализа и тип анализа
(количество объектов, сумма значений поля, среднее значение по полю).
Третью
таблицу
можно
заполнить
когда
построена
сеть,
нажав
соответствующую кнопку. В этой таблице будут отображены объекты сети и
расстояния до каждого до исходного объекта (см. Рис. 2.11).
18
Рисунок 2.11 – Окно пространственного анализа. Слева сверху – таблица объектов,
вокруг которых нужно строить зону охвата. Слева внизу – таблица объектов для
анализа, если они попадают в эту зону.
Для построения сети, нужно открыть в табличном редакторе слой линейных
объектов, затем в окне анализа задать радиус толерантности для определения включать
объект в сеть или не включать если он ее непосредственно не пересекает (см. Рис. 2.11),
также можно задать идентификатор объекта, с которого начинать строить сеть (в
рассмотренном примере это значение “2442” – Рис. 2.11). Затем чтобы построить сеть
нужно нажать соответствующую кнопку. Когда сеть построится, высветится
сообщение, указывающее разщмер построенной сети. Теперь можно вывести
информацию об объектах, вошедших в сеть в таблицу, либо нажать кнопку
“Отобразить построенную сеть на карте”. После отображения сети на карте (см. Рис.
2.12 – 2.13), можно нажать ”Скрыть нарисованное на карте”. Аналогично можно
отображать множества объектов из двух других таблиц.
19
Рисунок 2.12 – Отображение построенной сети на карте (красным цветом ближе к
началу сети, синим – ближе к концам сети)
Рисунок 2.13 – Исходная карта до отображения сети
20
3.1 Общая структура программного комплекса
Разработанная часть программного комплекса состоит из трех проектов –
приложения просмотра сборок, плагина на основе интерфейса, который связывает весь
программный комплекс с ГИС, и табличный редактор для просмотра атрибутивной
информации и составления запросов (см. Рис. 3.1).
Возможности разработанной части программного комплекса включают, вопервых, просмотр создаваемых пользователем библиотек dll (в том числе построение
наглядных диаграмм классов из dll), выбор классов из них, и создание на их основе
слоев (shape-файлов) с соответствующими атрибутами – слоев динамических объектов.
С точки зрения слоя динамический объект отличается от обычного только наличием
специального атрибута - идентификатора для поиска в объектной базе. При
добавлении/обновлении динамических объектов, а также просмотре/редактировании
свойств пользовательского (нестандартного) типа, вызывается соответствующий
интерфейс редактирования объекта в объектной базе, а затем новые значения
записываются в атрибутивную таблицу шейпфайла. Таким образом, реально
динамические объекты хранятся в объектной базе данных, а shape-файлы ГИС хранят
только пространственную информацию и атрибутивные данные, которые служат для
наглядности.
Разработанный табличный редактор реализовывает считывание атрибутивных
таблиц dbf формата, используемых для хранения атрибутов в формате Shapefile, а
также обеспечивает их связь с объектной базой данных, если такая таблица содержит
динамические объекты. Для решения необходимой задачи моделирования вызывается
интерфейс, открывающий окно запросов к объектной базе, в котором пользователь
пишет соответствующий код запроса к объектной базе и запускает его на выполнение,
этот код использует динамические объекты из объектной базы. Для составления и
выполнения пространственных запросов разработан модуль, который позволяет
проводить анализ на основе буферизации зон вокруг объектов и построения сетей.
Среди дополнительных возможностей плагина – просмотр карт Google и отображение
на них KML-файлов на основе Google Maps API и экспорт KML в shape-файлы. Язык
написания программного комплекса – C#, среда разработки – Microsoft Visual Studio
2005.
Основной принцип, положенный в основу представленного решения –
универсальность, способность решать любые задачи, а также немаловажно то, что
21
предложенный механизм применим к существующей ГИС для добавления в нее
функциональности использования динамических объектов.
Рисунок
3.1
–
Схема
разработанного программного
комплекса.
MapWindow
обеспечивает работу с ГИС-форматом Shapefile. Пунктирными стрелками обозначены
взаимодействия. Редактор таблиц атрибутов работает с отображением карты в
MapWindow, он же через интерфейс MapWindow работает с данными в формате
Shapefile. Интерфейс MapWindow использует также приложение создания слоев из
классов, которое создает новый слой формата Shapefile. Табличный редактор
использует интерфейсы синхронизации данных Shapefile с объектной базой данных.
Также табличный редактор может конвертировать слои в классы, запустив приложение
создания классов и передав ему атрибуты слоя.
ЗАКЛЮЧЕНИЕ
В ходе работы была рассмотрена проблематика в сфере ГИС. Были изучены
виды информации, используемой ГИС, существующие форматы представления
геопространственных данных, способы хранения данных, используемые в ГИС, а также
были найдены достоинства и недостатки каждого формата и способа. Также были
рассмотрены типовые задачи пространственного анализа и анализа атрибутивной
22
информации, был проведен сравнительный анализ возможностей запросов в
реляционных базах данных и объектных базах данных.
Было решено использовать один из распространенных ГИС форматов в работе
и “привязать” к нему объектную базу данных, для того чтобы с помощью нее можно
было решать задачи анализа более эффективно. В качестве ГИС формата был выбран
Shapefile как один из самых распространенных форматов, который представляет собой
векторную нетопологическую модель представления пространственной информации.
Несмотря на то, что этот формат имеет ряд недостатков, таких как отсутствие
поддержки топологии, использование устаревшего стандарта базы данных – xBASE,
неоспоримыми
его
преимуществами
является
распространенность,
простота,
отсутствие требований в наличии внешней СУБД, наличие множества конвертеров в
другие форматы.
Формат Shapefile поддерживается множеством ГИС, в том числе и теми,
которые предоставляют программные интерфейсы для разработки подключаемых
дополнений. Из подобных систем была выбрана MapWindow, имеющая ярко
выраженную модульную
структуру, а реализованный программный комплекс
представлен в виде плагина к ГИС MapWindow. Таким образом, непосредственная
работа с данными формата Shapefile и визуализация этого формата в виде карт
обеспечивается выбранной ГИС, а разработанный программный комплекс дополняет ее
функциональность возможностью использования объектной базы данных для хранения
и обработки информации. Для этого атрибутивные данные объектов хранятся
одновременно в формате Shapefile и в объектной базе данных как экземпляры
объектно-ориентированных классов. Это достигается за счет возможности создавать
слои
формата
Shapefile
из
объектно-ориентированных
классов,
возможности
конвертировать слои формата Shapefile в классы и размещать объекты этих слоев в
объектной базе данных, а также за счет синхронизации изменений данных Shapefile с
данными в объектной базе для соответствующих объектов. Недостатком подобного
решения можно назвать дублирование данных, однако на сегодняшний день не
существует геопространственных форматов, поддерживающих хранение в объектных
базах данных. Написание собственного формата и поддерживающей его ГИС является
чрезвычайно сложной задачей, независимо от того, какую пространственную модель
использовать, векторную, либо топологическую.
Помимо использования нового способа хранения данных, разработанный
плагин имеет возможность решать некоторые типовые задачи пространственного
анализа, такие как задача построения сетей, а также задача построения буферных зон
23
вокруг объектов. Полученные в результате пространственного анализа объекты можно
отображать на карте ГИС MapWindow, посредством интерфейса связи с ГИС.
Описанные задачи пространственного анализа являются слишком сложными для
решения их “вручную”, поэтому их решение является незаменимой и важной задачей.
В программный комплекс был включен модуль, в котором можно писать запросы к
используемой объектной базе данных непосредственно на языке программирования,
что, безусловно, является преимуществом использования объектной базы данных для
хранения и анализа данных, так как предоставляет больше возможностей по сравнению
с использованием языка запросов, например, SQL.
Реализован удобный табличный редактор, отображающий посредством
использования интерфейса MapWindow атрибутивные таблицы атрибутов объектов
формата Shapefile, а также вызывающий необходимые интерфейсы синхронизации
атрибутивных данных с используемой объектной базой данных. Для работы с
множеством записей в таблице, предусмотрена возможность составления запросов на
выборку, использующих значения атрибутивных полей.
В ходе работы была изучена технология использования картографического
сервиса Google Maps в приложениях. В разработанный плагин добавлена возможность
просмотра непосредственно в приложении карт Google, настройка их отображения, а
также возможность отображения на картах Google файлов распространенного
геопространственного формата данных KML. Отображаемые данные формата KML
можно затем экспортировать в формат Shapefile. Использование Google карт в
конкретном приложении избавляет от необходимости установки специального ПО на
компьютер – Google Планета Земля, а также от использования браузера. Приложение
позволяет просматривать KML файлы непосредственно в ГИС, и затем конвертировать
их в формат, поддерживаемый ГИС.
Разработанный программный комплекс можно использовать как для решения
типовых задач пространственного анализа, так и для написания сложных запросов с
использованием языка программирования к используемой объектной базе данных.
ЛИТЕРАТУРА
1. Самардак А.С. Геоинформационные системы: Учебное пособие / Владивосток:
ТИДОТ ДВГУ, 2005. - 123 с.
24
2. Введение в геоинформатику горного производства: учеб. пособие / Под ред. В. С.
Хохрякова. - Екатеринбург: УГГГА, 1999. - 238 с.
3. S. Edlich, H. Horning The Definitive Guide to db4o / Apress, 2006. - 512 с.
4. ESRI Shapefile: A Technical Description / Environmental System Research Institute Inc.,
USA, 1997. – 23 p
5. Борисов А. Основные черты современной настольной ГИС // Геоинформатика в
нефтегазовой отрасли. - М.: ГИС-Ассоциация, 1998. - С. 9-14.
6. David M. Theobald. Understanding Topology and Shapefiles // ArcUser. - April-June 2001 P. 24-26.
7. Осокин C.А. Картография и Инфраструктура пространственных данных // ArcReview
№ 1 (48) 2009 – C. 5-6
8. Ames, Daniel P. Getting Started With the MapWinGis ActiveX Control. 2006,
http://www.mapwindow.org/doc/UsingMapWinGIS.pdf
9. Основные принципы API Карт Google,
http://code.google.com/intl/ru/apis/maps/documentation/index.html
10. KML Tutorial, http://code.google.com/intl/ru/apis/kml/documentation/kml_tut.html
Download