Локальная навигация. Зачем она нужна?

Создать новую статью

12.10.2009 13:00


Вместо предисловия

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

Я участвовал в летней школе проходившей в Нижнем Новгороде и работал в команде проекта по созданию системы локального информирования и позиционирования на территории ННГУ.

Что я хотел рассказать и о чем порассуждать?

В начале повествования стоит отметить, что в самом начале работ команда разработчиков плохо себе представляла зачем же все-таки нужна система локальной навигации и позиционирования. Да и без дополнительных разъяснений понять правда трудно, ведь есть же GPS навигаторы, с огромной базой карт, которые регулярно обновляются и имеют кучу достоинств, зачем снова изобретать велосипед?

Существующие навигационные системы стараются объять необъятное: весь земной шар, целую страну или город. Предлагаемая система призвана подробно описать лишь университетский кампус, но максимально подробно. От расположения корпусов, архитектуры этажей зданий, расположения аудиторий в них и вплоть до надписей на стенах университетских корпусов и где какая пара идет в данные момент. Естесственно что системы созданной именно для университета еще не было.

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

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

Основной идеей навигационной системы была массовость и доступность, и уже хотя бы поэтому использование GPS навигации было практически невозможно. Несмотря на расширяющуюся линейку устройств, поддерживающих GPS навигацию, лишь у небольшой части потенциальной аудитории имеются эти устройства. И кроме того сигнал со спутника недоступен внутри зданий, что стало технической причиной отказа от GPS. Нужно было использовать распространенные средства связи, и конечно ими стали обыкновенные мобильные телефоны. В качестве кандидатов на замену спутника нашлись Wifi и GSM навигация, первая в силу отсутствия развитой инфраструктуры беспроводных сетей была бессмысленна в реализации, а вторая имеет неприемлемо малую точность. Рассуждение о средствах навигации свелось к нахождению устойчивых к повреждениям и прочим невзгодам QR-кодов, и их расположению на территории университета в неких, заранее выбранных, "ключевых" местах карты. Кто то скажет, что способ крайне несовременный и неудобный, но территория университета не настолько огромна, чтобы действительно на ней заблудиться, и тогда смысл меток становится более ясен, они скорее информационные чем навигационные. И конечно средства распознавания таких меток есть практически у каждого - мобильный телефон с фотокамерой.

Функционал и примерные навигационные средства обговорили, но как же архитектура? Количество информации уже накапливается достаточно большое, данные содержащиеся в метках, идентификаторы и расположение меток, карты объектов также объемны и не подлежат хранению на клиентском устройстве. Отсюда вытекает клиент-серверная архитектура системы, где клиент только получает необходимую информацию с сервера по запросу. Сразу проявилась проблема занесения информации в систему, что неудобно и лишне проводить на мобильном устройстве. Таким образом сформировалось первое видиние системы: клиент(мобильный), клиент (редактор) и сервер. Мобильный клиент также разделился на две платформы J2ME и MS.Net . Я принимал участие в создании J2ME клиента.

На сервер были возложены обязанности хранения карт, меток, всей соответствующей им информации. Для удобства реализации карту решили хранить на сервере в виде объектов, преобразуемых по запросу к карте необходимого формата. Для большего удобства использования и объединения с различными клиентами сервер создавался как web-сервис, с соответствующим общим интерфейсом для всех типов клиентов. Основой сервер является web фреймворк Ruby on Rails и плагины Rails Geo к нему. Подробнее рассказать не могу, этой задачей занимался не я.

Другой очень сложной и интересной частью системы стал web-клиент, в функции которого входят главным образом создание контента для системы: рисование карт, добавление информации для объектов, добавление новых меток на карту и т.д. Клиент создавался как браузерное приложение на основе библиотеки OpenLayers, давшей базовую функциональность, и позволившей достаточно быстро начать работу.

Мобильные клиенты реализовывали функциональность направленную на конечного пользователя системы: отображение карт, удобная навигация по картам, поиск объектов и распознавание меток. Подробнее о функциональности мобильных клиентов можно почитать в уже опубликованной статье о Java2ME клиенте.

К окончанию стажировки были представлены все части системы, и на итоговой презентации продемонстрирована работа системы в целом.

А теперь попробуем посмотреть на нашу навигационную систему в другой точки зрения, на что потенциально она способна.

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

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

Но это в будущем.

Заключение

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

Об авторе

Заикин Сергей является студентом Волгоградского Государственного Технического Университета, в городе Волгограде. Участвовал в Летней школе компании Intel в городе Нижний Новгород.

Летняя школа позволила понять свой потенциал, узнать много из того о чем раньше не думал, и просто она мне понравилась.