Отслеживание одного из наших

Картографирование тропы Тихоокеанского гребня

Введение

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

Мы работали над несколькими подключенными продуктами и информационными панелями, поэтому создание специального картографического приложения для отслеживания приключений Морган казалось вполне естественным. Ведь протяженность РСТ составляет 2650 миль. Фактически, он проходит через всю Калифорнию, Орегон и Вашингтон, от границы Мексики до Британской Колумбии в Канаде. Для всех нас, любителей походов в креслах, это более 5 месяцев в пути!

Тепло упаковки

В то время как значительные усилия были вложены в поддержание базового веса ее рюкзака (менее 12 фунтов!), Морган носит с собой устройство GPS для отслеживания и определения своего местоположения. Этот крутой маленький карманный компьютер поддерживает собственное спутниковое соединение на основе L-диапазона Iridium (1-2 ГГц), что позволяет ему работать на высоте и в местах, где большинство телефонов упало бы. По сути, он работает в любой точке мира, выступая в качестве аварийного устройства.

Наш план состоял в том, чтобы использовать этого парня для передачи данных в наше приложение. Конечно, он поставлялся со своими собственными картографическими сервисами от Garmin, но они не предоставляли никакой информации о тропе, по которой Морган будет идти, о ее точках пополнения запасов, ее запланированных «нулевых днях» или обо всех местах, где она будет чизбургеров, которые она пыталась бы преодолеть. ударил сразу по следу.

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

Отслеживание Моргана

Когда дело доходит до сопоставления структурированных данных, существует два основных стандарта: GeoJSON и язык разметки Keyhole или KML. Оба этих формата позволяют указывать формы, маркеры и координаты при нанесении информации на карту.

Сервисы Garmin основаны на KML и доступны напрямую через URL. KML немного похож на GeoJSON и используется во многих продуктах Google. Как и GeoJSON, он может хранить точки, линии, многоугольники и другие векторные данные, но в отличие от GeoJSON, он основан на XML, а не на JSON.

Для наших целей все, что нам было нужно, было в этой аккуратной маленькой ленте:

Когда устройство Моргана включено и отслеживает, на нашей карте фиксируются все основные моменты:

  • Время
  • Широта Долгота
  • Высота
  • Скорость
  • Курс (т.е. направление)

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

Помимо записи местоположения Моргана и данных о походах, мы также хотели провести линию, разграничивающую тропу. Быстрый поиск в Интернете обнаруживает два достойных источника данных: один из Лесной службы США, а другой из Halfmile’s PCT Maps. Оба предлагают полные версии следа в формате KML, который отлично подходит для наших целей.

Добавляем все это на нашу карту

Когда у нас были данные, нам просто нужно было добавить их на карту. Очевидно, что есть Google, но существует и ряд других вариантов, включая ArcGIS, Mapbox, Leaflet, OpenLayers и Cesium. Эти библиотеки карт также поддерживают множество совместимых слоев и изображений, будь то топографические, спутниковые, связанные с погодой или другие пользовательские фрагменты.

Для нашего прототипа мы решили использовать Mapbox, поскольку он был хорошо документирован и легко настраивался прямо из коробки. Чтобы приступить к работе, мы начали с плиток Mapbox На открытом воздухе и Спутник.

Еще одна замечательная особенность Mapbox - это облачный инструмент, который можно использовать для создания и настройки собственных карт. Сразу после того, как мы начали, мы поняли, что можем просто стилизовать след, добавив пару фильтров с помощью Mapbox Studio. В конечном итоге это избавило нас от необходимости добавлять или импортировать дополнительный KML-файл для записи следа.

Просто выбрав все «тропы» с названием «Pacific Crest Trail» или «John Muir Trail» (также часть PCT), мы смогли выделить и раскрасить след.

С примененным фильтром и координатами (широта и долгота) из канала Garmin было быстро центрировать карту на местоположении Моргана, одновременно отображая след. Как видите, разметка для этого довольно проста.

Добавление маркера и обновление его положения
Когда наши координаты центрированы на карте, последним шагом было добавление пользовательского маркера и динамическое обновление местоположения Моргана. Используя Mapbox и немного Javascript, этого легко добиться.

Сначала мы опрашиваем KML-канал Garmin, получаем последние координаты и отображаем наши координаты как GeoJSON.

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

Дальнейшие действия

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



Найдите нас в Facebook, Twitter и Instagram или свяжитесь с нами на thirteen23.com.