Сервис локального информирования и позиционирования

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

01.10.2009 13:00


Аннотация

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

Введение

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

Но, несмотря на улучшившуюся ситуацию с позиционированием человека на местности, проблем, недоработок и просто белых пятен на карте все еще много.

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

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

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

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

Начало работы

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

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

Таким образом, для системы была выбрана клиент-серверная архитектура с централизованным хранением карт кампуса, карт зданий и информации о метках, расположенных на территории университета.

Как и любой клиент-серверной системе, нашей нужен был клиент, который бы работал именно на мобильных телефонах.

Главное меню

Рисунок 1. Главное меню.

Разработка клиента

1. Средства позиционирования

При работе над J2ME клиентом было уделено много внимания исследованию имеющихся разработок в области навигации при помощи мобильных телефонов. В арсенале телефонов нет общепринятых навигационных средств, и, как уже было сказано выше, для навигации используются географические метки. Метки располагаются по территории университета и реализованы в качестве QR-кодов. Их распознавание возложено на телефон. Условием распознавание таких меток является наличие у телефона фотокамеры.

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

QR-код

Рисунок 2. QR-код.

2. Отображение карт

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

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

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

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

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

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

Исходные коды той части cGML, которая отвечала за отображения карт, были внедрены в клиентское приложение и обеспечили отображение карты кампуса и зданий.

Рисунок 3. Позиционирование на карте.

3. Взаимодействие с информационным сервисом.

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

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

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

Рисунок 4. Нахождение объекта на карте.

4. Найти себя на карте

Какая навигационная система обходится без позиционирования собственно самого пользователя?

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

Положение пользователя на карте

Рисунок 5. Положение пользователя на карте.

Как все это работает

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

Для клиентского приложения очень важен приятный и удобный пользовательский интерфейс. Стандартный пользовательский интерфейс, который обеспечивает платформа J2ME, не пригоден для реализации полноценного приложения, так как внешний вид стандартных элементов управления оставляет желать лучшего. Компания Sun, производитель платформы J2ME, совсем недавно поняла свою недоработку и выпустила в свет библиотеку для создания красивого и удобного интерфейса. Библиотека называется LWUIT. Она обеспечивает возможность без дополнительных усилий создать достаточно симпатичный (на скриншотах) интерфейс и построить на его основе программу.

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

С сервером, реализованным как веб-сервис, клиент связывается по протоколу SOAP, передавая информацию в виде объектов. Протокол SOAP реализуется с помощью сторонней библиотеки KSOAP.

Трудности с которыми я столкнулась

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

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

Заключение

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

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

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

Об авторе

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

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

Ссылки