{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
103 комментария
Написать комментарий...
Rax034

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

Ответить
Развернуть ветку
SYNACK

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

Ответить
Развернуть ветку
Rax034

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

Ответить
Развернуть ветку
SYNACK

Это какой-то фетиш? Иметь второй телефон для навигации?

Ответить
Развернуть ветку
Rax034

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

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Rax034

Пойду расскажу всем кто имеет второй телефон для практичности что они психи, потому что так написал чувак из интернета и еще парочку его поддержали.

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
SYNACK

Не забудь айфон целлофаном обернуть, не дай бог поцарапается

Ответить
Развернуть ветку
Rax034

Сам себе советы можешь устно произносить, писать не обязательно.

Ответить
Развернуть ветку
S.Z

Для тебя айфон прямо святой грааль

Ответить
Развернуть ветку
Rax034

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

Ответить
Развернуть ветку
SYNACK

В чем проблема использовать айфон "на убой"? Это крепкий телефон с металлической рамой и противоударным стеклом.

Ответить
Развернуть ветку
Love is

Вообще да, но от вибраций портится камера. (типа стабилизация умирает).
Я на мотоцикле 2 телефона так угробил, пока не понял в чем дело.

Ответить
Развернуть ветку
Rax034

Они не поймут)

Ответить
Развернуть ветку
Arthur N

Мотоцикл — не велосипед.

Ответить
Развернуть ветку
Rax034

Айфон, крепкий телефон? Кусок говна, который после одной катки на запчасти развалится. Иди кому-то другому по ушам катай)

Ответить
Развернуть ветку

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

Развернуть ветку
Rax034

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

Ответить
Развернуть ветку
Igor

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

да будет счастье в вашей непростой жизни.

Ответить
Развернуть ветку
Сергей Козлов

Ты часто падаешь идя ногами?

Почему с велика нужно упасть, не пойму

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Дмитрий Сергеев

Чувак ты весьма ограниченный информационно по жизни тип. У этих педальных фанатов часто бывают случаи, когда велосипед, в лучшем случае велосипед, а то и просто педаль от него, стоит как новый айфон, в лучшем случае, а то, как несколько новый афонов))

Ответить
Развернуть ветку
Слава Вячеславов

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

Ответить
Развернуть ветку
100 комментариев
Раскрывать всегда