Как стать автором
Обновить

Комментарии 46

Вот бы еще маршрут можно было бы построить для велосипедов , который не превышал бы заданного уклона - ) Гораздо легче ехать полчаса в горку 7%, чем пытаться забраться в лоб на 18%.

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

Видно, что мы не красим те места, в которых никто не ездит (например, море :)

А зимой?)

Касаемо велонавигатора - для катающихся за городом рекомендую попробовать OsmAnd. В городах же 2gis лучшие.

Позанудствую - osmand - это просто враппер для Open Street Map (OSM) под Android (AND). Юзайте osm с любым враппером ;)

Назвать OsmAnd "просто враппером", это конечно мощно с вашей стороны.

Честно я не встречал более богатого на функционал картографического приложения для android, чем OsmAnd, даже среди коммерческих приложений.

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

основная полезность карт в их точности

Так я не про карты, а про приложения для пользования ими. Карту можно и напечатать)

Зимой обычно высота уровня моря примерно как раз и равна высоте уровня моря. Тоже можно не красить.

Я в т.ч. не про море, а про озера и реки. Даже в крупных городах зимой по ним протаптывают тропы, по которым вполне можно ездить на горном велосипеде.

В OSM эти тропы помечены соответствующим тегом.

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

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

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

Спасибо за столько конструктивных предложений! Про минимум левых поворотов - прям в сердечко:) Передам Ваши предложения в команду, которая занимается построением маршрутов

А они сами катаются хоть?

Да, катаемся.

Пользователи 2ГИС, используя навигатор, присылают нам свои GPS-координаты.

То есть для каждого пользователя 2ГИС на сервер постоянно пишется его «обезличенный» трек?? А если я не использую режим навигатора? Если не включаю отображение пробок?

Всё бы ничего, но во Владивостоке одна велодорожка и на ней нет перепад высот. А если ездить по реальным маршрутам - перепадов всё равно не избежать. Если тебе нужно добраться с одной сопки до другой - прямой(кратчайший) путь и будет путём с минимальными перепадами.

Отличная статья, интересные решения, приятно читается, спасибо, пишите еще :)

Да, точно!

Я читал Хабр с чужого компа, и специально залогинился, чтобы проплюсовать автора. Очень прозрачно, на понятном для всех примере изложены идеи, с которыми надо быть "на ты" при обработке реальных данных: сглаживание, фильтрация выбросов, и т.д. Но главное спасибо все-таки за так называемые "чудеса": двухмодальность распределения и "проблему мостов". Многие учебные курсы либо умалчивают о том, что в практической работе такие "чудеса" могут (и встречаются!) на каждом углу, либо упоминают об этом вскользь, так как считается, что подобная "проза жизни" недостойна внимания высокой теории. А ведь это на самом деле чуть ли не главное, чему надо учить всех, кто перешагнул самый-самый базовый уровень! Я много лет работаю с геофизическими временными рядами, и могу утверждать, что подобные "чудеса" - почти наверняка могут встретиться в любом, даже самом идеальном (казалось бы!) наборе данных. Нам-то понятно, что нет никакого смысла заниматься глубокомысленным анализом формальных статистик, пока данные не проверены на наличие аномалий такого рода. А вот в учебных курсах об этом пишут и говорят гораздо меньше, чем стоило бы. На этом фоне статья - это просто луч света в подземном царстве ;-) Так как в ней ненавязчиво, но очень доходчиво описана как рутинность таких проблем, так и методология работы с ними:

1) обнаружить "странный" эффект;
2) проанализировать (систематизировать);
3) проинтерпретировать (докопаться до причин);
4) учесть или исправить.

Благодаря этому статья о решении конкретной задачи фактически превратилась в прекрасное наглядное пособие, которое дополнит любой учебник по анализу данных!

Мое восхищение автору ;-)

Спасибо! Да, в этой задаче (да как и в любой другой:)) было столько такой "рутины", что об этом было просто невозможно молчать:)

Спасибо!

А вы не думали получать данные с пульсометра?
И вам информация(если я еду медленно, на высоком пульсе, значит еду в горку)
И мне (нужно приложение которое одновременно и маршрут покажет и пульс)

И мощностномер ещё

мощностномер реально редкая штука и обычно вроде не к смартфонам их цепляют. А фитнес браслеты распространены.

Проблема в том, что они отдают данные в свое фирменное приложение, а за его пределами получить их очень сложно

Интересно, вот только заметил одно, нет:

  • спуск

  • Крутой спуск

вместо этого - ровный участок, проверил это на обратном маршруте где был подъем и крутой подъем.

Извините, но не "выезжаем", а "по коням".

А так, спасибо за эту крутую функцию!

Статья огонь! Приятно видеть, что навигатор догоняет лучшие мировые решения и перегоняет их.

(Однако идея вставлять в статью панорамы от главного конкурента - не самая лучшая, надеюсь, это троллинг)

Спасибо!

Да почему, панорамы не троллинг:) У нас нет такой фичи, а для "погружения" в конкретное место это отличный инструмент. В статье хотелось в первую очередь сделать более понятно для читателя. Ну и не думаю, что эффект от статьи может хоть как-то конкурировать с рекламными бюджетами Яндекса;)

Да, вполне, спасибо. Интересно как тогда в таком случае интерпретировать эффект с повышением accuracy ?

А можно списочек телефонов с хорошией/плохой точностью GNSS?

Какие классные ваши внутренние скриншоты с облаком точек! Прямо как в ушедшей Strava, помогало найти секретные тропы и дорожки, которых нет ни на одних картах.

Хорошо бы увидеть список "плохих" смартфонов с gps, с разбивкой по кластерам. Чтобы знать, что не покупать.

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

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

У яндекса кстати есть такое облако в "народных картах".

Будет очень классно если это будет и у 2гис.

Спасибо, узнал что облако точек есть у Ядекса, очень классно выглядит! Особенно необычно, что есть даже слой вектора направления. Единственное, на крупном увеличении точки незаметны.

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

Да, описка. Исправил. Спасибо!

Я слышал, что погрешность определения высоты у бытовых GPS приемников может быть на порядок больше погрешности определения горизонтальных координат. Отчасти это связано с физикой, отчасти с двойным назначением самой системы. Вот тут например https://support.garmin.ru/support/solutions/articles/26000045353 пишут, что +-120 метров это в принципе нормально. А какой точности вы собираетесь достичь используя описанную методику?

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

Если погрешность в пару метров с точностью до известной константы, получается ваши самокатчики на пару с алгоритмом способны заменить дорогущую топосьемку (или у методики для такого применения есть какие-то принципиальные ограничения)?

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

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

Маршрут строит довольно "необычно", с точки зрения велосипедиста это интересная фича, кататься по разным улицам. Но, меня малость удивило, что приложение, при привязки к ВК, умудрилось подтянуть УДАЛЁННУЮ несколько лет назад фотогфию....да и данные о подписках и подписчиках тоже очень старые.

У Москва и Новосибирска примерно одна и та же широта?

Как считается расстояние? Только по горизонтали или изменение высоты тоже учитывается? Как GPS это обрабатывает?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий