OpenStreetMap

Написал в чате OSM большой развёрнутый ответ на вопрос “Есть база с большим числом GPX-треков от джиперских походов 4х4, на карте OpenStreetMap этих дорог нет, как их туда внести?”

(…Я просто вчера весь день как раз дорожную сеть по GPX-трекам обновлял, так что тема мне очень близка.) Продублирую свой ответ сюда.


“По поводу обрисовки чужих джиперских GPX-треков возникает сразу несколько моментов.

1) Чьи это треки и даёт ли владелец треков согласие на их внесение на карту. Это не всегда так, например сайт “Родники Крыма” прямо возражает против такого.

2) У треков не очень высокая точность, иногда отклонение от реальности может достигать до 50м, поэтому рекомендуется трассировать дорогу по пучку треков, усредняя, а то и подглядывая на спутниковое фото-подложку в тех местах, где дорога просматривается.

3) С подложкой тоже не всё просто: оно может быть не очень точно привязана, смещение объектов на спутниковом снимке относительно к реальному может быть до 15м (обычно не больше 5) и это смещение плавает от места к месту, обычно актуальность измеренного смещения распространяется на 2-3км. Так что если мы хотим ориентироваться на подложку, надо сначала выровнять её. Есть несколько способов это сделать, лично я предпочитаю выравнивать по карте “тепловых треков” Strava, где выкладывается сумма всех тренировок, загруженных велосипедистами на сайт strava.com (их сотни близ райцентров и единицы поодаль, так что полезность метода зависит от конкретного места) https://wiki.openstreetmap.org/wiki/RU:Strava

4) Если вы только начинаете рисовать карту и никогда не занимались этим раньше, было бы вообще неплохо, чтобы вы себе представляли, что это такое и как она устроена внутри. https://medium.com/@pavgavrilov/a9e0ae6f508c

5) Если всё окей и мы можем обрисовывать трек на карту, то есть два способа. Можно воспользоваться встроенным в сайт openstreetmap.org онлайн-редактором (кнопка “редактировать”). Это сравнительно простой редактор для освоения, но он не умеет прямо конвертировать треки в линии на карте, просто отображает трек поверх рисуемой карты, так что можно его обвести вручную. Чтобы такое сделать, надо открыть онлайн-редактор, и мышкой перетянуть gpx-файл в окно редактора. Минусы такого способа - что онлайн-редактор не очень хорошо умеет работать со смещениями подложки (её надо каждый раз сдвигать вручную, неудобным способом, и нельзя воспользоваться смещениями, которые вычислили другие пользователи). Кроме того, считается, что онлайн-редактор менее удобен и менее надёжен, так что для задач сложнее “отрисовать одну тропинку” его не рекомендуют.

6) Второй способ - это установить себе на компьютер редактор JOSM. Он работает по другому - ты загружаешь кусочек карты, работаешь с ним, потом отправляешь свои изменения/дополнения обратно в общую базу. После этого они попадают в очередь на отрисовку на карте OpenStreetMap, а так же становятся доступны для загрузки/доработки другими пользователями. JOSM на сегодня самый продвинутый вариант рисования карты, количество функций намного превышает доступное онлайн-редактору, типовые действия можно автоматизировать и вынести на панель меню и/или на горячие клавиши. Есть сложные инструменты для аккуратного рисования, которых в принципе нет в онлайн-редакторе. Но после онлайн-редактора надо к оффлайн приноровиться, там на уровне базовых вещей есть отличия, вроде разделения “обводим выбираемое левой клавишей, перетаскиваем карту правой”, “отдельно рисуем, отдельно исправляем” и “в режиме исправления линии сами не приклеиваются друг к другу, это отдельное сознательное действие”, после перехода с онлайн-редактора на JOSM к этим вещам надо приноровиться, поначалу они бесят. Из плюсов - мы получаем удобную работу с выравниванием подложек, возможность отметить брод одним щелчком мыши, доступ к инструментам типа “поправить трассировку линии”, “удалить из линии лишние точки” и главное для нас - к инструменту, который напрямую конвертирует GPX-файл в линию на карте.

7) С загрузкой GPX-треков на карту вообще всё не просто. Начать с того, что если мы где-то гуляли, у нас вместо линии, по которой мы прошли, получается линия со “звёздочками” в местах, где мы стояли. Именно по этой причине прямая загрузка треков считается некомильфо (загружающий должен очень чётко понимать разницу между треком и дорогой) и на все подобные действия JOSM будет страшно ругаться. Неплохо бы “звёздочки” вычистить заранее. Либо в каком-то редакторе треков, либо пропустить через какую-нибудь автоматическую чистилку, например через программу GPS Track Editor (там есть инструмент для автоматической чистки звёздочек). Даже загружая уже почищенный трек, хорошо бы удалить из него лишние точки (прямая линия километровой длины, на которой через каждые 15 метров стоит точка, ничем не хуже прямой линии километровой длины, у которой точки только на концах). Впрочем, на этапе конвертации трека JOSM предложит вызвать инструмент удаления лишних точек сам, так что не надо особо забивать этим голову.

8) Даже загрузив почищенный трек и сконвертировав его в дорогу (точнее, в линию на карте, в дорогу эта линия превратится только после того, как вы добавите этой линии соответствующие тэги), вам придётся провести с ним работу: найти участки, где он проходит по местам где нет дорог, обрезать эти участки и удалить остальное (мы же не хотим, чтобы создавалась дорога, дублирующая уже существующую дорожную сеть?). После того, как у нас останутся только те куски линии, которые надо вносить на карту, надо их привязать концами к уже существующей дорожной сети, а так же добавить перекрёстки со всеми поперечными дорогами. Это очень важный момент, потому что на карте OpenStreetMap дороги, в отличие от большинства других объектов - это не только картинка на карте, но и связная сеть, по которой разные алгоритмы маршрутизации строят потом маршрут из точки А в точку Б. (Правда, если говорить о сайтах для прокладки маршрутов, они обычно обновляют у себя данные раз в 1-2 недели, поэтому нарисованное на карте сегодня, не заработает в плане прокладки маршрута даже завтра; обычно для оперативной проверки маршрутизации используют приложение osmand с оплаченной подпиской на ежечасные обновления карт - оно позволяет посмотреть, как отразилось отрисованное на прокладываемых маршрутах уже в течение одного-полутора часов.)

9) Вам придётся выучить систему тэгирования дорог. Там есть свои подводные камни. Например, главный тэг дороги (определяющий, как она выглядит на карте) - вообще не зависит от того, как она выглядит, и зависит только от того, как дорога используется. Это обозначение иерархии дороги. Является ли она транзитным шоссе? Является ли она единственной подъездной дорогой к деревне? (тогда не ниже unclassified) Единственной дорогой к ферме? (тогда не ниже service) Или только для лесохозяйственной/сельскохозяйственной техники? (только тогда это track) По внешнем виду это часто не определить, надо смотреть по карте, откуда куда дорога идёт и насколько хорошо оборудована. Самым ярким примером неочевидности обозначения и внешнего вида, на котором учат начинающих маперов, является федеральная трасса “Лена” (“класс=федеральная, покрытие=грязь”). https://www.openstreetmap.org/user/Diomas/diary/13896

Так что приготовьтесь, что можно сэкономить на обрисовке трека, но всё равно придётся глазами проглядывать вносимое на карту и много там с ним возиться. Ещё учтите, что придётся освоить новый инструмент, JOSM, по первости непритязательно выглядящий, но зато очень могучий. Зато результат будет великолепен - будет крутая сеть дорог, по которой можно будет автоматически проложить маршрут.

Конкретику работы с треками в JOSM не привожу, но, видимо, надо будет потом сделать обучающее видео. Для начала поищите в интернете, возможно описание уже есть.”

Discussion

Log in to leave a comment