Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
246_Lakhtyuk_course_work.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
872.96 Кб
Скачать

3Функциональные требования

Система должна:

  • Позволять пользователю просматривать карту территории ДВФУ

  • Позволять пользователю выбирать корпус и этаж для отображения его на карте в том месте, где расположен данный корпус.

  • Отображать в виде текстовой строки текущий корпус и этаж.

  • Отображать компас.

  • Позволять вводить номера аудиторий, и строить кротчайший путь между ними.

  • Позволять строить кротчайший путь от аудитории до ближайшей уборной или столовой.

  • Позволять строить кротчайший путь от входа в корпус до аудитории, ближайшей уборной или столовой.

  • Выводить кротчайший путь отрезками на каждом из этажей, по которым проходит этот путь.

  • Предоставлять навигацию по отрезкам текущего кротчайшего пути, путем клика на маркеры, расположенные на его концах.

  • Уведомлять пользователя текстовым сообщением, производящего переход от одного отрезка путик другому, о действии, которое он должен произвести, чтобы переместиться на в то место, где проходит следующий отрезок. Например: «Пройдите по переходу», «Поднимитесь на 2 этажа вверх»

  • Определять ориентацию пользователя на карте при помощи стрелочки.

4Требование к интерфейсу

Система должна быть реализована в виде приложения под андройд. Должна включать в себя следующие страницы:

  • Карта территории ДВФУ, включающая инструменты для масштабирования, прокрутки, переключения этажей и корпусов.

  • Меню для выбора форм построения кротчайших путей.

  • Форма для ввода данных для построения кротчайших путей, с оптимизированной для этого клавиатурой.

5Проект

Средства реализации

В качестве инструмента для разработки был выбран Android SDK, содержащий в комплекте среду eclipse с предустановленным плагином ADT bundle. Язык программирования - Java.

Для отображения карты в офф-лайн режиме, в svg формате был использован компонент с открытым исходным кодом mapsforge. Из существующих решений для моей курсовой работы подошел больше остальных.

Модули и алгоритмы

Классы

5.1MainActivity

Является точкой входа в программу. В данном классе настраивается расположение элементов интерфейса в главном окне, а также обрабатываться связанные с ними события. Считываются данные о схемах корпусов и создаются другие классы.

5.2AuditoriesSelectActivity

В данном классе настраивается расположение элементов интерфейса в окне выбора аудиторий для построения кратчайшего пути.

5.3Graph

Экземпляр данного класса представляет собой интерпретацию одного файла в формате описанном в разделе 2.1. Содержит метод dijkstra реализующий одноименный алгоритм, позволяет найти кротчайший путь между вершинами для графа проходимости на схеме этажа, а также кеширует его. Если экземпляр является схемой, то он содержит ссылку patency на другой экземпляр, обозначающий проходимый путь.

5.4GraphNode

Вершина для Graph

5.5GraphParser

Класс, разбирающий файлы описанные в разделе 2.1 и создают на их основе экземпляры класса Graph.

5.6FloorsGraph

Граф вершины которого, это экземпляры класса Graph. Объединяет схемы корпусов в структуру, необходимую для поиска кротчайшего пути между вершинами, находящимися в разных корпусах и\или этажах. Имеет свою реализацию dijkstra, веса у ребер в ней уже не могут быть географическими координатами, они вычисляются из результатов запуска алгоритма Дейкстры внутри экземпляров Graph.

5.7TextOverlay

Наследник класса ArrayWayOverlay идущего в комплекте с библиотекой mapforge. Используется для отображения на карте текстом номера аудитории. Перегружен метод рисовки на холсте.

5.8ArrayItemizedSelectableOverlay

Наследник класса ArrayItemizedOverlay идущего в комплекте с библиотекой mapforge. Используется для отображения маркеров на карте. Реализована возможность обрабатывать клик по маркеру.

5.9Helpers

Статический класс. Содержит методы для валидации вводимых пользователем данных. Метод копирования файла. И другие технические методы «помошники».

5.10Pair

Структура данных пара.

5.11CustomKeyboard

Класс необходимый для отображения оптимизированной для ввода номеров аудиторий клавиатуры. Автор класса: Maarten Pennings

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]