Pull to refresh

Comments 33

у меня два вопроса к 2GIS немного не по теме статьи.

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

2) научиться понимать скорость движения не только в среднем по всем полосам, а по каждой полосе многополосной дороги. Например трехполосная дорога, одна полоса налево, вторая прямо, третья направо. Вы же знаете какая машина куда едет, так и считайте три разные средние скорости. Чтобы не было такого: вот тут едем, тут быстро. А на самом деле там быстро только в правом ряду, а нам налево где стоять еще 10 минут на перекрестке.

есть у вас такое? нет? сделаете? чушь?

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

2) Да, это отличная идея и мы хотим в итоге к этому прийти, работаем в этом направлении

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

Я обычно руководствуюсь не временем в пути как таковым, а движением в пути. То есть мне комфортнее ехать 12 минут, нежели проехать 4, а потом 7 минут тыркаться в пробке. Да, приеду в итоге быстрее на минуту, но в голове будет ощущение от торчания в пробке. Поэтому в большинстве своем игнорирую маршрут как таковой от навигатора и еду так, как знаю. Это конечно если знаю город (тут безусловно можно попасть на ремонт дороги, который навигатор учёл, а я не был в курсе, но такое редкость).

С помощью 2ГИС в качестве навигатора катаюсь уже больше 13-14 лет, нравится учет мелких улиц и дворовых проездов, например Яндекс упорно меня домой везёт по главной улице и потом дворами через 4 дома, причем там шлагбаум который мне никак не преодолеть, и такси он туда же вызывает (пешком идти 250 метров, вместо 30 если подать машину к моему же дому но с второстепенной улицы, причем с второстепенной можно уехать в три разных направления, а с главной только в одно с разворотом в 800 метрах), в итоге с такси стал вызывать их не к дому, а на точку на улице (писал в техподдержку, но они выслали мне какой-то гайд для модификации карты самостоятельно, даже не стал разбираться).

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

тут же по идее еще и расход топлива будет учитываться, ведь мелкие трогания и остановки кушают бензина больше чем постоянные 40-50 км/ч, летом это еще нагрев/перегрев двигателя (у меня была плавающая поломка, через 2 месяца только понял что она проявляется когда ползу в пробке, от перегрева вело пластиковый элемент).

Что касается поворотов (правда, пользуюсь яндексом) - если показывает альтернативный маршрут, но для которого надо поворачивать на загруженной улице, то смотрю, насколько меньше время по альтернативному маршруту. Если отличается меньше чем на 10-15 минут, то поворачивать не буду, поеду как ехал.

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

Помню в эпоху динозавров, когда навигатор был отдельным прибором, там была настройка быстрый путь/простой путь.

Я вот припоминаю, что было 4 варианта. Быстрый, короткий, простой и дешевый.

Большинство вычислений для вероятностей выполняется еще на этапе sql запроса, финальный процессинг уже на питоне

Т.е. сами пишете? Круто.

Hidden text

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

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

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

Даже если все пользователи будут знать о ремонте, у вас скорее всего есть лаг обработки данных порядка недели, поэтому весь этот период веса будут некорректно вести в ремонтирующуюся дорогу.

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

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

почему для построения нужен интернет? Я нахожу сильно за городом. А построить маршрут (хоть примерный) не могу, нет связи.

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

Имхо, при построении маршрута еще очень важно учитывать:

  • Количество светофоров - чем их меньше тем лучше

  • Количество поворотов, особенно левых.

Лично я снес ваш навигатор - очень стал раздражать в последнее время разными особенностями работы:

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

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

  • Когда сворачиваешь навигатор чтобы зайти в другое приложение вверху остаётся "несмахиваемое окно" навигатора, как правило дико мешающее. Точнее как несмахиваемое, я его смахиваю, а оно обратно вылезает через секунду.

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

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

Спасибо за фидбэк! Подумаем, чтобы убрать эту штуку.

Спасибо за статью. Теперь логика раьоты стала понятней. Есть несколько вопросов:

  1. А вводятся ли дополнительные штрафы на ребра графа и переходы между ребрами не из статистики а из внешних источников (информация от пользователей о ДТП, от дорожных служб о ремонтах, и.т.п.)?

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

  1. Если в данных есть перекрытие дороги, то да, будет большой штраф на это.

  2. Думаем о таком в обозримой перспективе.

  1. Что у вас в центре Москвы? У конкурента очень плохо.

  2. Есть ли предупреждение о превышении скорости? Вот чтобы постоянно трещало, как дозиметр. Конкурент отключил этот функционал в рамках преступного сговора

  1. В центре Москвы сейчас все источники данных по скоростям (пробкам) как правило с плохой accuracy — соответственно, их отбрасываем. В итоге строим скорости на рёбрах на основе малого количества данных, что, бывает, может не совсем совпадать с реальностью.

  2. Да, настраивается интервал превышения, на котором навигатор будет делать «пи-би-бип».

Спасибо за статью. Хочу прокомментировать:

Я отказалась от использования навигаторов вообще, так как оптимальность маршрута определяется временем поездки. Мой регулярный маршрут дом-работа по навигатору можно проехать за 30-40 минут (~10 км) и то, если повезет. Но это будет пробка, которая начинается возле дома и будет продолжаться до самого офиса. Я предпочитаю ехать по маршруту в 2,5 раза длинее (~25км) и продолжительностью 50-60 минут, зато весь путь у меня нет ни одного затора, и как правило попадаю в зеленую полосу по всем светофорам. Навигатор мне никогда маршрут так не построит, если не устанавливать промежуточные точки.

А с промежуточными точками тоже не все так просто. Если маршрут дом-работа - это хорошо известный мне маршрут и по нему езжу 22 дня в месяц, то при поездке куда-то в незнакомое место тоже предпочитаю выстраивать маршрут по "зеленым" дорогам, вместо широких дорог с заторами на светофорах. И вот тут промежуточные точки становятся злом. Если по какой-то причине не смогла попасть туда, где стояла промежуточная точка (все что угодно видимое глазами, но незаметное навигатору - стоит газель разгружается перегородив дорогу, произошло дтп и начинает собираться затор, просто просохатила полосу в которой нужно было находиться и не смогла проехать в направлении точки) то маршрут будет перестроен так, чтобы к этой точке все-таки попасть. И это очень неудобно.

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

Согласна с проблемой промежуточных точек..

У меня вопрос к 2GIS не совсем по теме статьи: долгие оды я пытаюсь сменить Citymapper на что-то ещё, но только этот сервис позволяет нормальную навигацию на ОТ. Яндекс я уже полностью похоронила, поскольку за 10 лет мне так и не удалось от них добиться банальной вещи: оповещения о необходимости выходить. Ситуация усугубляется тем, что в России всё очень плохо с открытостью данных и вариант создания своего сервиса отсутствует полностью. Потому вопрос: может у 2ГИС хоть что-то получше в этой области?

Эх.
На iOS у нас реализован «будильник» для маршрутов ОТ. Если включить, будет предупреждать пушем/вибрацией о необходимости выходить.
В Android не сделали в своё время, а теперь всё некогда. Доберёмся!

Печально. Особенно с учётом того, что в регионах распространения 2ГИС наиболее популярен Android. Ну чтоже, буду и дальше держать OSMAnd про запас и пользоваться Citymapper и Яндекс (безвыходно для РФ).

Sign up to leave a comment.