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

В рассылке 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 вчера.

Поделиться
Отправить
Запинить

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

5 комментариев
freeExec 2017

Столько раз из-за него случайно удаляли дороги или превращали здания в дома!

превращали здания в дома — это как?

Илья Зверев 2017

Да, странно получилось. Поправил — имел в виду, делали их круглыми.

Мак Сим 2017

Приятно видеть прогресс в картостилях. Но голос в голове подсказывает мне, что растровые карты — это прошлое. С нетерпение жду, когда osm.org будет радовать векторной картой с плавным масштабированием, поддержкой HiDPI мониторов и ночным режимом.

Илья Зверев 2017

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

В то же время, плавное масштабирование, HiDPI и альтернативные стили отлично делают в растре. Дробные масштабы поддерживают Leaflet и OpenLayers, включить их на сайте osm — вопрос одного флага. HiDPI делают редко, потому что кэш таких тайлов требует в несколько раз больше места на диске, но примеры есть. Там же можно посмотреть и ночные стили.

pfg21 2017

растр удобен тем, изначально готов к потреблению человеческим глазом, потом и пользуют везде и всюду.

вектор удобен функциональностью и т. д. но в остальном тяжел как чёрт, потому и не пользуют.

freeExec 2017

В качестве оверлеев он очень неплох.

Vort 2017

Программирование картостиля — это интересно. Лишь бы не перестарались.

Популярное