Всем приветик! Идея написать подобный пост у меня была довольно давно, и вот собрался кажется. В этом посте я хочу развернуто вам рассказать про проект OpenStreetMap и как именно вы своими руками можете участвовать в развитии этого проекта и улучшать карту мира, данными из которой будут пользоваться множество сервисов и многие миллионы людей по всему свету. И конечно, как это все правильно делать и какими сервисами пользоваться, если вы решите принять участие или просто попробовать :)
Про себя: я Дима, активный контрибютор в OSM под ником dpolovinkin с 6500+ добавленных changeset'ов (наборов изменений) на момент написания поста, по профессии дата инженер работающий большую часть на удаленке, а так же путешественник с 74 посещенными странами мира (на текущий момент). В OSM я вкатился в мае 23ого года, и с тех пор регулярно в свободное время занимаюсь маппингом различных мест - и куда приезжаю в путешествиях, и просто тех, где вижу что можно разное улучшать - даже там, где никогда не был.
При этом важно упомянуть, что даже с +- ощутимым опытом маппинга OSM - я не работаю в картографической области, и скорее всего у меня могут быть недосказанности или неточности, которые будут видны спецам в этом деле (и более опытным мапперам), так шо буду рад если потом поправите что-то! :)
Honorable mention: единственный пост про OSM что я встречал/нашел в Клубе это "Как я перестал бояться и полюбил рисовать OpenStreetMap на ходу" от Никиты Ушакова, что неплохо и интересно рассказывает про улучшение OSM с телефона с помощью разных приложений. Но в моем понимании, тк пост направлен именно на рассказ про маппинг на мобильных приложениях, он не раскрывает темы серьезного улучшения карты, полноценных инструментов, best-practices, и довольно поверхностно проходится про сам OSM. А вот про это все я уже расскажу в этом постике)
Чтож, давайте начнем с того, какие вообще бывают картографические сервисы и в чем там вообще разница!
Коммерческие карты
Все мы постоянно юзаем различные карты в нашей жизни, и большинство таких популярных карт (и их приложений) - это так называемые "коммерческие". Это значит, что их разрабатывают и поддерживают разные крупные компании и с их помощью зарабатывают деньги. Примеры самых известных из таких что вспоминаются - Google Maps, Apple Maps, Яндекс Карты, 2GIS, Naver Map (в Корее), Baidu Maps (в Китае). Часто они очень полезны, имеют немаленькие ресурсы для разработки, имеют кучу инфы по заведениям и бизнесам, и особенно если они более сфокусированы на определенной стране - могут быть очень детальными и проработанными.
Но основная их проблема в том, что вы в общем то сильно не можете их улучшать, если увидели, что какие то данные отсутствуют или просто неправильные. Практически единственное, что вы можете там поменять - это сделать "заявку" на фикс данных в каком то заведении или добавить новое, но глобально все существенные изменения как добавления зданий, дорог, местности и кучи всего другого - для вас закрыты, только разрабы в этой компании могут это улучшать.
Народная Карта Яндекса
Единственное приятное исключение, что я встречал и про которое стоит упомянуть - это Народная Карта у Яндекс Карт - где есть интерфейс с функционалом добавления объектов в Яндекс Карту, что можно назвать этаким "OSM на минималках". Я не сильно пользовался и не очень знаю, как там по факту работает процесс добавления объектов в саму карту, кто их ревьюит и так далее - но как факт это довольно круто, что Яндекс придумал такое!
OpenStreetMap
OpenStreetMap (что чаще просто называют OSM) - это уже совсем другая штука по сравнению с привычными коммерческими картами и по определению с Википедии это "некоммерческий веб-картографический проект по созданию силами сообщества участников — пользователей Интернета подробной свободной и бесплатной географической карты мира". Главное что надо понимать про OSM - что это база картографических данных по всему миру, которую может улучшать и изменять по факту любой человек - и ваше изменение автоматически попадает в общую базу/карту.
И вот эти данные используются кучей различных сервисов и приложений, многими из которых вы можете регулярно пользоваться, но даже не знать, что вы используете данные OSM. Чаще всего источник данных или провайдер карт написан внизу карты и в случае с OSM там обычно написано "OpenStreetMap contributors".
Известные приложения и сервисы базирующиеся на данных OSM если просто перечислить некоторые: Organic Maps, MAPS ME, Komoot, AllTrails, OSMAnd, Strava, Mapy, Pokemon GO, Wikimedia, Navit. В общем довольно много всякого)
Плюсы использования карт на OSM
Я достаточно много путешествую, и лично у меня сложился подход, что везде по миру я для навигации и всех закладок использую Organic Maps - по мне самая приятное, быстрое и минималистичное приложение для карт, и например Гугл картами пользуюсь уже в основном тогда, когда мне надо найти рестораны или другие заведения с подробной инфой про них и когда надо строить навигацию в общественном транспорте.
Главный ништяк использования OSM это то, что из-за того, что в общем-то любой человек может улучшать там карту - данные часто намного точнее и подробнее чем в коммерческих картах. И хоть в больших городах оно может замечаться довольно слабо (особенно сравнивая с местными провайдерами карт), но вот если вы едете в места менее популярные и особенно куда-то на природу - это начинает быть сильно заметно. Это и есть причина, почему например для хайкинга люди не используют Google Maps, а специализированные приложения которые (знаете вы или нет) - базирются на OSM.
Вот просто например сравнение территории и тропинок в каком то местечке в Швейцарии
Так же во многих странах и городах есть свои чаты и комьюнити мапперов, которые обсуждают как улучшать местную карту, это довольно прикольно!
Но для меня главный ништяк от улучшения карты в OSM - это ощущение, что ты делаешь что-то полезное для многих других людей, которым будет проще использовать карту, строить навигацию или искать что либо. Это прямо ништячно, в общем то как open source работа чтоли)
Как пример того, что недавно например улучшил за может всего-то часик или поменьше - полуостров около Каша в Турции:
Минусы карт на OSM
Но вот определенные минусы приложений на OSM так же есть, перечислю те, что вспоминаются.
Первое, и наверное самое основное - отсутствие полноценного поиска по заведениям и отзывам о них, как и построения навигации на общественном транспорте. Про заведения достаточно понятно, вы можете добавить точку места и всю инфу про него - но функционала как у Гугла или Яндекса там просто не будет. А про общественный транспорт - можно это все размапить и сделать сущности для этого, но мне кажется это все как то на тоненького и даже не уверен, что можно норм пользоваться, в отличие от других карт.
Второе - если место не популярное и никто над ним не работал - там просто ничего не будет. Огромное количество поселков в менее популярных странах просто не размаплено, например. Да и далеко ходить не нужно - я сейчас в Турции, и даже в центре Антальи многие здания просто отсутствовали и их никто не маппил (пока я туда не приехал хехе). А на гугле оно как-то, но будет.
И третье - обратная сторона того, что любой может добавлять объекты и они сразу попадают в "прод". Глобально ничего не мешает если захочется - начать добавлять мусорную или неправильную инфу на карту, и если место не оч популярное - это в теории может достаточно долго пролежать и никто не заметит. Но to be fair - откровенная порча карты (что называется вандализм) встречается нечасто, и на деле из-за объема людей что занимаются маппингом и наличия специализированных инструментов, оно все равно находится достаточно быстро. Чаще есть проблема что данные добавляют, они как бы правильные - но не совсем точные..)
Как маппить?
Итак, как же в общем начать улучшать карту? Есть целый зоопарк разных инструментов и специальных тулзов для этого всего, перечислю самые основные и популярные. Но сначала об типах того, что вы можете добавлять на карту.
Типы объектов
Все объекты что вы можете добавлять на карту делятся на три типа:
- Точки / Points: все что состоит из одной точки и может стоять отдельно. Заведения, деревья, точки адресов (если не включены в тэги самого здания, об этом попозже), велопарковки, скамейки, мусорные баки, фонари, ну и так далее.
- Линии / Lines: Что-то линейное. В основном это, конечно же, любые дороги, но сюда же входят и реки, стены, ряды деревьев и многое другое. Линии состоят из соединенных точек, и в общем ничего не мешает каждую точку в линии маркировать как "что-то".
- Зоны / Areas: Ну, любые зоны! Здания, использование территории (жилое, коммерческое, производственное), водяные территории, острова, ну вообще куча всего, и в основном на карту идет добавление именно зон.
В стороне стоит еще зверь под названием мультиполигон (описание на OSM Wiki), это что-то вроде сложных по геометрии зон которые создаются объединением линий, и используются для построения разных сложных приколюх (или достаточно обычных зон, если маппер doesn't know any better так сказать хах). Я оч редко использовал этот тип объектов и чаще всего он не сдался вообще)))
Теги
Ключевая штука в OSM, задающая характеристику объекта, что вы создаете. Тегов есть просто бесчисленное множество, и именно они задают, будет ли зона что вы нарисовали зданием (и каким именно зданием), водной территорией или жилой зоной. На одну и ту же зону можно вешать много тегов, и все характеристики объекта - это всегда именно теги. По умолчанию когда вы "нарисовали" объект - вы выбираете, что это именно такое будет - и ему проставляются нужные теги. Руками их писать обычно не нужно)
Changesets и комменты
Changeset - это набор изменений что вы загружаете в OSM после того как что-либо наизменяли, в общем как commit в репозиторий. В нем может быть от одного измененного объекта, до в общем то сотен. Никакого правильного подхода по кол-ву измененных объектов в changeset нет, разве что мб не супер оптимально если их слишком много. Главное даже наверное - это стараться чтобы то, что вы делаете в одном changeset - было довольно однотипным, чтобы можно было написать норм коммент про то, что вы сделали.
А про комменты - каждый набор изменений должен сопровождаться комментарием, и так же как и в кодинге - комментарий должен быть осмысленным и говорить что именно было сделано. Bad practice писать комменты в духе "no comments", "stuff" или "map improvement", если злоупотреблять, можно и блок словить если на это пожалуются. Подробнее про это на Вики.
Так же к любому changeset можно оставлять комментарии и видеть что именно там было изменено и в каком количестве.
Это в общем то основное что надо знать именно из ключевых концепциях. Теперь можно вот пройтись по редакторам.
iD Editor (сам сайт OSM)
Основной интерфейс для маппинга на самом сайте OSM, именно с компьютера. Регистрируетесь, нажимаете кнопку Edit - и поехали) Функционал достаточно мощный, но не сложный, и для базового маппинга чаще всего отлично подходит. Наверное самый простой способ улучшать карту без лишней запары.
Из вещей что нужно знать - есть разные шорткаты для быстрой работы. Их много, но из самых нужных:
- 1/2/3 для создания точки/линии/зоны.
- Очень часто полезно (и даже нужно) юзать клавишу Q для "квадратизации" зоны что вы создали, чтобы например созданное здание не было перекошено
- R - для поворота вокруг оси
- D - чтобы рассоединить объект от другого, если вы смерджили их точки
RapID Editor
https://rapideditor.org/
Похож на iD, но имеет встроенный функционал для использования AI что смотрит на карту и подсказывает, где можно добавить здания и дороги одним кликом кнопки A. Вроде бы проект Facebook. Часто оч мощная тема для оч быстрого маппинга кучи зданий, но надо быть очень (!) аккуратным, чтобы добавлять именно то, что есть на спутнике, часто может предлагать довольно сильную пургу если спутник плохой, а если добавите - потом кому то править придется. Но потенциально Rapid, особенно когда спутник хорош и модель норм определяет здания - способ очень быстро маппить целые города)) У меня бывало когда я за полчаса добавлял 1000-1500 зданий в некоторых городах с помощью Рапида.
Из особенностей - в одном changeset можно иметь только 50 AI зданий, есть возможность зумить просто мышкой (в iD такого нет если не зажимать Option/Alt, вроде как), и нужно меньше зумить чтобы начали грузиться объекты.
JOSM
https://josm.openstreetmap.de/
Тула для тех, кто погрузился в тему и хочет еще больше мощи в картографии - отдельное десктопное приложение на комьютер написаное на Джаве. Мега мощное, есть куча плагинов (я больше всего юзаю building_tools, что позволяет за пару кликов добавлять прямоугольное здание), но не сильно user friendly, и для базового маппинга может и не так подходить. Но это рил более advanced тема как мне кажется.
Мобильные приложения
Про них достаточно хорошо рассказал Никита в "Как я перестал бояться и полюбил рисовать OpenStreetMap на ходу", так что не буду повторяться). Я если и использую что-то, то только EveryDoor в местах где местные карты плохи в разметке заведений. И иногда через OrganicMaps тоже можно точки добавлять, если чтото по мелочи совсем.
Разве что упомянуть, что маппинг с телефона всегда нацелен на микромаппинг - заведения, точки, мелкие фиксы. Для большого и серьезного улучшения карты - всегда надо юзать компьютер.
High-value mapping
Тут скорее хотел бы просто поделиться подходом, к которому я пришел за время улучшения OSM - это что стоит по возможности фокусироваться на самых фундаментальных улучшениях карты, и только потом - на микромаппинге (то есть самой мелкой разметке на местности). Это скорее просто мое мнение, не прямо что-то фактически правильное, но у меня сильное ощущение, что когда ты находишь место где может быть есть только дороги, а зданий нет, или может быть места, где даже и дороги нормально не нарисованы - работа над улучшением именно таких мест и добавлением самых базовых структур как дороги и здания кажется намного более приносящими пользу общему состоянию карты, чем разметка каждой скамейки, дерева или кафешки в городе, где все уже отлично размапленно. Не говоря уже о том, что любые заведения часто недолговечны, и сколько я видел POI с кафешками добавленными года назад, которых уже нет и на это никто внимание не обращает...
И я даже не говорю, про какие нибудь Габоны или мелкие острова в Тихом Океане - в куче достаточно развитых стран есть множество городов, над которыми просто нормально никто не работал, и там картами можно пользоваться ну.. с натяжкой. Что говорить про менее популярные места - добавление инфы туда на карту быть может будет иметь реальную ощутимую пользу людям что там живут.
Конечно, я сам улучшаю места куда приезжаю сам, даже если оно уже достаточно хорошо, и размапить детальнейше свой район где ты живешь всегда приятно, но просто если только на этом фокусироваться - как будто толку для состояния карты будет меньше. Ну это так, просто мысль на подумать :)
Полезные сайты
Просто перечислить основные дополнительные ресурсы, которые иногда могут облегчать маппинг и всякое с этим связано ну и просто давать доп инфу, их оч много (даже вот чисто от этого разработчика Pascal Neis, но вот некоторые которыми я сам пользуюсь иногда
- How did you contribute - подробная инфографика по вашему маппингу и разная статистика
- Your OSM Heatmap - хитмап ваших изменений на карте мира
- OSM Discussion Comments - трекинг ваших комментов в разных changeset'ах в OSM, просто ссылки на это чето не нахожу, как пример комменты одного из админов OSM
- OSMCha - сайт для фильтрации по changeset'ам смотреть что где в мире было удалено или добавлено, мощная штука с кучей фильтров, сам до конца не разобрался, но иногда юзал
- Streets GL - 3D визуализатор карты OSM
- Reverter - тула для отката всего changeset, юзается когда явно кто-то напортачил)) Юзать аккуратно и только если реально нужно)
Улучшать карту мира прикольно, даже вот думаю может было бы классно пойти когда нибудь дата инженером работать в картографические компании типо Mapbox, так сказать связать работу и хобби. Кто знает, может так и сложится когда нибудь :)
Ну а в общем вот как то так! Надеюсь было интересно и может кого даже подтолкнет попробовать что нибудь помаппить! :))
Спасибо за отличный пост! Сам маплю давно (копнул в историю - оказалось, первая правка была ещё в 2008, когда впервые узнал об OSM и решил потыкать, но систематически - c 2017), так что нового ничего не узнал, но новичков должно привлечь!
Несколько ремарок и попутных мыслей:
Еще там wikimapia есть