RU:Strava

From OpenStreetMap Wiki
Jump to navigation Jump to search

 Strava — сервис для отслеживания активности спортсменов с помощью мобильных устройств с помощью GPS. Сервис включает в себя интернет-сайт, приложение для мобильных устройств (Android и iOS), базу данных сохранённых тренировок, API для доступа к ним и другие подсистемы. Strava также позиционируется как социальная сеть для спортсменов, где они могут сравнивать свои результаты, ставить цели, общаться и так далее. Разработка сервиса ведётся компанией Strava, Inc, которая основана в 2007 году и её основной офис находится в Сан‑Франциско, Калифорния, США.

Самые популярные отслеживаемые виды деятельности — это езда на велосипеде, бег и пеший туризм. База данных Strava содержит 13 триллионов точек широты и долготы из более 1 миллиарда действий с общим расстоянием 27 миллиардов километров.[1] Тепловая карта показывает последние два года и обновляется ежемесячно.[2]

Использование OpenStreetMap

Strava постепенно вводит использование OpenStreetMap, заменяя Google Maps. Они используют стиль "terrain", отображаемый и размещенный в Mapbox.

  • Статические карты (маленькие изображения эскизов карт) как в Интернете, так и в мобильных приложениях используют OpenStreetMap с начала 2014 года.
  • Подвижные карты в сети перешли с Google Maps на OpenStreetMap в середине 2015 года. Подвижные карты в приложениях для Android и iPhone ещё не переключены, объявление в октябре 2019 года касалось только статических снимков.
  • Маршрутизация и «построитель маршрутов» основаны на данных OSM.

Существует также расширение для браузера strava-map-switcher , которое расширяет веб-сайт Strava с помощью более подробных и/или последних карт (Mapy.cz, Freemap Slovakia, MTB map Europe, …)

Тепловая карта треков Стравы (Strava Heatmap)

information sign

Тепловая карта Strava была недавно изменена, теперь все пользователи должны регистрироваться на сайте strava.com. Чтобы использовать его, вам сначала нужно создать там учетную запись и войти в систему.
Увеличенное изображение велосипедных дорожек Ноттингема (из сообщения в блоге, сравнивающего данные).
Слой тепловой карты Strava в JOSM в районе Гбамгбамы, Сьерра‑Леоне. Красные линии уже нанесены на дороги, зелёные «линии» взяты из данных тепловой карты Strava.

В 2014 году Strava представила новый экспериментальный сервис — глобальную "тепловую" (сводную) карту треков, загруженных пользователями. [3] Карта изначально делится на две: карта треков тренировок бегунов и карта треков тренировок велосипедистов. Благодаря этим картам можно определить, какие места популярных у местных бегунов и велосипедистов, а какие нет.

В том же году году Strava заявила о поддержке сервисов OpenStreetMap. Во‑первых, было получено официальное разрешение от директора Strava Labs на использование тепловой карты для рисования карт OSM.[4]

Был даже выпущен "Slide" — форк онлайн-редактора iD, оснащённый дополнительным инструментарием, автоматически позволяющим более точно привязывать рисуемые дороги к линиям на тепловой карте[5][6]. Проект просуществовал до 2018 года, после чего перестал работать.[7]

В 2017 году выпущена обновлённая тепловая карта с изменённой цветовой гаммой (гамма сменилась с сине-красной на коричнево-жёлтую). Зашумление карты повысилось, однако на ней стали различимы абсолютно все попавшие на неё треки, даже единичные. Старая тепловая карта по‑прежнему доступна, однако её детализированность настолько уступает новой, что она более не представляет особого интереса. У карты меняется URL, все приложения, работавшие со старым вариантом тепловой карты продолжают с ней работать, новая карта — совершенно отдельный продукт.

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

В результате Strava пала жертвой собственной доблести. В декабре 2017 года на компанию обрушивается череда обвинений в раскрытии секретных и персональных данных, в частности в том, что на тепловой карте раскрыто местоположение военных баз на территории Ирака[8], благодаря множеству треков тренирующихся со стравой бегунов из числа персонала этих баз. Через два месяца после этого Strava обновила тепловую карту и изменила её наполнение и условия предоставления. По новым правилам, карта отображает треки только поблизости от населённых пунктов, а так же только треки за последние два года. Зато обновляться карта будет каждые два месяца. Кроме того, свободный доступ к тепловой карте будет предоставляться только до зума 12 (40 метров на пиксель), а более подробные данные (максимум карта доступна до зума 16, это 2 метра на пиксель) будут отдаваться только после предварительной регистрации на сайте strava.com.

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

Разрешение на данные — разрешено для отслеживания!

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

Данные доступны на основе платной лицензии, поэтому здорово, что Strava позволяет использовать данные бесплатно в целях улучшения OpenStreetMap (аналогичные соглашения существуют с поставщиками аэрофотоснимков). Имейте в виду, что это отличный инструмент для поиска пропущенных дорог, но наличие линий на тепловой карте не обязательно означает, что доступ в этом месте является законным для населения. Также может быть неправильно указан тип активности для некоторых треков Strava (например, велосипедные маршруты по большим незамёрзшим водоёмам).

Использование тепловой карты Стравы в редакторах iD и JOSM

Для чего нам нужна тепловая карта

Тепловая карта Стравы очень важна для использования в редакторах карты OSM по целому ряду причин.

Во‑первых, на ней проявляются используемые тропы и дорожки в лесу, наличие которых иным способом удалённо вычислить невозможно — на спутниковых снимках они не видны. Можно даже косвенно оценить качество дорожного покрытия для троп и просёлочных дорог: велосипедная тепловая карта показывает только те участки тренировок, где велосипедисты двигались со скоростью выше 7 километров в час. Участки, где велосипедист был вынужден спешиваться и идти пешком, на карте не отображаются. Таким образом, если мы видим на тепловой карте пунктирную линию или разрыв — значит в этом месте дорога завалена, заболочена или перекопана, что вынуждает велосипедистов спешиться.

Во вторых, и этот аспект использования даже важнее, тепловая карта позволяет вычислить смещение для спутниковых снимков. Известно, что хотя спутниковые снимки более-менее привязаны к местности, точность привязки всё-таки невелика и в отдельных местах картинка может быть сдвинута относительно реальности метров на 30, что сопоставимо с размером объектов, которые мы отрисовываем.

Обычно для решения этой проблемы используют базу GPS‑треков, загруженных в базу OSM. Однако база треков Стравы по ряду причин многократно богаче, треков туда загружено больше и вероятность найти где-то вдали от крупных городов треки, необходимые для привязки спутникового снимка, для тепловой карты Strava выше, чем для треков из базы OSM (хотя после декабря 2017 года в малонаселённых местах тепловую карту Strava изрядно проредили, она всё ещё остаётся самым актуальным вариантом в пределах 40 километров от крупных райцентров).

Сам процесс коррекции смещения для тепловой карты и для базы треков практически одинаков: мы смотрим совпадение треков и различимых на спутнике дорог и совмещаем их так, чтобы они совпадали. Особенно удобно это делать в местах крутых поворотов и перекрёстков. Тепловая карта, как сумма множества GPS-треков — эталон (особенно там, где треков больше одного и линии устредняются). Спутниковую карту мы подгоняем по расположению к этому эталону.

Проблема авторизации и методы её решения

Как уже было сказано, без регистрации на сайте Strava.com доступны только масштабы до 12 включительно, что делает тепловую карту практически бесполезной для наших целей. Это создало проблему, в связи с отсутствием у редакторов карт механизма аутентификации на внешних ресурсах. Для решения этой проблемы были найдены два способа: метод подмены cookies (ручной и автоматический) и метод транзитного проксирования тайлов (когда авторизацию берёт на себя промежуточный сервер, который выступает в качестве промежуточного звена для загружаемых тайлов и берёт на себя авторизацию).

Метод определения и подстановки cookies вручную

Метод был предложен Win Olario в ноябре 2018 года [9]

  1. Открыть в Firefox и авторизоваться на сайте https://www.strava.com/heatmap
  2. Войти в инструменты разработчика в браузере → вкладка сеть.
  3. Перезагрузить страницу, выбрать любой тайл теплокарты, во вкладке cookies скопировать соответствующие значения параметров Key-Pair-Id, Signature, Policy и заменить ими соответствующие строки MYVALUE в нижеприведённом адресе:

https://heatmap-external-{switch:a,b,c}.strava.com/tiles-auth/both/bluered/{zoom}/{x}/{y}.png?Key-Pair-Id=MYVALUE&Signature=MYVALUE&Policy=MYVALUE

В JOSM слой подключается как TMS URL. Выше 3-го и ниже 16-го зума тайлов нет, поэтому желательно добавить префикс-ограничение, чтобы на более крупных масштабах не сыпались ошибки об отсутствии тайлов: tms:[3,15] (смотрите справку о настройке TMS-слоёв в JOSM)

Плагин strava_heatmap для JOSM (автор allier-osm)

Почти сразу после появления метода подмены cookies, этот способ был автоматизирован участником allier-osm при помощи плагина Strava Heatmap, сделав ручной способ подмены устаревшим. [10]

Однако затем у автора этого плагина возникли сомнения в том, разрешает ли обновлённая лицензия Strava использование тепловой карты для рисования OSM, и с тех пор доступ к плагину закрыт, а в объявлении висит статус "Ожидаем лицензионных разъяснений от Strava".[11]

Расширение "Strava Heatmap to OSM Background" к браузеру Chrome (автор janosrusiczki)

Метод предложил пользователь janosrusiczki в июне 2018 года: с помощью расширения "Strava Heatmap to OSM Background" к Google Chrome формируется готовая ссылка для редакторов ID и Josm.

Как этот плагин подключить и пользоваться, в октябре 2020-го года подробно описал в своём блоге OSM пользователь erickdeoliveiraleal (язык английский). Процедура по установке плагина немного замороченная.

Обратите внимание, что полученный в результате работы плагина TMS URL приходится немного доработать: нужно заменить строчку /tiles-auth/all/bluered/ на строчку /tiles-auth/ride/hot/ в противном случае вы будете получать не совсем тот слой, который нужен. Замена слова all на ride даёт вам возможность видеть треки только велосипедистов, а не "велосипедистов и бегунов". Замена bluered на hot даёт нам вариант тепловой карты с более подробным отображением деталей (на карте видны треки даже отдельных спортсменов).

Расширение "JOSM Strava Heatmap" к браузерам Chrome и Firefox (автор zekefarwell)

Наиболее рекомендуемый на сегодня способ.

27 апреля 2021 года пользователь zekefarwell доработал и выпустил свой вариант OpenSource-вариант плагина, вытаскивающего из веб-страницы Strava искомый TMS URL для JOSM.

Плагин доступен в маркетах плагинов для Chrome и Firefox.

Плагин предельно прост в использовании. Он добавляет дополнительную кнопку на страницу strava.com/heatmap, так что вы можете выбрать нужные настройки тепловой карты, а потом скопировать TMS URL полученной карты в буфер и использовать его в JOSM. Удалив из этого TMS URL необходимый для JOSM префикс, этот URL можно использовать в iD, и вообще в любой программе, которая умеет работать с TMS URL, например на сайте Brouter Web. Подробные инструкции вы можете найти непосредственно на странице плагина "JOSM Strava Heatmap".

Обращаю ваше внимание, что вы не можете зайти на сайт strava.com/heatmap, если не авторизовались перед этим на сайте strava.com

JOSM: Метод "Tampermonkey Script" (автор Marat Koshoev)

Существует плагин Tampermonkey, предназначенный для запуска пользовательских скриптов на веб-страницах. Плагин с закрытым кодом, но бесплатный, распространяется по схеме donationware. Плагин существует в версиях для всех популярных браузеров: Chrome, Microsoft Edge, Safari, Opera Next, и Firefox. Будучи установлен, этот плагин позволяет запускать произвольные пользовательские скрипты, которые взаимодействуют с данными открытой в данный момент страницы.

15 апреля 2021 года Marat Koshoev создал и выложил скрипт "Strava Global Heatmap TMS server link generator for JOSM" для этого плагина, который на выходе выдаёт искомую TMS-ссылку для JOSM.

Метод транзитного проксирования тайлов (автор nnngrach)

Примечание: с 20.10.2020 метод перестал работать, из-за того, что автор проекта AnyGIS прекратил работу над проектом и дальнейшее поддержание работоспособности своего сервера.

Метод был предложен в апреле 2019 года пользователем nnngrach [12] как часть совершенно другого проекта AnyGIS[13], позволяющего при помощи специального промежуточного транзитного прокси-сервера открывать всевозможные растровые карты со сложной URL-адресацией, в приложениях, понимающих только адресацию в классическом стандарте TileLayer (это приложения OSMAND, Locus, GuruMaps, Orux Maps и другие).

Промежуточный прокси-сервер переводит координаты из формата, присланного приложением в формат, в котором тайлы лежат в базе данных, и пересылает приложению запрошенный кусок карты. В случае со Strava Heatmap этот сервер просто взял на себя дополнительную задачу — автоматическую переавторизацию на сервере Strava. Технические подробности реализации подробно описаны в соответствующей статье на Хабре.[14]

В качестве адреса источника карты в приложениях и редакторах карт указывается непосредственно URL этого транзитного сервера:

Для JOSM:

tms[3,16]:https://anygis.ru/api/v1/Tracks_Strava_All/{x}/{y}/{z} — тепловая карта бегунов и велосипедистов (карта может быть слишком зашумлённой в местах, где много бегунов)

tms[3,16]:https://anygis.ru/api/v1/Tracks_Strava_Ride/{x}/{y}/{z} — тепловая карта только для велосипедистов

(По поводу префикса tms[3,16]: смотрите справку о настройке TMS-слоёв в JOSM)

Для iD: https://anygis.ru/api/v1/Tracks_Strava_All/{x}/{y}/{z} — тепловая карта бегунов и велосипедистов (карта может быть слишком зашумлённой в местах, где много бегунов)

https://anygis.ru/api/v1/Tracks_Strava_Ride/{x}/{y}/{z} — тепловая карта только для велосипедистов

iD: Использование Strava Heatmap для определения смещения спутниковых снимков

Для этого требуется выполнить следующие действия:

  1. Найти на карте в районе предполагаемого редактирования перекрёсток с хорошо отмеченными треками Strava.
  2. Включить Strava в iD-редакторе как Пользовательский слой.
  3. Подогнать дороги, примыкающие к перекрёстку под треки Strava — это будет "эталонный" перекрёсток.
  4. Переключить подложку на необходимый нам фон (например, Maxar).
  5. Сместить подложку так чтобы наш эталонный перекрёсток совпал с его спутниковым отображением.

JOSM: Использование Strava Heatmap для определения смещения спутниковых снимков

Выравнивание спутниковых снимков по Strava Heatmap по ряду моментов отличается от выравнивания по загруженным GPS-трекам. GPS-треки в JOSM загружаются как векторный слой, а не как растровый. А Strava Heatmap — это типичный растровый слой, с точки зрения JOSM он ничем не отличается от обычных спутниковых снимков.

Поэтому JOSM относится к слою Strava Heatmap как к обычному растровому слою:

  • предупреждает о том, что он может быть смещён (это не так)
  • при публикации смещения, смещение сохраняется для верхнего показываемого растрового слоя (для связки "спутник+Heatmap" это будет именно Heatmap)
  • при поиске готовых смещений в базе JOSM ищет смещения для верхнего показываемого растрового слоя (для связки "спутник+Heatmap" это будет именно Heatmap)

Нужно понимать следующее:

  • Слой Strava Heatmap — это эталон позиционирования. Смещать его не нужно никогда и ни при каких обстоятельствах.
  • Слой Strava Heatmap — изначально прозрачный. По нему мы выверяем позиционирование нижележащих слоёв.
  • На время загрузки-выгрузки смещения плагином Imagery_Offset_DB необходимо временно скрывать показ слоя Strava Heatmap.

Последовательность действий по определению смещения (предполагается наличие установленного плагина Imagery_Offset_DB и вручную настроенного TMS-слоя Strava Heatmap):

  1. Добавить показ двух растровых слоёв: спутниковый слой (ниже) и Strava Heatmap (выше)
  2. Как вариант, задать слою Strava Heatmap 70%-ю непрозрачность (кнопка "Изменить видимость выбранного слоя" снизу от списка слоёв). Я сталкивался с ситуациями, когда это позволяет лучше контролировать совмещение слоёв (лучше видны границы шоссе под жирными тепловыми треками, так что расположение шоссе проще центрировать).
  3. Отключить показ всех вышележащих слоёв с данными, которые могут помешать видеть спутниковый слой и Strava Heatmap.
  4. Скрыть показ слоя Strava Heatmap (значок глаза слева от названия слоя)
  5. Попытаться загрузить смещение из интернет-базы (меню "Слои" → "Получить смещение снимка")
  6. Включить показ слоя Strava Heatmap (значок глаза слева от названия слоя)
  7. Если подходящее смещение было найдено, проконтролировать его по Strava Heatmap
  8. Если смещение не найдено или результат выравнивания не устраивает — приступаем к самостоятельному выравниванию.
  9. Меняя масштаб в большую и меньшую сторону осмотрите окрестности и найдите на карте ближайшее к интересующей вас местности шоссе, по которому на слое Strava Heatmap проходят треки (чем треков больше, тем лучше).
  10. Найдите на этом шоссе изгиб или перекрёсток, где тепловые треки шли бы в перпендикулярных направлениях.
  11. Войдите в режим изменения смещения спутникового слоя (правой клавишей мыши на слое, пункт "Новое смещение").
  12. Двигая левой клавишей мыши спутниковый слой под тепловой картой, добейтесь максимально симметричного размещения тепловых треков поверх шоссе на всех взаимно перпендикулярных участках (правая клавиша мыши по‑прежнему позволяет передвигаться по карте, так что вы можете проверять качество смещения на разных участках).
  13. Выйдите из режима изменения смещения спутникового слоя (кнопка ОК диалогового окна "Настроить смещение снимка")
  14. Поздравляем, смещение установлено.
  15. Любым удобным способом (например, добавив поверх растровый слой mapnik) выясните название ближайшего топонима к месту, где вы выполняли совмещение.
  16. Отключите показ всех растровых слоёв кроме спутникового слоя для которого вы настраивали смещение.
  17. Выполните загрузку смещения в интернет-базу (меню "Слои" → "Сохранить смещение снимка"). При сохранении укажите название ближайшего топонима.

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

Тег source (источник)

Используется множество различных тегов source, но наиболее распространенными являются:

source=Strava


source=strava


source=Strava Heatmap


Strava Slide

information sign

Форк Strava Slide для iD обеспечивает доступ к GPS-трекам и представляет собой умный инструмент (модуль Slide) для итеративного уточнения геометрии пути и оптимизации его согласования с данными GPS о тепле.

Сообщения об ошибках маршрутизации

Ошибки маршрутизации, о которых сообщают пользователи Strava, можно увидеть на подвижной карте, на которой OpenStreetMap используется в качестве базового слоя. Его можно использовать в качестве «контрольного списка» для картографов, чтобы исследовать потенциальные проблемы и исправлять их на основе обычных источников (например, проверка местоположения на земле).

API

У Strava есть API. Большая часть доступной информации относится к конкретному пользователю или его друзьям и поэтому требует входа в систему через учетную запись Strava.

Смотрите также

  • Gpslib.ru — свободная библиотека GPS-треков, более функциональный аналог, позволяет загружать трассировки с отметками времени (существует с 2007 по февраль 2019 года).
  • labs.strava.com — побочные проекты Strava (включая проект Strava Heatmap и другие)
  • Презентация сервиса Slide, 2014 год Презентация сервиса Slide, 2014 год PDF (2,08 МБ)

Источники

  1. “Strava Labs”. Retrieved 2021-11-28. 
  2. “Heatmap Updates”. Retrieved 2022-01-20. 
  3. strava.com/heatmap
  4. Guillaume Rischard: «OK to use heatmap in JOSM editor?» Paul Mach, Director of Strava Labs: «Feel free to use the heatmap tiles for any map editing» 13 апр. 2014 г.[1]
  5. «Сервис Slide» [2]
  6. Презентация сервиса Slide, 2014 год Презентация сервиса Slide, 2014 год PDF (2,08 МБ)
  7. Обсуждение на GitHub «Slide not doing anything», апрель 2018 года
  8. BBC «Fitness app Strava lights up staff at military bases», 29 January 2018 [3]
  9. «Making Strava heatmaps work in JOSM» [4]
  10. «JOSM plugin providing access to the high-resolution Strava heatmaps» [5]
  11. «Do we have a permission from Strava?»
  12. nnngrach: «Написал скрипт, который позволяет загружать карты Strava Heatmap без заморочек с авторизацией и заменой cookie‑файлов» 19 апреля 2019 года
  13. «AnyGIS — растровые карты для смартфона» [6]
  14. Хабр: «Автоматическая авторизация на карте Strava Heatmap»