Статьи, посвящённые ремонту, модернизации и эксплуатации велокомпонентов, а так же обзоры качества и особенности их работы.
Ответить

Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 08.10.2013, 02:12

Так уж сложилось, что для хранения и управления своими треками я пользуюсь сайтом GPSies.com. Недавно на сайте появилась новая фича для генерации путевых точек на ключевых поворотах по треку (функция "Add cue sheet" - доступна в режиме редактирования трека).

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

Скрипт написан для Greasemonkeyи работает в Firefox (как минимум в 24-й версии).
Сам скрипт выложен на пастбин (скачать сразу).

Выглядит это все примерно так:
Изображение

Подробная инструкция по установке и использованию - на странице блога.

P.S. Отдельная благодарность выражается xyzzy за исходную идею, описанную тут: Re: Краснодарские бреветы
Последний раз редактировалось kirill-k2 16.03.2015, 23:27, всего редактировалось 5 раз(а).

Re: Создание текстовой легенды маршрута на сайте GPSies

xyzzy » 08.10.2013, 21:11

Кирилл, отличная идея с Greasemonkey. Так действительно будет намного удобнее.

Но описанный способ в общем случае, когда расстояние между точками трека может быть произвольно большим, будет очень сильно врать по поводу расстояния. Вот пример трека с путевой точкой в районе 2 км для которой скрипт показывает расстояние 0 км: http://www.gpsies.com/map.do?fileId=ylxbsevvnuakcqia. Ближайшая точка на треке может быть слишком далеко, как в этом примере.

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

Я делал как-то так:
  • Рассматриваем не точки, а отрезки между двумя точками трека (между точками 0 и 1, между 1 и 2, 2 и 3, т.д.).
  • Находим расстояние от путевой точки до каждого отрезка. Находим ближайший отрезок. Формула для этого расстояния на англ. называется Cross Track Distance, Cross Track Error, XTD, XTE или что-то вроде (подробнее: http://williams.best.vwh.net/avform.htm). Имея XTD, вычисляем расстояние вдоль отрезка от его начала до пересечения с перпендикуляром из путевой точки (см. по ссылке).
  • Остаётся прибавить найденное расстояние к расстоянию от старта до точки начала отрезка. Результат — это расстояние путевой точки для легенды.

В JavaScript я не очень разбираюсь, помочь тебе со скриптом не могу. Если придумаешь другой способ или захочешь что-то спросить про этот, напиши. Можно на почту или XMPP, если тут это будет оффтопом.

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 08.10.2013, 22:10

xyzzy

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

Спасибо за наводку по алгоритмам! Я пока постарался обойтись без самостоятельной реализации математики, максимально вытащив имеющиеся в API жипсиса функции. В частности, очень помогло описание API Leaflet в части методов объекта L.LatLng: http://leafletjs.com/reference.html#latlng

Судя по описанию, Leaflet уже имеет реализацию XTD: L.LineUtil.closestPointOnSegment - осталось применить ее в том же цикле рассчета, слегка его допилив.

PS кстати, JS значительно проще чем си весьма схожим синтаксисом. А с современными библиотеками навроде jQuery писать одно удовольствие. По крайней мере для подобных задач.

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 09.10.2013, 01:30

xyzzy

Допилил, проверяй.

Re: Создание текстовой легенды маршрута на сайте GPSies

xyzzy » 09.10.2013, 22:10

Теперь, вроде, всё точно :good:

Re: Создание текстовой легенды маршрута на сайте GPSies

Crazy » 26.10.2013, 19:57

Я, возможно не в тему, но всё же.
Подскажите как можно загрузить трек с gpsies.com в iphone для того, что бы в дальнейшем проследовать именно по этому треку и не потеряться.
Вот этот трек хочу загрузить и попробовать на днях катнуть: http://www.gpsies.com/map.do?fileId=iklvoimhnspfqnwg

К примеру в программе mountainBike от runtastic.com этот трек не находит.

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 26.10.2013, 23:46

Crazy

ты стопудова не в тему. ставь нативный апп жипсиса на свой ойфон и там качай. не поможет - добро пожаловать в увлекательную вселенную поиска от гугла.

Re: Создание текстовой легенды маршрута на сайте GPSies

Crazy » 28.10.2013, 09:25

По "вселенной гугла" я бродил, и даже на твоем сайте темку http://kirill-k2.blogspot.ru/2012/07/blog-post.html изучил. Но к сожалению ты все описывал для андроида, на айфон половины, указанного тобой, софта нет.
Саму программу gpsies на ипхон установил, но как в нее загрузить трек, чтоб можно было по нему ориентироваться в дальнейшем, непонятно.

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 28.10.2013, 10:54

Crazy

У меня нет ойфона, вот, тут посмотри два сообщения по ссылке: АНОНС: 17.10.13 Кубанские Четвергушки

Re: Создание текстовой легенды маршрута на сайте GPSies

Crazy » 28.10.2013, 20:53

Спасибо!

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 19.02.2014, 23:19

Немного обновил скрипт, до версии 2.01.

По многочисленным просьбам добавил кнопку "Toggle Route". Находится в верхней правой панели управления "More...", сразу под кнопкой скрытия всех путевых точек "Waypoints". Кнопка позволяет скрыть все путевые точки, указывающие направления. При этом оставляя все остальные. В нашем случае остаются только КП, что облегчает обзор карты в общем масштабе.

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 20.08.2014, 00:41

Поскольку userscripts.org лег, выложил на пейстбин.

Заодно добавил еще пару фич, версия скрипта 2.71. В частности - полное название трека в списках вместо сокращенного многоточием.

Re: Создание текстовой легенды маршрута на сайте GPSies

C4ET4uK » 13.09.2014, 12:03

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

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 13.09.2014, 14:07

C4ET4uK

По созданным путевым точкам (тем же, которые создаются для текстовой легенды) по маршруту умеет вести OruxMaps, если в андройде настроен синтезатор речи (стандартный гугловский пойдет, я предпочитаю Svox).

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

Re: Создание текстовой легенды маршрута на сайте GPSies

C4ET4uK » 13.09.2014, 15:46

Я так и не нашел как в orux'e включить навигацию по треку...

Re: Создание текстовой легенды маршрута на сайте GPSies

kirill-k2 » 16.03.2015, 23:21

Обновилась версия до 2.72 - незначительные правки и улучшения. Лежит там же, на пейстбине (см. первый пост)
Ответить