Позднее Ctrl + ↑

Савёловские Мнёвники на Кушелевке под Семково

С этого дня поисковик Nominatim на главной osm.org по запросу «Савёловский» возвращает точно такие же результаты, как по «Савеловский», без «ё». Сара Хоффманн встроила в обработчик данных токенизатор ICU, благодаря которому взаимозаменяемые буквы можно заменять. Это требовало перезаливки данных в базу, которую приурочили к выходу Nominatim 4.0.0.

Действию, очевидному для любого, кто владеет русским языком, Nominatim просили научить с 2018 года. Было два способа: воспользоваться новым токенизатором, добавленным в PostgreSQL за пару месяцев до просьбы, или поправить таблицу автозамены в Nominatim. Последнее K Rahul Reddy сделал слишком поздно: его пул-реквест отклонили, потому что таблицу планировали убрать.

Русскоязычным сервисам было бы разумно забыть о номинатиме и воспользоваться альтернативными поисковыми движками: Pelias или Gazetteer. Не Photon — тот работает на данных Nominatim и пока различает эти буквы. К сожалению, размер имеет значение: несмотря на проблемы с поиском и сложный процесс установки, люди предпочитают пользоваться движками из списка Top 1.

В этом году разработка Nominatim набрала невиданную скорость: релизы выходили один за другим, а Саре постоянно находила что-то новое, о чём рассказать на конференциях или в блоге проекта. Причина — в деньгах. Движок останется открытым на 100%, но это не означает, что разработчики будут голодать. На сайте упомянуты несколько спонсоров — NLNet, OpenCage, GraphHopper, Komoot и другие. Судя по их количеству и по тому, что OSMF, чей грант запустил ускорение проекта, упомянут последним, денег там достаточно, чтобы Сара не занималась ничем другим. Это обнадёживает: может, скоро движок научится другим полезным эвристикам, типа учёта дефисов, пробелов и литер в номерах домов.

Помимо замены самопального токенизатора на стандартный ICU от ассоциации Unicode, в четвёртой версии убрали скрипты командной строки на PHP в пользу единого инструмента на Python. Этот инструмент помогает во всём, от подготовки базы данных до её обновления и администрирования. То есть, кажется, теперь не нужно устанавливать PHP для подготовки данных. В документации дописали большой раздел про настройку движка. И теперь можно подключить базу почтовых индексов для любой страны, а не только для США и Великобритании, как раньше.

Свой Overpass

Сегодня у сайта osm.org появился свой выделенный сервер для запросов к Overpass API. Он не публичный (и пожалуйста, не надо добавлять его себе в зеркала) и предназначен только для одного: поиска объектов вокруг заданной точки. Когда вы выбираете на сайте инструмент «Что здесь?» со стрелочкой и знаком вопроса и тыкаете в карту, сайт запрашивает список у Overpass API (потому что OSM API этого не умеет). Раньше это был сторонний сервер overpass-api.de, теперь — свой.

Эта новость порадует всех, кто пользуется инструментом «что здесь». Как узнать, что стало лучше? Тыкните в любое место три раза подряд. Из-за драконовских ограничений сервера раньше вы гарантированно получили бы ошибку: слишком много запросов. Теперь и на десятый клик сайт стабильно показывает объекты рядом и полигоны, содержащие заданное место. Видеть, как Overpass API работает без сбоев, умилительно: будто вернулся на пять лет назад.

Кажется, это была единственная часть сайта, которая работала нестабильно. После перехода с тайлового CDN (тридцать серверов которого так и стоят без дела) на Fastly ушли проблемы с медленными тайлами. Удивительно, но когда платишь людям за работу, эта работа оказывается сделанной хорошо. Построение маршрутов обеспечивают немецкий сервер OSRM (оплачен FOSSGIS) и немецкий же GraphHopper (витрина их бизнеса), оба стабильные. Чужие тайловые слои работают как часы, включая добавленные за пандемию французский велосипедный и немецкий общественного транспорта.

Но этот переход напоминает, что на самом деле стабильность стоит очень больших денег. Восьмиядерные серверы со ста гигабайтами памяти и терабайтом диска для Overpass API на дороге не валяются. Прокладка маршрута будет вам стоить от 50$ в месяц. Чуть меньше, если поднимете сервер на амазоне сами. Геокодирование платное. Тайлы платные. Кэширующий CDN тоже дорогой. А если хочется бесплатно и по-быстрому, то ограничения делают открытые сервисы бесполезными для публичных проектов.

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

2021   osm.org   overpass

Пяти знаков после запятой хватит всем

В начале мая Ньёлл Доусон показал, что свежий QGIS при выборе системы координат EPSG:4326 (или любой другой, основанной на датуме WGS-84, включая 3857) предупреждает: эта СК опасна для точности ваших данных.

*я иногда путаю датум (параметры эллипсоида, как WGS-84), системы координат (как на этот эллипсоид натянуты широта и долгота, как 4326) и проекции (отображение эллипсоида на плоскость, как 3857).

Неужели всё настолько плохо, что WGS-84 нужно отменить? Напомню, эта система координат используется почти везде: в GeoJSON, в приёмниках GPS, в данных OpenStreetMap. Мы рисуем в этой системе поребрики и балконы на домах, пользуясь пучками GPS-треков и RTK для достижения сантиметровой точности.

Проблема в том, как позже разъяснил Ньёлл и ранее — этот отчёт 2019 года, что местные (статические) СК привязаны к земле, а глобальные (динамические) — к общим параметрам земного шара. Австралия, например, медленно плывёт: с 1994 года она сместилась на 1,8 метра на северо-восток. Динамичность WGS-84 означает, что то, что единожны нарисовано в СК на её основе, каждый год нужно сдвигать.

В качестве местных в Австралии используются «слепки» WGS-84: система координат GDA94 была определена в 94 году как «эквивалентная WGS-84». А GDA2020 в прошлом году определили точно так же. Получается, можно преобразовать координаты без пересчитывания GDA94 → WGS-84 → GDA2020 и получить ответ, отличный от преобразования GDA94 → GDA2020.

Земная кора двигается и под остальными континентами, пусть и с меньшей скоростью. WGS-84 — динамическая СК: чтобы точно отражать физические координаты, к широте и долготе в ней нужно добавлять время наблюдений. Иначе, как пишет ИКАО в разделе 3.3.1 инструкции по WGS-84, даже учитывая теоретическую сантиметровую точность GPS-приёмников, точность данных в этой СК не превышает одного метра по горизонтали. То есть, пять знаков после запятой — предел точности для широты и долготы в WGS-84.

Чтобы увеличить точность хранения координат, рядом с ними нужно хранить «эпоху» — то есть, год наблюдений. Проблема в том, что ни один популярный формат хранения геоданных не поддерживает поле метки времени, особенно чтобы учитывать его в преобразованиях координат. После твита Ньёлла это начало меняться: с июня поле epoch добавили в GeoPackage.

GeoJSON и KML неисправимы, шейпфайлы и PostGIS тоже, соответствующее поле WKT CRS не поддерживает даже Proj 8. А вот в OpenStreetMap... формально, все объекты имеют дату создания, которую с натяжкой можно считать нужной меткой времени. Но кто в здравом уме использует OSM как формат для обмена геоданными? А при конвертации информация о времени теряется.

Обойти эту проблему легко: используйте местные, или хотя бы статические, системы координат. GDA2020 (EPSG:7844) для Австралии, ETRS89 (EPSG:4258) для Европы, ГСК-2011 (EPSG:7683) для России. Но скорее всего (ролик с ржущим фермером) у вас нет таких вариантов, и остаётся ждать, когда боги геоджейсона придумают решение. Глобальных СК лучше 4236 нет, поэтому последний QGIS 3.10 по умолчанию всё ещё предлагает эту систему для новых проектов.

Телевизор для картографа

Фрагмент групповой фотографии-коллажа участников State of the Map 2021

На этих выходных мы три дня смотрели заранее записанные ролики с выступлениями осмеров. Сверялись с программой передач, включали в нужное время первую или вторую кнопку, делали перерыв на рекламу (прошлых конференций и плакатов с исследованиями). Так нынче проходят конференции State of the Map: минимум общения, максимум нагрузки на стул.

Все эти дни я писал впечатления в телеграм и — впервые в истории SotM — синхронно переводил доклады. Двадцать одна запись звука ждёт публикации докладов, чтобы прилепиться к ним: вы сможете послушать выступления, не зная английского языка! Очень интересный опыт, пусть из-за него я реже делился впечатлениями. Главный секрет приемлемого перевода — посмотреть запись заранее.

Подытожил впечатления от конференции: «как будто за последние десять лет ничего не произошло». Всё так, но в мелочах было интересно. Много мыслей у ребят, и у всех глаза горят. Вот что спровоцировало на заметки в канале:

  • Мартайн удивился, что приходится выбирать между unclassified и residential, и предложил (т. е. написал пропозал) объединить их в highway=street. Немного истории об unclassified и highway=road.
  • Самый профессионально смонтированный ролик конференции — про сообщество OpenStreetMap в Филиппинах.
  • «Дэйви тараторит с ощущением „аааа ничего не успеваю рассказать пойду вырежу все промежутки между словами“. Рекламирует свой SuperRoute.org, где можно скачать маршруты из OSM, экспортировать в mapsme или в josm, посмотреть историю и ещё и ещё и ещё»
  • Автор OSM2World научил систему отображать схемы помещений и придумал схему тегирования, когда один объект висит на другом. Типа урны на фонарном столбе или почтового ящика на доме. Для этого он переопределил тег support=*, так что непонятно, как сообщество это примет.
  • Сара Хоффман долго распутывала иерархию административных границ и под конец воскликнула прямо то, о чём думают все пользователи сырых данных OSM: ребята, остановитесь, хватит усложнять модели! Это не открытые данные, если их нельзя понять и использовать.
  • Третий день начался с классного академического доклада про переводчик с английского на язык Overpass, но в целом впечатление от академиков так себе. «Как Петер заметил в ответах на вопросы, было бы офигенно видеть исследователей, работающих над задачами от сообщества OSM, а не берущих эти задачи с потолка».
  • Приложение A/B Street выглядит как симсити на базе OSM: ездят машинки и велосипедисты, стоят на светофоре и поворачивают по полосам. Но одно дело — написать, другое — найти, кому эту систему продать. Беда с опенсорсом.
  • А вот иметь редактор а-ля SimCity было бы круто (и ещё семь выводов со встречи авторов мобильных редакторов).
  • Что имеем — не ценим: векторные тайлы сейчас просты, как никогда, но есть ощущение, что это не то, чем стоит заниматься. А Overpass API, обогнавший своё время лет на пять, — это такое же невероятное чудо, как интернет в самолёте. Но мы пользуемся и не удивляемся.
  • Пора идти наполнять OpenHistoricalMap.

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

Народные картографы берут лупу

У карты OpenStreetMap нет масштаба. Другими словами, одна и та же база геоданных используется для обзорки всей планеты и для схемы прохода между сараем и туалетом. Когда мы рисуем залив или люк на дороге, мы не задумываемся, на каких масштабах и как их будут отображать. Дело редакторов — внести максимум данных, до уровня, когда не приходит в голову мысль остановиться. Дай осмерам волю — они лес замапят как набор деревьев, с грибами и ягодами между ними.

Отсутствие рамок неудобно пользователям данных. Оно означает, что OpenStreetMap категорически нельзя использовать без предварительной обработки. Для любой цели — поиска, прокладки маршрутов, отображения, — данные нужно отфильтровать: например, убрать слишком мелкие здания и боковые пути железных дорог. Затем нужно упрощать геометрию: лес в парках и мелкие реки часто обклацаны с сантиметровой точностью. Чтобы сделать карту, на которую не больно смотреть, без подсказок опытного осмера не обойтись.

Карта Яндекса не такая. В неё нельзя всматриваться бесконечно: рано или поздно пустоты затмевают детали. У этой карты есть расчётный масштаб: примерно 250 метров в сантиметре (если вы помните детализацию карт Генштаба). Для всех целей Яндексу этого достаточно. Именно поэтому народные картографы должны были страдать. Правилами и модераторами им били по рукам, когда они рисовали слишком мелкие детали.

© Юрий Дегтярев, mosday.ru

Вся история изменений правил — это история понижения масштаба. 2016: у домов появились подъезды. 2017: разрешили рисовать гаражи-ракушки и дороги в два ребра. 2018: можно рисовать трёхмерные модели зданий, указать плохое состояние дороги и доступность проезда для велосипедистов. 2019: разрешили соединять графы пешеходных дорог, рисовать парковочные карманы и схемы помещений. 2020: площадки отдыха вдоль дорог и сезонные заведения и дороги.

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

Теперь пришли сразу две поправки, разрешающие рисовать скамейки и «декоративные» заборы. Это невиданная степень свободы для народных картографов. В полутора сотнях комментариев они пробуют стены детализации на прочность: «отбойники можно?», «а заборы между участками в частном секторе?», «скамейки со спинкой или без?», «а скамейки в торговых центрах?», «урны скоро будем?», «а каждая скамейка считается за отдельную правку?» Сотрудники яндекса едва успевают отвечать отказами — но волна новых микромапперов рискует смыть их критерии полезности и порядок на картах.

Возможность нарисовать что угодно отличает OpenStreetMap от всех остальных карт. Мы слышали про истории успеха с пожарными гидрантами, отдельностоящими деревьями и знаками на магистралях. Этой карте нет альтернатив по скорости обновления и глубине детализации. Она была первой в этом роде, и поэтому все, кому важны данные, а не просто посмотреть, взяли OSM в оборот.

Но когда твой проект обгоняет все другие геоинформационные системы на двадцать лет, это не значит, что все другие отомрут. Как мы видим на примере яндекс-карт, это лишь означает, что через двадцать лет тебя догонят и обгонят. Преимущества открытого проекта тают с каждым годом. Остаётся только эта самая открытость — но и она приносит больше проблем, чем пользы. Что нужно сделать для OpenStreetMap, чтобы на вопрос, где регистрироваться, не отвечать «ну эээ...»?

Ранее Ctrl + ↓

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