Система должна:
· Позволять пользователю просматривать карту территории ДВФУ
· Позволять пользователю выбирать корпус и этаж для отображения его на карте в том месте, где расположен данный корпус.
· Отображать в виде текстовой строки текущий корпус и этаж.
· Отображать компас.
· Позволять вводить номера аудиторий, и строить кротчайший путь между ними.
· Позволять строить кротчайший путь от аудитории до ближайшей уборной или столовой.
· Позволять строить кротчайший путь от входа в корпус до аудитории, ближайшей уборной или столовой.
· Выводить кротчайший путь отрезками на каждом из этажей, по которым проходит этот путь.
· Предоставлять навигацию по отрезкам текущего кротчайшего пути, путем клика на маркеры, расположенные на его концах.
· Уведомлять пользователя текстовым сообщением, производящего переход от одного отрезка путик другому, о действии, которое он должен произвести, чтобы переместиться на в то место, где проходит следующий отрезок. Например: «Пройдите по переходу», «Поднимитесь на 2 этажа вверх»
· Определять ориентацию пользователя на карте при помощи стрелочки.
Требование к интерфейсу
Система должна быть реализована в виде приложения под андройд. Должна включать в себя следующие страницы:
· Карта территории ДВФУ, включающая инструменты для масштабирования, прокрутки, переключения этажей и корпусов.
· Меню для выбора форм построения кротчайших путей.
· Форма для ввода данных для построения кротчайших путей, с оптимизированной для этого клавиатурой.
Проект
Средства реализации
В качестве инструмента для разработки был выбран Android SDK, содержащий в комплекте среду eclipse с предустановленным плагином ADT bundle. Язык программирования - Java.
Для отображения карты в офф-лайн режиме, в svg формате был использован компонент с открытым исходным кодом mapsforge. Из существующих решений для моей курсовой работы подошел больше остальных.
Модули и алгоритмы
Классы
MainActivity
Является точкой входа в программу. В данном классе настраивается расположение элементов интерфейса в главном окне, а также обрабатываться связанные с ними события. Считываются данные о схемах корпусов и создаются другие классы.
AuditoriesSelectActivity
В данном классе настраивается расположение элементов интерфейса в окне выбора аудиторий для построения кратчайшего пути.
Graph
Экземпляр данного класса представляет собой интерпретацию одного файла в формате описанном в разделе 2.1. Содержит метод dijkstra реализующий одноименный алгоритм, позволяет найти кротчайший путь между вершинами для графа проходимости на схеме этажа, а также кеширует его. Если экземпляр является схемой, то он содержит ссылку patency на другой экземпляр, обозначающий проходимый путь.