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

Неформальная постановка задачи

Требования к приложению:

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

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

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

  • Приложение должно функционировать при отсутствии интернет соединения.

Обзор существующих методов решения

Рассмотрим существующие сервисы:

  • sailstech.com - Распространяется: бесплатно (Если планы зданий будут выложены в общий доступ), платно - $29 в месяц. Движок использует не только WiFi сигнала точки доступа, но и инерционные датчики, такие как акселерометр, компас, и гироскоп. Это помогает обеспечить плавное и наиболее точное позиционирование крытой местности с 10 метров до 2 метров. На вход принимает данные, сгенерированные программой JOSM(Возможен импорт из PDF [1]), в понятном, простом формате. Данные 2 видов: карта этажа, проходимый путь. Таким образом, приложение будет иметь список зданий и этажей в них. Имеет настройки визуального отображения объектов на карте. Имеется гайд по созданию простого приложения[2], документация, SDK под Android.

  • Indoor Google Maps [3] – Распространяется: бесплатно. Изображение загружается поверх карты Google.Maps. Есть навигация по этажам, нету маршрутизации. Не подходит по функционалу.

  • indoo.rs - Распространяется: бесплатно, платно.

Видно, что нужный нам вариант стоит $500.

Имеет SDK под android, IOS. Имеет редактор и загрузчик планов этажей, проходимых маршрутов. Доступны функции позиционирования, нахождения кротчайшего пути по проходимому маршруту (сквозь этажи в том числе, для Lite версии).

  • micello.com - Распространяется: бесплатно (Если планы зданий будут выложены в общий доступ), платно - $49 в месяц.

Есть SDK под android, есть фреймверк для JS. Карту можно импортировать практически из любого формата . Доступны функции позиционирования, нахождения кротчайшего пути по проходимому маршруту сквозь этажи в том числе. [4]

.

Чтобы загрузить свою карту в систему, достаточно отправить заявку[5], приложив файлы со схемами зданий. Т.е. проблема генерации маршрутов и понятного формата карт для SDK перекладывается на плечи поддержки micello.

  • OSMDroid [6] - Распространяется: бесплатно. MapView компонент для платформы Android, позволяет отрисовывать тайлы(в режиме offline), сгенерированные программой Mobile Atlas Creator на основе Open Street Maps [7], позволяет двигать, зумить крату. Есть возможность добавления меток, полигонов. Можно загружать карту в устройство и не использовать подключение интернет для работы приложения.

Минус – ошибки в отображении путей, нанесенных на карту при большом масштабировании. В 2011 году был открыт вопрос к разработчикам по этому поводу, по сей день ошибка так и не была исправлена[8]. Поддерживаются карты только в растровом формате, в виде набора тайлов.

  • Mapsforge [9] - Аналог osmdroid, карта подгружается в векторном формате, отсутствуют визуальные ошибки при накладывании путей на карту. Существует сервис, поддерживающий в актуальном состоянии подробные OpenStreetMap карты приморского края. [10] Преобразовать данные карты в формат, понятный mapsforge можно при помощи программы osmosis. [11].

Вывод:

Беря во внимание существующие решения, предполагается два плана разработки приложения:

  1. Создать вручную, с помощью редактора карт JOSM, схемы всех этажей и зданий, а также проходимый пусть, либо сгенерировать, используя готовые схемы в формате dwg. Написать парсер *.osm формата. Запрограммировать алгоритм поиска кротчайших путей. На основе компонента MapView mapforg’a отображать созданные схемы этажей и кротчайшие пути на них.

  2. Отправить dwg схемы помещений в тех. поддержку micello. Уже почти полностью готовое решение, которое предоставляет их SDK, усовершенствовать так, чтобы оно отвечало всем заявленным требованиям. Возможно, появятся «подводные камни».

В связи с политикой о нераспространении схем корпусов ДВФУ было принято решение разрабатывать приложение, придерживаясь первого плана.

Требования к аппаратному обеспечению

Смартфон, планшет, либо другое устройство, работающее на android v7 и выше, имеющее акселерометр и измеритель магнитного поля земли. Рекомендуется процессор с тактовой частотой не ниже 500 МГц, не менее 128 МБ оперативной памяти. Разрешение экрана не менее 320 x 480.

Требования к программному обеспечению

OS Android v7 и выше.

Требования к пользователям

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

2Спецификация данных

Описание формата

Гис формат *.osm, созданный разработчиками OpenStreetMap. Представляет из себя xml файл с данными. Используется приложением для описания схем этажей, объектов, находящихся на этажах, а также проходимых путей.

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

Например. Файл assets/D/3.xml – обозначат схему 3го этажа корпуса D. Другой пример. assets/D/route/3.xml – обозначает проходимый путь на схеме из предыдущего примера.

Так внутри файла описывается 314 аудитория:

<node id='-1021' lat='43.02571706980208' lon='131.8906029433263'>

<tag k='aud' v='314' />

</node>

Так описывается одна из стенок:

<way id='-872' >

<nd ref='-869' />

<nd ref='-871' />

</way>

В качестве визуального редактора используется ПО под названием JOSM. Так же, курсовая работа Кольцова Филиппа реализует возможность генерации схем и проходимых путей корпусов ДВФУ, опираясь на существующие CAD описания схем.

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