Позднее Ctrl + ↑

Два два ноль и три три ноль

В рассылке dev@ с разницей в один день опубликовали два важных анонса новых версий. Во-первых, Брайан выпустил iD 2.2.0. Вторая версия вышла в ноябре, но там не было заметных внешних изменений: повинуясь требованиям Semantic Versioning, первую цифру увеличили из-за несовместимых изменений API. В 2.1.0 добавили поддержку GeoJSON с KML и красивые плавные изменения.

Новый iD больше не рисует меню полукругом при выборе объекта. Столько раз из-за него случайно удаляли дороги или округляли здания! Теперь меню спрятано под правую кнопку мыши, что позволит расширять его неограниченно, а не пока есть места в круге. В теории звучит хорошо, на практике столбик непонятных значков озадачивает. Ждём следующего шага: понятных слов вместо пиктограмм.

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

Разумеется, в релизе много других мелких улучшений. Например, последний комментарий к пакету правок сохраняется (привет всем, кто пишет «fix» или «мелкие правки»), но очищается через два дня. Мультиполигоны в старом стиле выглядят страшно и на них ругается валидатор: хотя из OpenStreetMap их недавно вычистили, пользователь может нарисовать такой случайно. Многие увидят красную коробочку при запуске: там список изменений в версии. Наконец, удалить объект можно только тогда, когда видно не менее 80% его поверхности.

Также вчера Пол Норман объявил о выходе версии 3.3.0 нашего картостиля osm-carto. В нём всё в порядке. То есть, авторы провели несколько рефакторингов, вынеся шрифты в отдельных файл, написав несколько инструкций. Самое заметное изменение — магазины на 17 масштабе рисуются точками, чтобы не отвлекать от других заведений. В репозитории на GitHub осталось всего шесть открытых пул-реквестов. Все они меняют отображение элементов карты (обводки дорог, паромных терминалов, грунтовок и т. п.), и поэтому отложены.

Самое важное в свежем релизе стиля — что он последний в ветке 3.x. Пул-реквесты почистили, страницу со сравнением 3.x и 4.x обновили, стиль 3.3.0 выпустили, временный запрет на визуальные изменения наложили. Следующим шагом в программе будет смёржить ветку lua в master и объявить о выходе версии 4.0.0. После этого в 3.3.x будут только чинить неприятности, да и то недолго.

Что такое ветка lua? Это переработка стиля с условием полной перезаливки базы данных. Подробность Пол расписал в пул-реквесте, а коротко:

  • Колонка типа hstore для каждого объекта. Она даст доступ ко всем тегам, пусть и без индексов. То есть, можно будет обозначить дороги с плохим покрытием или заведения, доступные людям на колясках. Колонка увеличивает размер базы всего на 10%, но позволяет убрать сотню других колонок, выгадав 5%.
  • Мультиполигоны. По умолчанию osm2pgsql разделяет мультиполигоны на отдельные полигоны: так те из них, что пересекают 180 меридиан, не накрывают bbox-ом весь мир. С ключом —multi-geometry мультиполигоны из OSM остаются мультиполигонами в базе. Это удобнее: не нужно собирать государства и острова из тысячу частей с ST_Collect, подписи национальных парков не множатся. К сожалению, это изменение замедлит рендеринг примерно на 5%, сильнее на близких масштабах.
  • Преобразования в lua. Lua — это несложный язык, часто используемый для настроечных скриптов. Предобработка тегов с его помощью в osm2pgsql позволяет указать численный тип для колонок типа population и layer, написать сложные правила построения z_order и отсортировать значения highway и place. Кроме того, скрипт будет отличать замкнутые линии от областей не только по тегам и собирать линии в мультиполигоны. Разумеется, старый стиль мультиполигонов он не поддержит.

Версию 4.0.0 выпустят в этом месяце. В течение пары месяцев ветки 4.0.x и 3.3.x будут развиваться параллельно, чтобы базу можно было перезаливать поэтапно. Следить за подготовкой к перезаливке можно в тикете OWG, пользоваться новым стилем — уже сейчас: пул-реквест приняли в master вчера.

DigitalGlobe наш

На снимке — село Большие Тиганы в Татарстане. На его карте почти нет домов: неудивительно, там нет ни снимков Bing, ни снимков Mapbox. Но теперь мы можем их обклацать, пользуясь подложкой на иллюстрации. Кевин Баллок сдержал обещание, которое мы обсуждали месяц назад.

Вчера в трёх основных редакторах появились два новых спутниковых слоя. В JOSM нужно зайти в настройки снимков, выбрать две строчки с «DigitalGlobe» и нажать «Активировать». В iD жмите кнопку со слоями справа, в P2 — на кнопку «Подложка» вверху. Слои такие:

  • DigitalGlobe Standard: разрешением 30-60 см, покрывает 86% суши, больше с каждым годом. Обновляется дважды в год в США, Западной Европе и Австралии, раз в два-пять лет в остальных регионах. В Москве, например, он удивительно стар: примерно от 2013 года, в других местах бывает свежее остальных. Аналогичен слою «Recent Imagery», доступному пользователям DG Maps API.
  • DigitalGlobe Premium: аналог слоя «Premium Imagery» или «+Vivid», доступного только корпоративным подписчикам DG. На нём чуть больше качественных снимков, но многие старее, чем у альтернатив. Пишут, что слой обновляется чаще, особенно в специальных регионах, типа Хельсинки. В России таких специальных регионов нет. Очень часто нет разницы между этим слоем и Mapbox: те же зимние снимки и отсутствие оверзума.

Свежесть снимков пока определяем на глаз. Кевин пишет, что через пару недель слоям добавят метаданных с датами фотографирования и публикации. Пока можно пользоваться картой свежести для Standard и Premium (включите галочку «Mapbox» справа вверху). Доверять им сложно, учитывая видимую разницу между слоями, но карта в целом отсутствием прямоугольников цвета 2016 года отражает впечатление от слоёв. DigitalGlobe также публикует квартальные планы на съёмку поверхности.

Точность привязки плавает. Слой Standard примерно аналогичен Bing с его искажениями в гористой местности. Впрочем, Санкт-Петербург плоский как стол, а искажения присутствуют и там. Premium, как Mapbox, привязан лучше. Подключайте слой треков и пользуйтесь базой смещений. Официально у слоёв точность 10 метров по CE90: для 90% замеров отклонение будет в пределах десяти метров.

Условия использования подложек DigitalGlobe явно разрешают их обрисовку для OpenStreetMap и только для него. Снимки нельзя скачивать и использовать для иных целей. DG не несёт ответственности за сломанные глаза и разбитый лоб от фейспалмов во время оценки качества подложек. На той же странице упоминается аналогичное разрешение от Mapbox, которое включает изумительное ограничение: «если вы подписаны на план Premium, то можете обрисовывать наши снимки ещё и в коммерческих целях, но не более 100 точек, линий или полигонов в год».

Обсуждаем новые слои на форуме. Там сначала радуются подложкам, затем разочарованно обнаруживают, что они либо дублируют Bing или Mapbox, либо невыносимо старые. Новые снимки закрыли немало дыр и дополнили сложно читаемые зимние снимки летними: упоминают Саратовскую и Ульяновскую области, Мордовию и другие регионы. Кевин просит помнить, что новые снимки добавляются постоянно, с большими обновлениями раз в квартал, как у Bing. Претензии и просьбы пишите в его тему на английском.

Тульская выездная картовстреча

10-11 июня мы едем в Тулу. Рисовать карту. Это всё, что вам нужно знать, чтобы отметиться на вики-странице встречи, забронировать гостиницу и закрасить выходные в календаре. Увидимся!

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

На этот раз мы едем недалеко от Москвы: до Тулы всего три часа езды (из Петербурга — чуть больше). Несмотря на близость к столице, город отрисован очень плохо: в нём долго не было хороших спутниковых снимков, и до сих пор почти нет картографов. Снимки появились — нарисуйте дома, пожалуйста. А недостаток картографов на пару дней мы исправим.

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

Я буду рад любым предложениям мест встречи и идеям для культурной программы. Пишите их на форум или в телеграм.

Пакет не нужен

«Нельзя ли при отправке изменений из maps.me разделять объекты по континентам?» — в очередной раз спрашивают на форуме. А то bbox (ограничительный прямоугольник) слишком большой, неудобно. OpenStreetMap был зачат тысячу лет назад программистом, и это лезет изо всех щелей: удивительно, как самые бессмысленные атрибуты становятся мерилом качества.

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

Но даже когда найдёшь нужный пакет правок, останется только бессильно смотреть на его bbox. И на стастраничный список точек, линий и отношений, каждая строчка которого по-своему бесполезна. Ченджсеты — это псевдоупорядочивание. Кажется, что они полезны присвоением метаданных группе объектов, своего рода над-отношения, но на самом деле — метки времени произвольны, их порядок не зависит от номера пакета, комментарии никто не пишет, источник часто врёт, географически, как видим, тоже никто не группирует. Остаётся один полезный атрибут: created_by. Всему остальному верить нельзя.

То есть, единственная польза от пакета правок — это посмотреть, каким редактором сделаны правки. Все остальные атрибуты: даты, bbox, список объектов — только отвлекают, создавая ложное впечатление группировки и упорядоченности. Которых нет, потому что техническое воплощение API не обещает порядка и не подразумевает удобства. Так, для правок maps.me я игнорирую пакеты и рассматриваю каждую правку отдельно. Правки на mmwatch — это поток объектов, у которых номер ченджсета лишь бесполезный атрибут. Увы, для сложных правок со взаимосвязанными изменениями (таких как сдвиг линии) такой подход не сработает.

Примерно об этом я говорил на схемотехнике год назад. О bbox нужно просто забыть: область применения этих прямоугольников ограничена и точно не касается ваших задач. А проблему пакетирования нужно как-то решать. Развязать топологические структуры, группировать по времени и географии, не давать пользователям и приложениям свободы в объединении правок. Это настоящая тема для какого-нибудь будущего API 0.8. А пока приходится работать с тем, что есть.

Следить за изменениями в регионе можно (нужно!) через WhoDidIt, искать их — в его более быстром форке. Пакет правок из интерфейса этого сайта можно открыть в Achavi, но иногда может не повезти. Если bbox окажется слишком велик, загрузки правок вы можете не дождаться. Потому что даже лучшие инструменты полагаются на bbox, который, повторюсь, плох примерно для всего.

Загружать геометрию ченджсетов часто приходится команде по работе с данными в Mapbox. Для этого они сделали и постоянно улучшают сайт OSM Changeset Analyzer, где есть фильтры по любому атрибуту, вплоть до причины для подозрений. Но самые подозрительные пакеты накрывают весь мир, Achavi тут бессилен. Поэтому в этом месяце они сделали то, что давно было пора: кэширование ченджсетов.

Каждую минуту скрипт скачивает свежие дополненные диффы и складывает их в хранилище Amazon S3. Затем он раздербанивает эти диффы на пакеты правок и результат тоже загружает туда же. И теперь сервис визуализации Changeset Map, встроенный в OSMCHA, загружает пакеты мгновенно. Обновите ваши букмарклеты: Changeset (перетащите в закладки).

Проблемы, конечно, есть, но с ними борются. Например, дополненные диффы не окончательны из-за чехарды с транзакциями в базе данных OSM. Их приходится обновлять и обновлять. То же касается и пакетов правок, которые возможно держать открытыми целые сутки, понемногу доливая в них новые объекты. Наконец, история там только новейшая: пакеты старее марта этого года можно не найти. Их загружают, но медленно. Проблему поиска по региону архив тоже не решает, как показывает опыт фильтрации на сайте OSMCHA. Поэтому пользуйтесь им для просмотра недавних правок, а историю ищите на WhoDidIt и Achavi. Неидеально — но пока мы не избавились от концепции пакетов правок, ничего лучше не сделать.

Платный яндекс

Как пишет «Коммерсант», в этом году яндекс начнёт брать деньги за использование «Яндекс.Навигатора» в коммерческих целях. API их карт давно платен сверх лимитов, как и у Google. И, конечно, заплатив деньги, вы не получаете полного контроля: оформление неизменно, реклама будет всплывать в неожиданных местах. Конкуренты могут заплатить, и на схеме проезда вашего сайта пользователи увидят, до кого им ехать ближе. Наглядный пример — официальный Атлас Москвы, рекламирующий бургеры за 99 рублей из-за подложки 2ГИС.

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

Евгений Лисовский в заметке для «Прайма» правильно пишет, что компании с проприетарными онлайн-картами загоняют себя в ловушку серверных ресурсов. Как бы они — и яндекс, и гугль, — ни хвалились возможностью скачать часть карты на телефон, поиск и построение маршрутов всё равно требуют серверных ресурсов. И, следовательно, денег, которые в картографии взять неоткуда. Поэтому обращаются к проверенным источникам: рекламодателям и корпоративным пользователям. Увы, первых немного (всех забрал 2ГИС), а вторые сделают крайними таксистов, которым с новыми яркими ценовыми политиками едва хватает на бензин.

Поэтому ждём новой миграции на бесплатные карты. Теперь нам не нужно показывать на корявый сайт osm.org: таксисты уже умеют пользоваться всякими «навителами» и «7 дорог», для которых Kostik делает регулярные бесплатные сборки карт. И они, наверняка, готовы установить MAPS.ME, в котором не нужно заморачиваться с копированием файлов и который умеет строить маршруты по пробкам. Всё готово — только поменять приложение. Есть ли у них такой выбор — непонятно: возможно, Яндекс им его не оставил, требуя от участников «Яндекс.Такси» прокладки маршрутов только через их приложение. То есть, с уходом таксистов с «Навигатора» мы вернёмся во время стапятисот таксомоторных компаний, каждая со своими приложением и телефоном.

В средних и малых городах таксисты и службы доставки давно используют OpenStreetMap. Мы это знаем, потому что поездив по нашей карте, таксисты регистрируются в проекте и начинают массово добавлять адреса. На обычный вопрос про дровишки отвечают, в лучшем случае, что у них есть внутренняя база, которую они сами составили по выездам, и они копируют адреса из неё. Расследовать не получается: на яндекс не похоже, а других источников у нас нет, — так что оставляем адреса и даём таксистам жить. Или не даём, как случилось в Челябинской области в 2011-12 годах. Там сначала копировали домики из 2ГИС, а затем обрисовывали малые города по проприетарным снимкам. Всё откатили, местные осмеры до сих пор ждут резкого челябинского возмездия.

Технически вопрос тоже несложен: помимо вышеупомянутого MAPS.ME, есть замечательный сервис GPS-мониторинга OsMo. Для частного использования бесплатный, разумеется. Автору сервиса известны таксомоторные компании, пользующиеся его сервисом для отслеживания автомобилей. Впрочем, с нынешними технологиями написание нового подобного сервиса «под ключ» потребует пары человек, а не крупной картографическо-программистской компании. Любое обдуманное решение окажется в перспективе дешевле оплаты лицензии «Яндексу».

Ждём новую волну #switch2osm, ждём картины, как приложение MAPS.ME обгоняет «Яндекс.Навигатор» по месячной аудитории, ждём неловких правок от новых служб такси и курьеров, которые либо сделают нашу карту актуальнее и точнее проприетарных аналогов, либо нарушат лицензионную чистоту и их придётся откатить. В OpenStreetMap умеют ждать: шаг за шагом, одно неудачное бизнес-решение за другим, поглощение за слиянием, и вот уже все, кому надоели реклама и выдумки продажников, выберут дешёвые и понятные сервисы на наших, открытых картах.

Ранее Ctrl + ↓

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