ШТОСМ

Вы полюбите микромаппинг

Сегодня я рад показать свой новый редактор OpenStreetMap. Он называется Every Door и работает на айфонах и андроидах. Его идею я рассказал прошлым летом на State of the Map, но начал писать лишь 22 октября. Последние полтора месяца тридцать человек сделали этим редактором под десять тысяч правок и помогли сделать его на порядок удобнее. Теперь я запускаю открытое тестирование.

На официальном сайте есть ссылки в TestFlight и Google Play, видеоролик про редактор и ответы на некоторые вопросы на русском языке.

У меня одно чувство — наконец-то. Так или иначе я рассказывал о том, что OSM требуется нечто подобное, с 2013 года. Делал неудачную попытку с OpenSurveyor. С надеждой следил за инициативами крупных компаний с оплачиваемыми разработчиками — все угасли. За это время у нас появился ослепительный StreetComplete, чему я рад, но он не для меня.

Every Door — не StreetComplete. Он не для каждого, у кого выдалась минутка, чтобы нажать две кнопки в телефоне. Этот редактор — для увлечённых картографов. Для той, кто идёт по торговому центру на двести магазинов и думает, что было бы классно добавить их все на карту. Для того, кто выгуливая ребёнка, мечтает замапить каждую песочницу и качель отдельно. Для «маньяков», готовых отметить каждый фонарь, скамейку и каждое дерево в парке. Это полноценный редактор, с который можно забыть про фотомаппинг и треки.

Установите Every Door сегодня и помогите сделать его ещё лучше. Открытое тестирование продлится где-то до конца июня, и за это время мы поменяем интерфейс, отутюжим поля ввода и навернём ещё много эвристик внутри. И попутно замапим сотни тысяч магазинов. Всё для того, чтобы пользоваться редактором было увлекательно и наша карта росла как на дрожжах.

Война

Что сейчас делает Россия — это ужас. В Эстонии отмечают день независимости, а Россия пытается отменить независимость другого государства. Грустно читать новости из-за границы и понимать свою невозможность повлиять. Не представляю, как обессиливает эта невозможность тех, кто живёт в России. Остановить безумного деда с кнопкой, как мы проверили в прошлые десять лет, шансов нет. Война так или иначе ударит по всем, от Калининграда до Магадана. Её последствия мы все будем расхлёбывать десятилетиями.

Всё, что мы можем сделать, — это поддержка. Сфокусироваться на семье, друзьях и знакомых. Прятаться от военкоматов, обнимать и давать выговориться после чтения новостей. Заменить новости ежедневными дайджестами. Уйти с головой в то, что получается хорошо: работу, игры, тренировки, картирование Смоленщины. Мы — картографы, и не стоит забывать, что это военная профессия. Правки в районе Донбасса могут в военное время навлечь обвинения в госизмене. Пожалуйста, будьте осторожны.

Наше дело начнётся, когда война закончится. OpenStreetMap — актуальная карта: очень вероятно, что по ней будут планировать спасательные и гуманитарные операции. Будем следить за активациями гуманитарной команды и слушать новичков на форуме. Если у вас есть знакомые, работой которых станет восстановление после войны (не во время! Помните о госизмене!), предложите им картографическую помощь.

А сейчас — если вы хотите выговориться, пишите в @ruosm_flood, там офтопик разрешён (но мат — нет). Или пишите в личку, сможем созвониться и я выслушаю. Это тяжёлое время, давайте помогать друг другу, хотя бы ушами, глазами и обнимашками.

Онлайн плюс офлайн

Через три месяца молчания блог OSMF оживили обычные оживляторы: рабочая группа конференции State of the Map. Следующая сходка осмеров пройдёт в Италии 19-21 августа, сразу перед FOSS4G там же. Вживую, на этот раз. Но вместе с тем, онлайн. Это будет мой первый опыт конференции, которая проходит одновременно тут и там.

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

  • большой экран с видеочатом, где люди в Италии машут руками остальным;
  • текстовый чат комментариев во время докладов — возможно, транслируемый прямо в зал, с большим QR-кодом в зале, чтобы все могли поучаствовать;
  • обычная тема с трансляцией хэштега из твитера;
  • видеотрансляция во время перерывов (самое сложное: как, вообще, транслируют видео с переносной камеры?);
  • полные доклады из записей мы не будем показывать, но короткие вполне подойдут, особенно если чередовать, чтобы следующий докладчик успел подключить ноутбук;
  • ещё было бы классно собрать у людей со всего мира видеоролики по пять-десять минут с улицы, чтобы крутить на экранах, и было ощущение, что мы не только в Италии;
  • нужно будет узнать, насколько сложно нанять стенографистов, чтобы текстовые трансляции не только были, но ещё чтобы их можно было пропускать через переводчик.

Короче, хочется переплести людей в итальянских залах и тех, кто смотрит за событием дома. Умные люди говорят, что сработает это только по принципу «remote first». Вот вы сейчас сидите за экраном. Представьте, что с другой стороны экрана идёт трёхдневная конференция. Как бы вам было интересно участвовать?

А, и ещё там запустили конкурс логотипов для конференции. Я знаю, что у нас есть хорошие художники. Пришлите им что-нибудь на следующей неделе, пожалуйста. А то эти цветные шарики уже осточертели.

Микромаппинг улиц

Photo by Dario Ayala /Montreal Gazette

Как вы знаете, линии highway в осме нужно нещадно резать. Изменилось количество полос? Остановка запрещена? Пунктирная разделительная сменилась сплошной? Появилась стрелочка «прямо или направо»? Началось место для парковки? Режем и расставляем теги.

Когда я год назад уточнял по панорамам улицы в своём районе, я быстро наткнулся на проблемы такого подхода. Например, parking:lane:*:capacity — количество мест. Звучит разумно, пока с другой стороны дороги не меняются полосы, и дорогу не нужно разбивать прямо по парковке. И пересчитывать capacity. А если на улице ещё есть велополоса, то микромаппинг становится совсем изнурительным.

Об этом в 2019 году писала Эмили из команды SharedStreets. Они занимались картированием условий вдоль тротуаров: разрешений на остановку и стоянку, мест для разгрузки, и тому подобного. В Северной Америке любят понаставить знаков — и наслаивающиеся теги ограничений на линиях улиц начинают угрожающе трещать. Страшно двигать точки, того и гляди, сломаешь.

Для решения предложили мапить ограничения косвенно, через знаки. Ставишь для знака точку со всеми нужными тегами, при желании связываешь с внешней базой. Когда приложению нужно узнать, что там с парковкой, оно проецирует эти точки на улицы и вычисляет применимые ограничения. Сразу понятна сторона улицы, и двигать геометрию не так страшно. Примерно так у нас картируют знаки «уступите дорогу»: недалеко от перекрёстка, чтобы было понятно, к чему относятся.

Увы, предложенный в статье тег никак не продвигали, и taginfo не может найти ни одного примера. Кто знает — идея разделить геометрию и атрибутику не так плоха. Может быть, мы бы и запреты обгона бы сейчас картировали через расположение знаков, а точек traffic_sign=city_limit хватило бы для неявного ограничения скорости в населённых пунктах.

Резать незачем

Год назад Алексу Сайделу (Supaplex030 в осме) понадобилось посчитать парковочные места в берлинском районе Нойкёльне. Для этого он разметил его весь (по снимкам, конечно) тегами parking:lane=*. Обработав данные в QGIS и посчитав отношение количества мест к зарегистрированным автомобилям, он сделал наглядную картинку. Для нас же важно то, как именно он рисовал эти места.

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

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

Не остановиться

Почуствовав мощь предобработки и похожесть отрисованной карты на спутниковый снимок, Алекс продолжил. Как правильно показать велодорожки? Можно связать их с улицей через cycleway=lane и дополнительно описать в тегах bicycle:lanes и предложенном cycleway:separation. Несложно нарисовать стрелочки на полосах из значений turn:lanes.

Где этому предел? OpenStreetMap бесконечно глубок: можно мапить люки и уличные фонари. Автор выгреб из тегов и геометрии почти всё возможное. Особенно впечатлило, как он рисовал полосы вокруг островков безопасности: две линии проезжих частей превращал в один визуальный объект. А сам островок детально отрисовывал полигоном traffic_calming=island.

И это, конечно, микромапинг. Для нужного уровня детализации он оказался неизбежен. Всплыли и полигоны area:highway, которые не совсем про картографию. С их помощью отрисовываются стоп-линии на перекрёстках. А машинки вдоль дорог примыкают к поребрикам barrier=kerb. На эти линии предобработка полагается во многом — но, например, когда я вижу их в Москве, я вздыхаю и предпочитаю не смотреть. Ведь абсолютная практическая точность данных OSM не ниже полуметра и сопоставлять поребрики с другими объектами, часто нарисованными по разным источникам, больно.

Превосходство предобработки

Работа Supaplex030 показывает, что правильно расставленные теги заменяют микромапинг и сложные схемы с геометриями. Главное — не ожидать от осма, что всё нужное доставят в уже переваренном виде. Предварительная обработка сделает из геоданных то, что нужно именно вам: и велодорожки, и навигацию по площадям, рекам и железным дорогам, и картостиль, не отличимый от генштабовского.

Обработав OSM и наложив сверху немного местных открытых данных, Дастин Карлино сделал гениальный инструмент для дорожного планирования, симулятор трафика A/B Street. Машинки и велосипедисты ездят по правильным полосам, создают пробки, паркуются где надо. Даже и не скажешь, что это та же карта, что и у Mapbox, где одна линия на экране для дороги — уже достижение. Про A/B Street автор рассказал на SotM 2021, в том числе и про главную его проблему — отсутствие пользователей.

Когда в Maps.Me мне предложили вытащить из OSM данные для прокладки маршрутов через метро, я понимал невозможность задачи. Но формализация правил плюс предобработка — и навигация в двухстах городах у нас в кармане. Следующим шагом была бы навигация по остальному общественному транспорту, но я слишком выгорел, чтобы выдвинуть на голосование универсальную транспортную схему.

Профессиональное использование OpenStreetMap — это не только знание тегов и региональных особенностей. Это и умение правильно спланировать работу с данными, чтобы не нагрузить ни картографов, ни тайловый сервер. Предобработка — именно то волшебство, которое возносит данные OSM над коммерческими. Мы много говорим, что наша модель данных лучше других свободой в тегировании. Эта свобода требует знаний, алгоритмов и вычислительных ресурсов. Сложно. Но лучше несвободы.

Natural Earth v5

Есть набор геоданных, который использует примерно каждый, кто делает карту масштаба страны или континента. Это не OpenStreetMap — у нас всё плохо с генерализацией и с лицензией. Речь о данных Natural Earth: сборнике физических и политических слоёв в общественном достоянии. Из них можно быстро собрать обзорную карту с административными границами, морями и городами.

На прошлой неделе вышла версия 5.0.0 этого набора. Это довольно примечательное событие: до этого три с половиной года данные не обновлялись. В моей ленте обновление прошло одним твитом — внимания этому уделяют не больше, чем выходу ядра linux 5.0, или LibreOffice 7.0. Базовая инфраструктура, работу выполняет, надёжно и просто.

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

  • Добавили точки зрения на административные границы. Теперь можно скачать слой ne_10m_admin_0 таким, как его видят в России, Украине, Польше или Японии — всего 31 страна. Или воспользоваться полями fclass_* в общем слое.
  • Перевели названия на 26 языков (ранее было 21), включая украинский. Переводы подтягивают через викиданные, идентификаторы которых массово раставляют в таблицах.
  • Обновили все границы и населённые пункты, переименовали Северную Македонию и Эсватини, пару островов и аэропортов.
  • Добавили слои admin-2 с американскими counties.
  • Разбили Аральское море на три поменьше, уточнили геометрию ещё нескольких озёр и название Псковского озера.
  • Восстановили 136 озёр, которые потеряли в четвёртой версии и добавили слои с гидрографией Австралии.
6 мес   проекты
Ранее Ctrl + ↓

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