08.10.2013

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

Введение


Текстовая легенда маршрута - оно же описание маршрута - составляется для использования карты и трека "по старинке", без навигатора.

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

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


Описание


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

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

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

Установка


  1. Качаем и ставим последнюю версию Mozilla Firefox.
  2. Заходим на страницу расширения для FF: Greasemonkey нажимеем "Добавить в Firefox", по скачиванию в открывшемся окне подтверждаем установку кнопкой "Установить сейчас". Перезагружаем FF.
  3. Заходим на страницу скрипта на userscripts.org, нажимаем "Install" (сейчас это зеленая кнопка в правом верхнем углу). В открывшемся окне Greasmonkey ждем 5 секунд и выбираем "Начать установку" (особо мнительным рекомендуется предварительно нажать "Показать код скрипта" и изучить его на предмет багов и соблюдения безопасности). Скачиваем с pastebin (скачать сразу). Открываем папку с файлом. Перетаскиваем скачанный файл в окно Firefox. Во всплывшем окне Greasemonkey подтверждаем установку.
  4. Установка завершена. Теперь можно зайти на сайт GPSies.com и начать его использовать. Например, специальный тестовый трек. Проверить правильность всех предыдущих шагов можно на странице просмотра трека, по появившемуся ближе к концу страницы блоку "Cue sheet Annotation (GPSies+)".


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


  1. Создаем новый трек или открываем на редактирование существующий. Желательно использовать новый редактор GPSies.
  2. Опционально добавляем автоматически генерируемые путевые точки на ключевых поворотах через функцию "Add cue sheet" (в правом краю экрана). Ползунком можно увеличить количество точек, цифрой задать упреждение (в метрах) от точки до непосредственно поворота. Нагенерить может много лишних - ненужные удаляем.
  3. Редактируем существующие/добавляем свои путевые точки.

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

    Помните - оба этих параметра попадают в легенду, так что они должны быть предельно лаконичными и одновременно достаточно содержательными.
  4. Сгенерировать текстовую легенду можно непосредственно на странице редактирования - в правой части редактора должен появится дополнительный блок "Cue sheet Annotation (GPSies+)". В нем можно задать множитель расстояния (изначально подсчет идет в метрах, так что по-умолчанию множитель переводит в километры) а так же округление до нужного знака (по-умолчанию - до двух знаков после запятой). По нажатию кнопки "Create/Update Annotation" легенда появляется непосредственно под кнопкой - оттуда ее можно скопировать и далее использовать по назначению.
  5. Так же, при наличии существующих путевых точек, легенду можно сгенерировать прямо на странице просмотра трека, без входа в режим редактирования. Параметры те же, блок расположен ближе к концу страницы.


Реализация


Два слова о реализации для интересующихся. В коде использованы возможности движка Leaflet (который сейчас используется для отрисовки карт и треков на GPSies): документация API Leaflet. Leaflet используется для расчета расстояний между точками и операциями над ними. Для изменения интерфейса сайта (добавления своих контролов) использован минимальный jQuery (документация API jQuery), ибо он весьма удобен для работы с DOM. GPSies хранит трек в window.polyline и путевые точки в window.waypointsArray.

Из инструментов - для анализа страниц и отладки сценариев использовался Firebug, в качестве интерактивной консоли использовался Dev->shell из набора Jesse's Bookmarklets

Контакты


Обсуждение, замечания, предложения - на форуме Велокубани