28 мая 2014-го

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Работа над ошибками

После заметки, полной горечи, об указании авторства, два самых известных русских пользователя наших данных добавили слово OpenStreetMap на страницы с картами. Большое спасибо программистам и юристам проектов «Спутник» и «2ГИС»! Надеемся, их сотрудничество послужит примером для остальных.

«Veloroad»

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

Про разные технические мелочи я уже рассказал на форуме, а здесь — слайды: чем стиль отличается от остальных. На сайте есть кнопка, открывающее второе окно для сравнения.

На восьмом масштабе стандартный слой показывает только place=city, слои кирово-чепецка и яндекса — place=town, а на veloroad появляются place=village (hamlet — на десятом). Большие расстояния между метками и правильная сортировка не дают карте утонуть в надписях. Это и другие решения вытекают из того, что стиль предназначен для печати, и на бумаге нельзя изменить масштаб, чтобы присмотреться к какой-то части карты. Отсюда же и мелкие буквы: при печати в 300 dpi восьмой размер читается проще, чем на экране в 90 dpi.

Для отображения зарубежных названий используется name:ru. Тут могут быть несколько мнений: для навигации вернее, конечно, использовать названия в том виде, что будут на табличках, но некоторые участники велосипедного форума жаловались, что в Грузии получается вообще нечитаемо. Ну и устно проще прочитать «встречаемся в Козе-Ууэмыйзе», чем неправильно транслитерировать, и оттого разминуться.

Подписи дорог рисуются сбоку, поэтому когда дорогу закрывает линия трека, подписи остаются. Какой смысл рисовать карты, где не подписаны именно те улицы, по которым проходит маршрут, мне непонятно. Также, благодаря идее Котяры, воплощённой в его komap, на veloroad улицы подписаны с 12 масштаба, и эти подписи видны и читаются. Даже у Яндекса нормальные названия улиц появляются только на z14, из альтернатив подписи сопоставимы только у стилей на MapCSS: то есть, на чепецк.net. Статусные части, разумеется, сокращены.

Светло-зелёный, чтобы не засорять карту, лес появляется только на 11 масштабе (на мелких в нём нет смысла для ориентирования, да и красоты немного), а грунтовки и highway=unclassified — только с 12: в отличие от чепецкого, стиль veloroad предназначен для маршрутов длинных путешествий, преимущественно по дорогам от tertiary (рисуются с z9) и выше, и для городских покатушек. На osm.org все дороги внезапно появляются на 10 масштабе, но пользоваться этой мешаниной невозможно.

Железные дороги рисуются только основные (без service=*). К сожалению, многие станции всё равно напоминают вермишель, но, по крайней мере, не теряются важные линии, как на MapSurfer, где на мелких масштабах рисуются только пути с usage=main. Особенно я горжусь станциями, которые поворачиваются вдоль путей: ни на одном другом веб-стиле они не выглядят так хорошо.

При этом станции метро не отображаются вообще. Вместо них рисуются railway=subway_entrance, причём с 12 масштаба. Это единственный, блин, стиль OSM, который не вызывает у новичков вопроса «почему станции метро находятся совсем не там, где должны». Все остальные стилеписатели сомневаются и тянут сопли, извините. Отображать на гражданской карте расположение подземных станций метро — глупость и леность.

Другой предмет споров с новичками — полигоны place=*. Из-за того, что их нет на большинстве стилей, некоторые вешают на них лишний тег landuse=residential. На масштабах 9-11 стиля veloroad территории населённых пунктов определяются по полигону place, на более крупных — складываются из основных landuse.

Горизонтали отображены на масштабах, где в них есть смысл. Пока что только западнее 60° восточной долготы (т. е. Урала). В отличие от большинства остальных карт, рельеф сглажен (использован GMTED2010), поэтому на равнинных территориях горизонтали не превращаются в шедевр импрессионизма, а корректно идентифицируют стометровые холмы. Бергштрихи показывают направление уклона: без них изолинии не имеют смысла.

Линия маршрута — лишь один из слоёв в стиле (мапник умеет GPX), поэтому она не закрывает надписи и маркеры. Делать линейный масштаб в векторном редакторе сложно, поэтому он генерируется прямо мапником: параметры передаются скрипту подготовки картинок, который вписывает их в запрос внутри XML. Разумеется, при постобработке блок масштаба двигается в нужное место, а названия населённых пунктов — прочь от дорог и важных точек.

К сожалению, за разумные деньги можно купить лишь небольшой сервер, поэтому рендерится (с ежеминутным обновлением) лишь северная часть страны: полностью Северо-Западный, Центральный и Дальневосточный федеральные округа, части Уральского и Сибирского, а также полностью страны Прибалтики и восточный кусок Финляндии. Многие северные территории нашей страны лишь на стиле veloroad можно окинуть взглядом: даже Яндекс там рисует только реки, как будто они важнее прочего. Безответственное отношение к картостилям — одна из причин, почему OpenStreetMap не воспринимается всерьёз, и я надеюсь, стиль veloroad поможет показать качество и полноту проекта.

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