Статья опубликована в рамках: XLII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 31 мая 2016 г.)
Наука: Технические науки
Секция: Технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
Разработка GPS-навигатора для смартфона
Когда-то люди ориентировались по звездам. Сейчас все гораздо проще — достаточно достать из кармана телефон, вбить в «Яндекс.Карты» нужный адрес и они проложат маршрут.
Еще в самом начале появления и распространения Интернета огромной популярностью пользовались картографические сервисы. С течением времени технологии развивались, отображение и функционал карт менялись. Появилось множество приложений для удобной навигации.
Все это стало возможным благодаря использованию, изначально военной, технологии GPS в навигаторах, а в дальнейшем, и в смартфонах. Данная технология позволяет в любом месте Земли (исключая приполярные области), почти при любой погоде, а также в околоземном космическом пространстве определять местоположение и скорость объектов. Основной принцип использования системы — определение местоположения путём измерения моментов времени приёма синхронизированного сигнала от навигационных спутников антенной потребителя.
На данный момент GPS – навигаторы для смартфона являются наиболее популярным продуктом. Существует множество приложений «на любой вкус и цвет».
Принцип работы GPS
Спутниковая система навигации — комплексная электронно-техническая система, состоящая из совокупности наземного и космического оборудования, предназначенная для определения местоположения (географических координат и высоты) и точного времени, а также параметров движения (скорости и направления движения и т. д.) для наземных, водных и воздушных объектов.
Постановка задачи
Необходимо разработать GPS-навигатор для смартфона.
Основными функциями являются:
- Определение местоположения пользователя
- Поиск по карте
- Построение маршрута в точку назначение
- Функция поиска попутчиков
При создании проекта будут использованы следующие языки программирования:
- HTML5
- C# (ASP.NET)
- LINQ
- JavaScript
- CSS
- WebSocket
Клиент навигатора должен состоять из одной HTML страницы.
Страница должна содержать карту местности, сцентрированную на положении пользователя, а также необходимый набор пользовательских элементов управления для осуществления необходимого функционала:
- Строка поиска местности
- Кнопка определения местоположения пользователя
- Кнопка просмотра полного маршрута
- Изображение следующего действия пользователя (поворот налево, разворот и т.п.)
- Отображение местоположения пользователя
- Отображение местоположения попутчиков
Основные аспекты взаимодействия клиент – сервер
- Команды, с помощью которых выполняются основные функции, определены на стадии проектирования, в виде строковых команд:
- HI – вход пользователя
- WONNA – поиск водителей
- TAKE – поиск попутчиков
- takeID – взятие попутчика
- ping – системная команда, обновление времени соединения клинта с сервером
- Взаимодействие между клиентом и сервером происходит путем отправки JSON сообщений через технологию WebSocket. Сообщение, посылаемое от клиента серверу, состоит из четырех частей:
- cl_id – уникальный идентификационный номер клиента, сгенерированный при входе пользователя
- cmd – команда (основная часть представлена в п. 1)
- msg – сообщение
- gp – координаты местоположения пользователя
- rEnd – координаты конца маршрута пользователя
- segments – координаты сегментов пути пользователя
- Сообщение, посылаемое от сервера клиенту, состоит из трех частей:
- cmd – команда (основная часть представлена в п. 1, спостфиксом “_ANS”)
- msg - сообщение
- res – результат выполнения команды (0 – неуспешно, 1 - успешно)
Алгоритм синхронизации с Яндекс.Карты
В API включена возможность определения местоположения пользователя (геолокация). Для работы с гео локацией используется статический объект geolocation. Доступно три режима определения местолоположения пользователя:
- по ip-адресу по данным Яндекса (как правило, этот метод имеет точность до города или региона);
- с использованием Geolocation API (этот метод точнее на мобильных устройствах, но пользователь должен явно разрешить веб-странице получить сведения о его местоположении);
- вызов обоих методов с выбором более точного результата.
Выбор метода геолокации осуществляется путём указания опции 'provider' - перечисленным методам соответствуют значения 'yandex', 'browser' и 'auto' соответственно. По умолчанию используется метод 'auto'
Результаты геолокации будут возвращены в том же виде, что и результаты геокодирования — коллекция геообъектов с единственной меткой, соответствующей местоположению пользователя. По умолчанию координаты пользователя автоматически подвергаются обратному геокодированию, т.е. автоматически определяется адрес, город и регион пользователя (это поведение можно отключить, задав опции 'autoReverseGeocode' значение false).
Технологии клиента
- CSS – формальный язык описания внешнего вида документа, написанного с использованием языка разметки. Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.
- JavaScript — прототипно-ориентированный сценарный язык программирования. Является диалектом языка ECMAScript. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
- WebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. В настоящее время в W3C осуществляется стандартизация API Web Sockets. Черновой вариант стандарта этого протокола утверждён IETF.
Технологии сервера
- ASP.NET – технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. На данный момент последней версией этой технологии является ASP.NET 4.5.1.
- ASP.NET MVC Framework – фреймворк для создания веб-приложений, который реализует шаблон Model-view-controller. Данный фреймворк добавлен Microsoft в ASP.NET.
В апреле 2009 года исходный код ASP.NET MVC был опубликован под лицензией Microsoft Public License . 27 марта 2012 года лицензия была изменена на Apache License 2.0
- Language Integrated Query (LINQ) – проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы .NET Framework. Ранее был реализован в языках C# и Visual Basic .NET.
LINQ выпущен вместе с Visual Studio 2008 в конце ноября 2007 года. Для быстрого создания и отладки запросов LINQ существует специализированная утилита LINQPad.
Список литературы:
- Адам Фримен, Стивен Сандерсон. ASP.NET MVC3 Framework с примерами на C# для профессионалов. Пер. с англ. – М.: ООО «И.Д. Вилиамс», 2011. – 672 с.: ил.
- Брайан Хоган. HTML5 и CSS3. Веб-разработка по стандартам нового поколения. Пер. с англ. – М. : Издательство «Питер», 2012. – 271 с.: ил.
- Alan B. Johnston, Daniel C. Burnett. WebRTC: APIs and RTCWEB Protocols of the HTML5 Real-Time Web. М: Издательство «Digital Codex LLC» 2-ое издание, 2013 – 274 с.: ил.
дипломов
Оставить комментарий