15 заметок с тегом

ВНЕЗАПНО

Нет, карта

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

Как новичка не убеждай, а он видит: словом OpenStreetMap подписывают растровые карты, которые подобно гуглю и яндексу появляются на разных сайтах, и венце их openstreetmap.org. Эти карты умеют находить адреса и прокладывать маршруты. Правда, пробок нет, и слоя снимков, поэтому OSM явно проигрывает своим конкурентам. Зато работает в навителе, есть кнопка «редактировать», да и, говорят, карма чистится, если править эту карту, а не народные. Хорошее дело народным не назовут.

Через пару месяцев бороздения форума и вики заматеревший осмер понимает: карта — это вообще не про OSM. Мы наполняем некую абстрактную базу геоданных, которая может быть представлена в любом виде и использована столькими способами, что не всегда и поймёшь, гео это или нет. Есть набор абстрактных тегов, есть сомнительная точность на всех этапах, есть целостности физическая, геометрическая и логическая (и печальное отсутствие средств их сохранения). Опытный участник умеет пользоваться редактором Level0 и видит, откуда пошли все правила участия в проекте. И, конечно, при объяснении сути проекта новичкам он идёт напрямик, ошарашивая пунктом первым: «OpenStreetMap — это база геоданных».

Третья стадия — это когда осмер понимает, что всё это время он рисовал карту! То есть, конечно, это всё ещё база данных. Но чтобы понять, что нужно добавлять в эту базу, нужно понимать, что продукт OSM — это, как ни странно, карта. Карта того, что есть в реальности, с уровнем детализации как у карты, с системой координат, слоями, подписями и т. п. То, что это карта, отвечает на многие странные вопросы, типа стоит ли добавлять контуры снимков или маршруты самолётов. В базу геоданных — да. На карту — нет. Понимание того, что OpenStreetMap — это, прежде всего, карта, упрощает решение вопросов и экономит время. А когда не мучает экзистенциальная тоска, наполнять базу геоданных становится веселее.

Разница между первой картой и последней в том, что вначале карта OpenStreetMap воспринимается как полуфизический объект: изображение на экране, распечатанный лист. А на третьей стадии осмер понимает карту как совокупность всех возможных карт, которые можно получить из данных OSM. Дороги всех цветов и размеров, населённые кварталы в виде домов, закрашенных прямоугольников и строк в таблице населённости, POI в поиске, в картинках, в записной книжке, в роутинге, в базах данных, в цифровом искусстве, в табличках на их прототипах. Рисуя и тегируя линию, опытный осмер видит все возможные применения для неё, и понимает ограничения среды, модели и здравого смысла. В двух словах это можно сократить до «рисуем карту».

Но понимая, что у каждого участника проекта разные взгляды на его продукт и терминологию, и ожидая толпы новичков с немного искажённым понятием карты (ох этот навител), осмер мгновенно поднимается на четвёртую стадию понимания проекта, которую подметил Эдуард «edward17»: OSM — это боль.

2016   ВНЕЗАПНО

Ничего

Мы всегда считали, что в точке 0;0 ничего нет. Приходили периодически и махом удаляли гору мусора. Ничего нам не указывало, что все объекты там — плод ошибки, но мы так считали. Недавно оказалось, что один физический объект (кроме пятикилометрового столба воды) там есть: это буй. Его цель — измерять температуру и ветер. Он дрейфует вокруг нуля, и на OpenStreetMap отплыл на сотню метров. И теперь, когда к нему будет прибиваться мусор со всей планеты, нужно не забыть его не удалить.

Это мне напомнило про вопрос обозначения отсутствия данных. Вот например, на конференции Костя «GaM» показал велосипедный трек от Кузьминки до Невской Дубровки: он проверял все отворотки в поисках сквозной дороги. Нашёл только один проезд, но как он обозначил тупики отвороток? Track просто обрывается, и непонятно: то ли анонимный объездчик (на навигаторе нет авторов карты) устал, то ли там поляна и тупик. Конечно, у нас есть тег noexit=yes и антоним к нему, fixme=continue, но никаких промежуточных вариантов. Что, если оканчивается проезжаемая дорога, но ещё до магистрали идёт пешеходная тропа? Что подразумевает continue: что там волки, что объездчик устал, что дорога стала сильно хуже?

Или случай из волховской картовстречи: на бинге обозначены два дома, в OSM — тоже, а на местности — две заросших бетонных площадки: дома спилили под ноль, хоть стоянку организуй. Нельзя дома удалить, потому что это не обозначит их отсутствие. Я поставил точку с описанием «здесь домов нет», потому что непонятно, как обозначать такие бетонные площадки. Но не сомневаюсь, что какой-нибудь домикоманьяк придёт, увидит точку и с возгласом «какие ваши доказательства» снесёт её и дорисует недостающее.

Всё это сводится к тому, чего на карте нет. Сейчас у карты два состояния: либо что-то нарисовано, либо неизвестность. Нужно придумать третье состояние: «точно чего-то нет». Нет буя. Нет дома. Нет дороги. Нет брода, можно проехать. Если на карте не отметили — это не значит, что объекта нет. Как обозначить отсутствие?

Причём, даже наличие объекта в данной точке не означает отсутствия всего остального. Если ткнуть в середину леса, нельзя быть уверенным, что в этой точке нет здания. Даже если там прошёл маппер и своими глазами видел, что на 10 км вокруг только черника растёт. Он же не может это наблюдение транслировать на карту. Возьми случайную точку ограды — точно ли в ней нет дырки? Насколько точно маппер нарисовал береговую линию: если туда прийти, окажешься на суше или в воде?

Не думаю, что этот вопрос решён хоть на одной альтернативной карте. Коммерческие картографы используют понятие качества и равномерности: вероятность отсутствия дороги одинакова на всей территории. Но это ещё хуже, потому что доверие к фрагментам, объезженным на автомобиле, равняется доверию к обрисованному по генштабу 60-х годов, и зачем тогда тратить деньги на объезд? Все карты отвечают только на вопрос «что здесь есть», и даже ответ «ничего» может быть ложью.

Вопрос, конечно, в доверии, а не в наличии-отсутствии. Насколько карте можно верить в этой конкретной точке. Поэтому можно заменить обозначение отсутствия слоем доверия. Непрерывным на весь земной шар, плюс на каждый сантиметр каждого объекта. И заставлять мапперов заполнять величину доверия. «Я здесь проехал и уверен». Правда, чихнул и не заметил круглосуточного магазина, но махом залил доверием всю трассу. Можно ли доверять мапперу, отметившему уровень доверия? И кто его будет заполнять — вон, smoothness заполняют лишь самые маньяки.

Но если этот вопрос решить, то OpenStreetMap — или его форк, развитие, альтернатива, — станет самой достоверной картой в мире, просто потому, что на карте будут места со 100% достоверностью. Где мы точно сможем сказать, что все люки расставлены так, как человек их увидел два месяца назад, и схема движения по полосам проверена только вчера. Где в точке 0;0 достоверен будет только буй, но не гора мусора, прибившаяся от неудачного импорта. И где очередную покатушку можно будет спланировать не только по пустотам на карте или плотности треков, но и по уровню достоверности: ведь мы же хотим, чтобы наша карта везде была самой точной.

Правда, тут всплывает понятие личной ответственности за карту. Кто нарисовал конкретную фичу и почему? Какой уровень доверия к пользователю? Означает ли выбор редактора JOSM более достоверные данные, чем iD? Влияет ли тег source на актуальность? Какая ответственность у участников мероприятий гуманитарной команды, которые пришли один раз, но, наверное, очень старательно обклацывали какое-нибудь Мали. Ценнее ли личное наблюдение обрисовки по спутниковому снимку? А если снимок — ортофотоплан, сделанный с квадрокоптера? Вопросов бездна, и вкупе они означают: достоверность карты не измерима, осму можно только верить.

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

Использованы фотографии NOAA, Константина Мошкова и F4JA13.
2015   ВНЕЗАПНО

Московское время

Долгое время я уравновешивал кучу московских мапперов непомерной активностью петербуржских. Собирал их не реже раза в месяц. Считал, во сколько обойдётся проезд до очередной конференции. На вопрос о работе отвечал, что картами занимаюсь только в свободное время. Теперь, спустя почти пять лет участия в OpenStreetMap, всё поменялось: с этого понедельника я работаю в maps.me, ныне входящем в Mail.Ru Group, и живу в Москве.

Это означает, что приложение maps.me заинтересует не только миллионы нуждающихся в офлайн-картах, но и тысячи осмеров. Что направлениям Mail.Ru Group, которым понадобится карта для игры или социалки, теперь достаточно одного внутреннего звонка. Что обсуждения открытых геоданных и инициатив, касающихся открытых карт, не пройдут мимо сообщества. Что на мысль от ГИС-Лаба «а не организовать ли» последуют положительный ответ и помощь. Что удастся протолкнуть OpenStreetMap на новых площадках, напомнить москвичам, что карты — это не только Яндекс.

И самое главное, московское сообщество OSM перестанет быть диванным. Я не просто перенесу сюда всю петербуржскую движуху, коей завидовали осмеры со всей России, но смогу задействовать в ней все ресурсы Mail.Ru. Как программист и специалист по OpenStreetMap, я буду работать над удвоением крутости maps.me, но как осмер с возможностью уделять проекту часть рабочего времени, я планирую сделать OpenStreetMap самым громким и одним из самых эффективных краудсорсинговых проектов в России. Начнём, как обычно, с картовстреч — готовьтесь к апрелю, москвичи.

Команда maps.me растёт, мы будем рады программистам на C++ и другим специалистам. Пишите, будем строить большие планы и писать маленькие фичи вместе. В этом блоге, радиопередачах и на других сайтах я продолжаю говорить как осмер, а не как сотрудник maps.me: ничего из сказанного не является официальной позицией компании, если не заявлено обратное.

2015   maps.me   ВНЕЗАПНО   штосм

Any keys you like

Новичкам с первого дня объясняют: придумывайте любые теги, у нас свободная модель. Рисуйте — но лучше справляйтесь по Map Features, а новые теги обязательно задокументируйте. Вы можете обозначить дорогу как «дорога=главная», но чтобы её показывали на картах, придётся изучить значения «highway». Поэтому сначала ищите по вики и форуму, если не нашли — откройте словарь, придумайте варианты, как назвать новый тег, проверьте их по taginfo. Новые теги могут быть любыми, и их не обязательно согласовывать заранее.

Документирование важных тегов начинается с пропозала. Когда-то пропозалы делались для совместного обсуждения моделей тегирования: названий, дополнительных тегов, документации. Человек отметил несколько объектов — пусть это будут люки, к примеру, — изучил их свойства, составил список используемых тегов и подтегов, и хочет узнать мнения у специалистов по люкам и тех, кто мапил люки раньше. Результатами будут вики-страница и осведомлённость авторов картостилей и валидаторов о связанных тегах.

То ли участники стали менее уверенными, то ли викиманьяки всех застращали, но в последние месяцы рассылка tagging@ необычно выросла: одновременно обсуждаются десятки пропозалов. В прошлой радиопередаче мы два часа перечисляли только темы за январь. Оказывается, в головах мапперов всё поменялось: вместо «сделал — задокументировал» порядок обратный: «захотел обозначить — написал пропозал — пришёл в tagging@ — со всеми переругался — пропихнул пропозал через голосование — снова переругался — поставил тег на точку». Яркий пример — man_made=water_tap, автор которого ярко показал недостатки пропозалов, спровоцировал две длинные философские темы, и сколько объектов обозначено спустя две недели его тегом? Пять. Из них две — автором.

Но то новые теги, а если старые не нравятся? 3,5 года назад мы приняли эпохальный пропозал: entrance=*. Он включал в себя не только классификацию входов, но и требование автоматического перетегирования всех 150 тысяч точек с building=entrance. Противники долго удерживали волну, но сейчас последних около 63 тысяч (два дня назад было 67 — процесс ещё идёт). Тот пропозал отверз хляби разума: оказалось, можно менять устоявшиеся схемы с сотнями тысяч использований. Немногие прошли, но примеров достаточно: электроподстанции, трубопроводы, emergency=*, public_transport:version...

Иногда заменить пару тегов недостаточно. Никита «d1g», проведя полгода за наведением порядка в вики, понял: сама модель «ключ=значение» ущербна. В частности, потому что не позволяет использовать несколько значений одного ключа («;» не в счёт, её никто не поддерживает). Заменой он определил формат «ключ:значение=yes». Плюсы такого подхода расписаны на странице пропозала, минусы предъявили другие участники в рассылке tagging@ и русском форуме. Услышав претензии, Никита понял: без изменения API тут не обойтись, потому что наши проблемы решат только иерархические теги с массивами внутри.

OpenStreetMap только в начале своего развития. Почти все элементы его модели плохи, и каждый рано или поздно хочет тип данных для области, более логичную иерархию тегов, JSON API, лучшую документацию, модераторов и орган, куда жаловаться. Но вы знаете: «хочешь — сделай». Следующая версия API назревает, и самое время расчехлить компилятор C++ и написать желаемые функции. Ограничений нет — только ваше рабочее время и обратная совместимость с базой и нынешним API. В этом году мы увидим немало перемен, на которые будем бурчать: «раньше было лучше», — и наша задача в том, чтобы настоящее стало этим «раньше» как можно раньше. Никита, дерзай!

2015   ВНЕЗАПНО   пропозалы

Праздник со слезами на глазах

В техноблогах начали появляться заметки про десятилетие OpenStreetMap, как наш проект развился за это время и какое светлое будущее нас ждёт. Обычная шарманка про рождение из ничего, из желания Стива Коста сделать свободную альтернативу картам Ordnance Survey, смешную поначалу, но грозную теперь. И у нас, конечно, будет всего больше, сообщество станет мягче относиться к импортам, и настанет всеобщий API 0.7. Какая же бочка чуши.

Прежде всего, посмотрите на карту OpenStreetMap восемь лет назад, от 14 августа 2006 года (спасибо Фредерику Рамму за подготовку базы). Нет смысла искать там свой город: это чистое поле с парой линий в Англии и Дании. Чем занимались участники проекта предшествующие два года? Ну э-э-э, собирали треки. JOSM появился в январе 2006, Osmarender и API 0.3 — в марте. До этого OSM практически был на уровне идеи: почтовая рассылка и вики.

Технически развитие OSM остановилось в 2011 году: тогда уже вовсю работал рендер на мапнике, потлатч 2 заменил первый, продвинутые мапперы использовали JOSM, появились OSRM, Overpass API и Leaflet. С тех пор — только дописывание библиотек, смена дизайна или затухание заброшенных программ. Единственное исключение — редактор iD, часть большого и страшного проекта под названием «Mapbox». Страшный он потому, что может стать нашим будущим.

Что нас ждёт? Раньше я оптимистично бросался названиями типа «год редактора карты», призывал распространять весть об OpenStreetMap в школы. Думал, что вот-вот — и напишут удобные инструменты для отката ченджсетов, для классификации тегов, для сбора данных пешком, на велосипеде и на машине. Реальность такова, что банальное перемещение точек в лучшем редакторе JOSM сделано настолько криво, что пришлось включить в ядро два альтернативных способа (кнопки «W» и «X»). Нет ничего, и ничего не предвидится. Новый OWL заглох, роутинг и overpass на глагне так и пылятся в ветвях гитхаба, про API 0.7 и говорить смешно, даже если не вспоминать слово «полигоны». Кажется, проект окончательно стагнировал, только сотни тысяч участников обводят, рисуют, импортируют, воюют.

Нельзя прогнозировать на год или два вперёд, потому что за это время мы не смогли построить надёжной, предсказуемой организационной структуры (админы — единственное исключение). Можно лишь надеяться. Что кто-нибудь загрузит первые коммиты для нового API в ветку cgimap. Что появится настойчивый участник, который пробьёт стену безразличия и перфекционизма, добавив на osm.org полезную функциональность. Что некоторым программистам начнут платить за работу и требовать от них результатов в конечные сроки. Что у нас появится хотя бы один практикующий юрист, и мы узнаем, не зря ли провели три года в перепалках. Что Mapbox не захватит технологический стек OSM своим джаваскриптом. Что откат ченджсетов станет проще, а ошибки будут валидироваться на сервере.

OpenStreetMap — без сомнения, лучшая карта всего мира. Непонятно, почему его до сих пор воспринимают как несерьёзную поделку, и часто забывают упомянуть в сравнительных статьях. Хотя нет, понятно. Дайте нам ещё десять лет.

Также:

2014   osm.org   ВНЕЗАПНО
Ctrl + ↓ Ранее