
- •Содержание
- •Введение
- •1 Анализ предметной области
- •2 Определение способа реализации
- •2.1 Выбор аппаратной платформы
- •2.2 Выбор операционной системы
- •2.2.1 Особенности архитектуры ос Android
- •2.3 Выбор средств разработки и тестирования
- •2.3.1 Язык Java
- •2.3.3 Интегрированная среда разработки Eclipse
- •3 Функциональные требования к системе
- •4 Разработка проекта
- •4.1 Обзор и решение ключевых задач
- •4.1.1 Определения текущего местоположения
- •4.1.2 Прокладка оптимального маршрута
- •4.1.3 Особенности построения графа дорог в OpenStreetMap
- •4.1.4 Поиск оптимального маршрута
- •4.1.5 Прогнозирование времени прохождения маршрута
- •4.1.6 Диспетчеризация
- •4.2 Графический интерфейс системы
- •4.2.1 Интерфейс арм Курьера
- •4.2.2 Интерфейс арм Диспетчера
- •4.3 Развертывание системы
- •5 Технико-экономическое обоснование дипломного проекта
- •5.1 Swot-анализ
- •5.2 Pest-анализ
- •5.3 Расчет экономических показателей
- •5.4 Расчет затрат на разработку программы
- •5.5 Расчет цены разработанной программы
- •5.6 Расчет капитальных вложений
- •5.7 Расчет эксплуатационных расходов
- •5.8 Расчет денежного годового экономического эффекта
- •6 Безопасность и экологичность дипломного проекта
- •6.1 Электробезопасность
- •6.2 Электромагнитные излучения
- •6.3 Требования к эргономике, освещенности, уровню шума и
- •6.4 Пожарная безопасность
- •Заключение
- •Список использованных источников
- •Приложение а
- •Исходний код программы. Курьерская часть
- •Приложение б
- •Исходний код программы. Диспетчерская часть
- •Приложение в
- •Графический материал
4 Разработка проекта
4.1 Обзор и решение ключевых задач
4.1.1 Определения текущего местоположения
Задача получения приложением данных о текущем местоположении пользователя является отправной точкой в вопросе построения оптимального маршрута. Видится два решения этого вопроса: использование спутниковой системы навигации GPS и сетевого провайдера местоположения Android (ANLP – Android's Network Location Provider).
Несмотря на то, GPS является более точным, он работает только на улице, быстро расходуется заряд батареи, и не возвращает местоположение так же быстро, как хотят пользователи. ANLP определяет местоположение пользователя с помощью мобильных вышек и Wi-Fi сигналов. Этот способ вполне работоспособен как на открытом воздухе, так и в помещении, реагирует быстрее использует меньше энергии аккумулятора, но дает меньшую точность позиционирования. По этим причинам целесообразно использовать эти два метода в совокупности [7].
Получение данных местоположения пользователя с мобильного устройства является непростой задачей, как может показаться на первый взгляд. Есть несколько причин, почему чтение местоположения (вне зависимости от источника), может быть ошибочным или неточным.
Вот несколько источников ошибок:
1 множественность источников определения местоположения – GPS, Cell-ID и Wi-Fi. И каждый дает свой ключ к определению местоположения пользователя. Определение того, какие данные использовать и каким доверять – это дело компромиссов в точности, скорости и экономии заряда батареи;
2 пользователь постоянно находится в движении – из-за постоянного изменения местоположения необходимо очень часто получать новые данные о текущих координатах;
3 изменение точности – необходимо постоянно производить оценку погрешности определения нового местоположения.
Кроме этого, процесс получения координат должен быть абсолютно прозрачен для пользователя приложения, иными словами он должен протекать в фоновом режиме и приводите к снижению скорости работы коммуникатора.
Если не найти решения проблем, обозначенных выше, возможно затруднение получения надежных данных о местоположении пользователя, что при функционировании приложения связанного с навигацией крайне недопустимо.
Алгоритм выбора провайдера местоположения представлен на рисунке 6.
Рисунок 6 – Выбор провайдера местоположения
4.1.2 Прокладка оптимального маршрута
Задача отыскания оптимального маршрута является центральной в проекте. Входными данными для нее являются координаты текущего местоположения пользователя и объектов, которые необходимо посетить. На выходе необходимо получить траекторию пути, маршрут движения вдоль которой будет оптимальным.
Естественно, для решения этой задачи необходимы данные о структуре путей, по которым возможно движение, и которые связывают объекты. Такие данные удобно представлять в виде графа дорог.
Граф дорог – это цифровая векторная карта, состоящая из топологически связанных дуг и узлов, местоположение и свойства которых с заданной точностью и полнотой передают маршруты и организацию движения наземного транспорта.
Элементы графа дорог предназначены для использования в задачах по автоматизированной прокладке маршрутов между любыми заданными точками на графе.
Поиск минимального пути между точками (населенными пунктами) осуществляется с учетом любых характеристик записанных в дуги сети (тип дорог, скорость движения, количество проезжих частей). Кратчайший маршрут можно найти либо по минимальной длине пути либо по минимальному времени прохождения маршрута. При нахождении минимального пути имеется возможность исключения некоторых дуг, например аварийных участков, из поиска. Результаты поиска отображаются на карте в виде объекта – маршрута.
Узлы могут последовательно соединять две дуги, имеющие разные характеристики, или соединять несколько дуг в местах перекрестков, развилок и т.п. Если дороги физически проходят над одним участком местности на разных уровнях (тоннель, эстакада и т.п.), то в точке пересечения дорог на карте графа узел должен отсутствовать. С помощью набора односторонних и двусторонних дуг и узлов можно однозначно описать различные виды перекрестков, одноуровневых и многоуровневых развязок. Если на перекрестке дорог необходимо показать запрет поворота, то в этом месте дороги могут быть показаны параллельными односторонними дугами, которые имеют узлы только с теми пересекающими их дугами, на которые разрешено перестроение транспорта.
Необходимо ответственно подойти к выбору картографической основы, описывающей узлы и дуги графа дорог. Она должна в полной мере характеризовать актуальное состояние транспортных путей. Стоит поставить очень важное требование: граф дорог должен легко редактироваться, так как состояние дорог не является постоянным.
Операционная система Android разработана компанией Google. Поэтому логично выделить первого кандидата – картографический сервис Google Maps. Действительно, в настоящее время он очень бурно развивается. Кроме того, существуют готовые и очень удобные инструменты для создания приложений под Android с использованием Google Maps. Однако детальное изучение системы показало, что подробно сеть дорог проложена только в пределах США и стран Евросоюза. В России же в векторном формате представлены карты лишь наиболее крупных городов. Свободное редактирование так же не представляется возможным.
Российский картографический сервис Yandex Maps, напротив, характеризуется развитой векторной картой крупных и средних городов России. Существует так же Народная Карта, которую можно свободно редактировать. Но вот при построении маршрута очень часто не учитываются второстепенные дороги и в целом дорожный граф построен очень некачественно.
После выделения недостатков двух представленных выше картографических сервисов, выбор пал в сторону использования OpenStreetMap (дословно «открытая карта улиц»), сокращённо OSM – некоммерческий веб-картографический проект по созданию силами сообщества участников-пользователей Интернета подробной свободной и бесплатной географической карты мира.
В настоящее время проект динамично развивается и охватывает все крупные населенные пункты. Существуют удобные инструменты для добавления и редактирования картографических данных. Среди редакторов стоит в первую очередь выделить Potlatch 2, доступ к которому свободно открыт с сайта OpenStreetMap.