Карта врёт. Я полгода выяснял, где именно — и теперь не доверяю ни одной

Почему две карты ведут вас разными путями, и какая из них права
Есть такой момент в походе: вы стоите на развилке, смотрите в телефон, и телефон уверенно показывает тропу вправо. А вправо — склон, кусты и ничего похожего на тропу.
Я попадал в такое несколько раз, пока не начал делать свой сервис для планирования маршрутов. И тогда выяснилось обидное: карта в этот момент не ошибалась. Она честно показывала то, что в ней записано. Просто записанное и реальность — это две разные вещи, и никто вам об этом не говорит.
Дальше — несколько историй про то, где именно карты расходятся с жизнью. Без кода, обещаю.
История первая: набор высоты, которого никто не знает
Начнём с самого обидного, потому что это цифра, на которую все смотрят.
Вы открываете маршрут, видите «набор высоты: 1200 метров» и прикидываете, насколько будет тяжело. Цифра выглядит как факт. Знаете, что такое набор высоты на самом деле? Это оценка. И зависит она от того, по каким данным её посчитали.
У меня был один и тот же трек, одна и та же линия на карте. Я посчитал набор двумя способами:
453 метра;
344 метра.
Сто метров разницы. Это примерно тридцатиэтажный дом, который то ли есть на вашем пути, то ли нет.
Откуда берётся расхождение? Данные о высотах — это не бесконечно подробная модель земли, а сетка точек. Где-то точка на каждые 27 метров, где-то на каждые 54. Между точками высота угадывается. И когда ваша тропа идёт по склону, то проходит она где-то между узлами этой сетки — а значит, её профиль слегка выдуман. Не злонамеренно, просто иначе никак.
Дальше хуже. Любые данные о рельефе слегка дрожат — то есть содержат мелкий шум. И если честно сложить все подъёмчики подряд, включая выдуманные, получится красивая большая цифра. Маршрут «наберёт» лишние сотни метров просто потому, что цифры рядом стоящих точек немного пляшут.
Поэтому все сервисы профиль сглаживают. Все по-своему. И поэтому ваш трек в одном приложении — 1200 метров набора, а в другом — 1400. Никто не врёт. Просто это как спросить у четырёх человек, сколько весит мешок: одинаковых ответов не будет, и ни один не будет окончательной истиной.
Что с этим делать: смотреть не на цифру, а на картинку профиля. Один затяжной подъём на 1200 и пять коротких злых на те же 1200 — это два разных дня вашей жизни, а число у них одинаковое.
История вторая: тропа, которая есть, но оборвана
Самая массовая карта мира — OpenStreetMap, её рисуют обычные люди. Это прекрасно: ни одна компания не стала бы обводить тропинки в Хибинах, а живой человек, который там ходил, взял и обвёл.
Но человек рисует так, как ему удобно. Прошёл участок — обвёл участок. И получается, что тропа на карте существует кусками.
Я столкнулся с этим, когда делал прокладку маршрута по тропам. Примерно треть маршрутов не строилась вовсе. Я пошёл искать ошибку в алгоритме — алгоритм был совершенно здоров.
Я посмотрел на данные одного района внимательнее. Тропы там разбиты на 26 несвязанных кусков. Один большой, на 7808 точек — это настоящая сеть. А рядом с ним — обрывки: кусок на тринадцать точек, кусок на восемь, кусок на три. Человек обвёл начало подъёма и бросил.
И выглядит это на экране совершенно нормально. Вы видите линию тропы, ставите на неё точку старта — а она попала на обрывок, который ни с чем не соединён. Между вашим стартом и финишем пути нет и быть не может. Математически это как поставить одну ногу на остров.
Мне пришлось учить программу находить главную сеть и привязываться только к ней. Стало строиться всё.
Что с этим делать: если маршрут вдруг «не строится» там, где тропа явно есть — скорее всего, дело не в вас. Подвиньте точку на сотню метров вдоль тропы.
История третья: автобусная остановка, которой нет
Мне написал человек: в селе Родниковое в Крыму не показывается автобусная остановка. А она там есть, он на ней стоял.
Я полез чинить. Проверил пороги зумов — нормально. Проверил приоритеты значков — нашёл даже настоящую ошибку, из-за которой остановки уступали место стоянкам и бродам, и починил. Остановка не появилась.
Тогда я залез в сами данные, по координатам. В радиусе больше километра от этого места в OpenStreetMap нет ни одной отметки об остановке. Ни одной.
Остановка существует. По ней ходит автобус. Люди на ней стоят. Но в данных мира её нет, потому что никто её туда не внёс.
Это очень отрезвляющая штука. Мы привыкли, что карта — это слепок реальности. А карта — это слепок того, что кто-то потрудился записать. Между «этого нет на карте» и «этого нет» лежит пропасть, в которую регулярно проваливаются и люди, и алгоритмы.
Что с этим делать: если вы знаете место, которого на карте нет — его можно добавить самому, в OpenStreetMap это делается за пять минут и это навсегда. Половина троп в горах появилась ровно так.
История четвёртая: серые пятна
Однажды мне прислали два скриншота: Турция и Памир , На обоих — серое ничто с тонкими ниточками дорог. Вопрос был справедливый: ребята, вы забыли раскрасить?
Мы не забыли. Там нечего раскрашивать.
Я посчитал, сколько размеченных площадей (лес, луг, камни, вода, поля) попадает на один экран карты в разных местах:
где | объектов на экран |
|---|---|
Подмосковье | 362 |
Приэльбрусье | 198 |
Памир | 44 |
Турция, Анатолийское плоскогорье | 6 |
Якутия | 0 |
Ноль. Не «мало» — вообще ни одного.
Карта мира дорисована неравномерно, и это прямо коррелирует с тем, сколько там живёт людей с интернетом и свободным вечером. Подмосковье обвели со всех сторон. Якутию — нет. Это не чья-то халатность, это просто физика добровольного труда.
Что с этим делать: помнить, что пустая карта — это не обязательно пустая местность. Чаще наоборот: чем интереснее место, тем меньше шансов, что кто-то дошёл до него с мышкой.
История пятая: два маршрута, обе карты правы
Самое интересное началось, когда я поставил себе второй движок для прокладки маршрутов и прогнал через оба один и тот же участок.
Два пути. Длина одинаковая — 7,70 километра у первого, 7,69 у второго. А линии на карте расходятся до шестисот метров. Это не «чуть-чуть по-разному срезали», это два разных маршрута.
Я начал разбираться, кто прав, и ответ оказался интереснее, чем я ждал.
Первый движок вёл по одной размеченной тропе — той, у которой в данных есть номер маркированного маршрута. То есть по тропе, которую кто-то официально промаркировал.
Второй собирал путь из мозаики мелких тропинок. И среди них была одна, у которой прямо в названии написано: «требует начальных навыков скалолазания». Там же рядом помечено, что на велосипеде и на лошади туда нельзя.
Алгоритм этого не знал. Для него это просто линия, по которой можно идти, и она чуть короче. Он честно нашёл кратчайший путь — и повёл человека на скалы.
Был и обратный случай: на одном треке в Киргизии движок увёл меня в обход по долинам, построив 60 километров вместо 48. Тоже не ошибка — просто он посчитал, что перевал ему не нравится.
Что с этим делать: нарисованная линия — это мнение программы о том, как вам идти. Хорошая программа честно скажет, по какой тропе ведёт и какой она сложности. Но смотреть глазами всё равно придётся.
История шестая: родник, которого нет, хотя он есть
Я подключил к сервису базу родников, где люди оставляют отзывы. И это, пожалуй, самое ценное из всего, что в нём есть.
Потому что на карте родник — это точка. Точка либо есть, либо нет. А вот как выглядит честная запись живого человека про такой родник:
«Каптаж заполнен, но вода не течёт. Воду забирали из-под люка через сетчатый фильтр. Пили и сырую и кипячёную. Вода без привкусов.»
Вот это — информация. Точка на карте сказала бы вам «вода есть» и отправила бы к сухому каптажу. А человек рассказал, как именно там всё устроено, что надо залезть под люк и что воду можно пить.
Ни одна карта мира не умеет такого рассказать. Это знают только те, кто там был.
Так чему вообще можно верить
Короткий вывод, к которому я пришёл за эти месяцы.
Карта — это не фотография местности. Это чьё-то мнение о местности, записанное в прошлом. У каждого слоя своё качество и свой возраст. Дорога, скорее всего, есть. Тропа — вероятно, но может быть куском. Родник — был когда-то. Набор высоты — оценка с погрешностью в сотню метров. Пустое место — чаще всего просто не описанное место.
Это не значит, что картам не надо верить. Это значит, что надо знать, во что именно вы верите.
И ещё одно, совсем не техническое. Самое полезное, что есть в любом походном сервисе, — это не алгоритмы. Это несколько строк, которые написал человек, побывавший там до вас: «воду берите выше по ручью», «после дождя не суйтесь», «тропа теряется у каменной гряды, держите левее». Вот это стоит дороже всех спутников вместе взятых.
Если вы ходите — пишите такие вещи. Где угодно: в отзывах, в комментариях, в OpenStreetMap, в чате турклуба. Кто-то через год будет стоять на той самой развилке и смотреть в телефон.
Мой сервис живёт по адресу putemer.ru, я пользуюсь им в каждом походе — и всё равно иногда смотрю на тропу вправо и не нахожу её там.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.