В путь с велонавигатором 2ГИС

На прошлой неделе мы показали новый навигатор — для велосипедов и самокатов. Рассказываем подробнее, как придумывали и рисовали его.

В путь с велонавигатором 2ГИС

Сделать маршруты для велосипедистов мы хотели давно, но именно в 2020 особенно ощутили потребность — настал бум сервисов доставки, и многие курьеры пересели на велосипеды.

К нам пришли B2B-клиенты с запросами на API для велосипедной маршрутизации, которое помогало бы строить оптимальные маршруты и предсказывать время в пути. Мы приступили к разработке с прицелом, что в скором времени веломаршруты появятся в 2ГИС и будут использовать этот же API. Так и вышло!

Строим безопасный и кратчайший маршруты

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

Мы получили две явные группы, которые ездят по городу по-разному. Это подсказало нам, что базовых маршрутов должно быть два: без выезда на проезжую часть — для комфортного «любительского» катания; и с возможностью передвигаться по автодороге — для тех, кому важно добраться максимально быстро.

В приложении эти маршруты называются:

  • «безопасный» — без выездов на проезжую часть;

  • «кратчайший» — с выездом на проезжую часть, где это разрешено ПДД.
Два варианта — как красная и зелёная дорожка в «Умниках и умницах». Быстро, но рискованно или медленно, но спокойно.
Два варианта — как красная и зелёная дорожка в «Умниках и умницах». Быстро, но рискованно или медленно, но спокойно.

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

Учитываем перепад высот

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

В приложении данные о высотах выглядят как диаграммы и шкалы на линии маршрута:

  • диаграмма поможет оценить профиль местности на всём маршруте;
  • цветовая шкала показывает, на каких участках дороги есть подъёмы.

Мы выбрали принцип раскраски, который напоминает пробки: в автонавигаторе мы показываем их жёлтым и красным, потому что пробки — это препятствие, проблема и стресс. Стресс для велосипедиста и водителя самоката — чаще всего подъём в горку:

  • зелёные столбики — уклон менее 1,3 %,
  • жёлтые столбики — уклон от 1,3 до 6 %,
  • красные столбики — уклон от 6 % и больше.
В режиме ведения график высот показывает, какая часть маршрута уже пройдена и что осталось впереди (как «градусник» из автонавигатора).
В режиме ведения график высот показывает, какая часть маршрута уже пройдена и что осталось впереди (как «градусник» из автонавигатора).

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

В путь с велонавигатором 2ГИС

Показываем препятствия и разное покрытие дорог

Мы говорили о том, что подъём в горку — стресс для велосипедиста, но не только он! Грунтовка, ямы и кочки, насыпи из щебня, разбитый асфальт, а ещё лестница и калитки — масса препятствий. И мы их показываем. Данные о разных типах поверхности мы собирали годами и продолжаем обновлять, преодолевая тысячи километров на автомобилях и пешком, и рады, что можем делиться этой информацией.

В путь с велонавигатором 2ГИС

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

На карте, на линии маршрута, эти типы поверхности получили свою особую раскраску (паттерн), которая ложится поверх градиента изменения рельефа. На подбор и настройку паттернов ушло очень много времени: было важно, чтобы они выглядели хорошо на градиентной подложке, хорошо считывались при езде, и, желательно, сами говорили о том, что означает каждый из них. Задача оказалось сложной и с точки зрения дизайна, и технически. Обязательно расскажем подробнее об этом в следующих статьях.

В путь с велонавигатором 2ГИС

Лестницы, калитки, места въезда на новые типы поверхности мы отмечаем на карте иконками с подписями, чтобы не было разночтений. Также во время ведения мы предупреждаем о препятствиях и событиях нотификацией на месте диаграммы «рельефа». Например, за 200 метров до въезда на плохую дорогу появится предупреждение, которое задержится на несколько секунд, чтобы велосипедист успел его заметить.

Один взгляд на линию маршрута даёт сразу всю нужную информацию: препятствия, тип поверхности, есть ли набор высоты.
Один взгляд на линию маршрута даёт сразу всю нужную информацию: препятствия, тип поверхности, есть ли набор высоты.

Даём подсказки о манёврах

В велосипедном навигаторе мы использовали подсказки о маневрах и озвучку из пешего навигатора. Они хорошо зарекомендовали себя, поэтому пока мы решили в них ничего не менять. А вот маркер (синяя стрелка) взяли из автонавигатора — очень уж он красив и понятен.

Чтобы исключить лестницы и подземные переходы на всём пути, мы добавили в настройки отдельный фильтр — с ним приложение найдёт маршрут в обход всех лестниц. Часто проехать лишний километр проще и быстрее, чем тащить на себе велосипед через подземный переход. Здесь же есть фильтр автомобильных дорог: когда он включен, приложение будет искать маршруты без выезда на проезжую часть.

В путь с велонавигатором 2ГИС

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

Пользоваться навигатором для велосипедов можно в версии 6.2 под iOS и 6.3 под Android.

101101
103 комментария

Круто, наконец-то. Часто езжу на велосипеде, и знать примерное время прибытия конечно очень важно

20
Ответить

а типа яндекс карты и maps.me не умеют в маршруты для велосипеда уже давным давно? а у вас такая потребность в этом, что вы даже не смогли погуглить такой функционал ранее?)

16
Ответить

Комментарий недоступен

19
Ответить

Позабавил момент, что скрины с велонавигацией показаны на последнем айфоне. На велосипеде, зато с новым айфоном)

Ответить

Для тебя наверное шоком окажется что люди иногда оставляют машину дома и едут на велосипеде.

21
Ответить

Вы в городах давно бывали?) Я стараюсь использовать машину только в случаях самой крайней необходимости, ибо пробки и проблемы с парковкой. Велик очень выручает: отвезти ребенка, съездить на рынок, в пункт выдачи, в кафешку, в парк и т.д.

2
Ответить

есть велосипеды по цене авто

2
Ответить