Дипломная работа: Разработка геоинформационной системы
Разрабатываемый программный модуль должен функционировать в среде операционной системы MicrosoftWindows 2000/XP, желательно также предусмотреть при разработке интерфейса возможность функционирования программы в операционной системе RedHatLinux 7.3/8. Поэтому предлагается интерфейс приложения разрабатывать с использованием библиотеки QT (версии 3.1.2/3.3.3).
2. Системное проектирование
2.1 Разработка структуры программного модуля
Исходя из требований постановки задачи, разрабатываемый программный модуль обработки и отображения картографической информации можно структурно разбить на несколько блоков:
- блок, реализующий функции загрузки и отображения цифровой карты местности с использованием библиотеки картографии, разработанной специалистами УП НИИСА. Входными данными используемых функций библиотеки картографии являются:
· один или несколько файлов цифровой карты местности с расширением UTP;
· файл – классификатор условных знаков объектов местности с расширением KLS;
· файл матрицы высот с расширением BMH.
- блок, отвечающий за создание, редактирование и сохранение списка стандартных высот для объектов цифровой карты местности. Внутри блока реализуются также визуальные средства (окно) для редактирования списка высот. Результатом работы данного блока является текстовый файл с расширением ТХТ.
- блок, необходимый для расчета и сохранения матрицы превышений на фоне цифровой карты местности. Сохранение результатов расчета происходит в двоичный файл с расширением BMH2.
- блок для создания и редактирования матрицы корректировки. Результатом работы данного блока является файл с расширением BMH3.
Обобщенная структурная схема программного модуля представлена на черт. РТДП 5.000.002.
Разработка пользовательского интерфейса программы будет осуществляться с помощью средств библиотеки Qt.
GUI инструментарий, именуемый Qt, предоставляет норвежская компания TrollTech. GUI означает «Графический Пользовательский Интерфейс» («Graphical User Interface»), поэтому базирующиеся на Qt приложения представляются кнопками, окнами и т.п. Такие приложения осуществляют взаимодействие с пользователем, представляя в визуальной форме выполняемые функции. Этот инструментарий необходим для разработки графических приложений, которые используют X-Window интерфейс в Unix системах, потому что X не содержит предопределенного пользовательского интерфейса. И хотя другие наборы инструментов также позволяют создавать пользовательский интерфейс, Qt предоставляет некоторые технические возможности, которые делают разработку приложений очень простой. Кроме того, Qt инструментарий также доступен для Microsoft Windows систем, что позволяет разработчикам выпускать приложения для обеих платформ.
В настоящее время Qt – это библиотека классов C++ и набор инструментального программного обеспечения, предназначенных для построения многоплатформенных приложений с графическим интерфейсом и исповедующих принцип «написав однажды – компилируй в любом месте». Qt представляет собой единую платформу для приложений, которые могут работать под управлением Windows 95/98/Me/2000/XP, Mac OS X, Linux, Solaris, HP-UX и других версий Unix.
Qt предоставляет:
- широкий набор классов и методов, пригодных для использования даже для программ без графического интерфейса;
- хорошее решение для реализации взаимодействия с пользователем посредством виртуальных методов и механизма сигнал / слот;
- набор предопределенных GUI-элементов, называемых «widgets», которые могут быть легко использованы для создания видимых элементов;
- дополнительные полностью предопределенные диалоговые окна, которые часто используются в приложениях, такие как окно прогресса или окно выбора файлов.
В качестве языка программирования выбран C++ как язык, наилучшим образом сочетающий в себе поддержку объектно-ориентированной технологии программирования и возможности написания кода на достаточно низком уровне, что позволяет достичь оптимального быстродействия разрабатываемого программного обеспечения. Одним из современных инструментальных средств для разработки Windows-приложений является пакет MicrosoftVisualC++ 6.0. VisualC++ предоставляет удобную среду визуального объектно-ориентированного программирования, что и обусловило выбор именно этого пакета в качестве среды разработки.
2.2 Логическая структура библиотеки картографии
Библиотека картографии предназначена для работы с цифровой картой местности (ЦКМ) и представляет собой набор классов и функций, обеспечивающих визуализацию и работу с картой, а также обеспечение решения расчетных задач на фоне карты.
Программное обеспечение состоит из следующих элементов:
- набор классов и функций, составляющих ядро библиотеки;
- класс MKartaInterface, предоставляющий функции управления картой.
Для хранения карты на диске используются файлы в формате UTP. Формат UTP предполагает наличие utp-файла, а также kls-файл, содержащий классификатор. Также возможно использование bmh-файла с матрицей высот.
Логически карта состоит из паспорта, ссылки на классификатор (в виде термина) и одного или нескольких слоёв, каждый из которых, в свою очередь, состоит из объектов.
Термин классификатора указывает классификатор, который содержит знаковую систему, необходимую для формирования корректного изображения карты. Карты не являются самостоятельными, независимыми от классификаторов единицами. Карта может быть загружена даже в случае отсутствия файла классификатора, но при этом вид карты на экране будет схематичным.
Слой – самая крупная структурная единица в структуре карты, представляющая собой хранилище объектов. Структурно состоит из паспорта слоя и списка объектов.
В картографии понятие «объект» обозначает наиболее элементарную часть в структуре карты, соответствующую единичному географическому явлению на местности.
Как информационная структура, объект представляет собой хранилище сведений об изображаемом явлении, включающее: