1 сентября 2015-го

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

Карта в багровых тонах

Mateusz Konieczny из Кракова увлёкся OpenStreetMap два года назад. Программист на Ruby, он почти сразу начал писать обработчики данных. Однако его главный вклад в проект не имеет отношения к программированию: когда закончится обсуждение его пул-реквеста (208 комментариев за три недели), карту на osm.org будет не узнать.

В мае он вписался в программу Google Summer of Code студентом, и всё лето работал над перекрашиванием дорог на нашем картостиле. Нынешние цвета взяты с официальных английских карт (или со схемы каналов Ричарда), и плохо работают в других странах. Игра «найди trunk в лесу» знакома каждому. Когда-то стиль OSM был одним из лучших, но все конкуренты ушли вперёд. Матеуш начал со сравнения стиля с Google и гуманитарным стилем. Уже через месяц он выдал первую версию нового стиля, с непривычно оранжевыми магистралями.

Это не первый опыт Матеуша в CartoCSS: сейчас он на четвёртом месте среди авторов стиля openstreetmap-carto, а первые пул-реквесты он отправлял ещё в июне 2014 года. Получив возможность заниматься стилем плотно и за деньги, он не ограничился дорогами, а провёл много дополнительных изменений: убрал с карты highway=proposed, очистил 12-й масштаб от домов и улиц, поменял узор для разных видов лесов и объединил вид footway с path. Разумеется, каждое изменение влечёт споры, особенно последнее, которое русскоязычные осмеры ругают до сих пор. Однако в нём же на карте появилось долгожданное отображение покрытия: пока только для тропинок и велодорожек, но скоро и для автодорог. Каждое улучшение стиля он обосновывает и объясняет в своём блоге на osm.org: такого вдумчивого подхода наш картостиль не знал никогда.

Как будут выглядеть дороги после мёрджа спорного пул-реквеста, поможет понять демонстрационная карта Пола Нормана. Больше никаких синего и зелёного: только оттенки жёлтого. Tertiary от residential отличается только толщиной — самое спорное решение, поглотившее почтовые рассылки и обсуждения на гитхабе. Многие дороги сделаны тоньше, highway=service теперь еле увидишь. Проезды living_street теперь не так серы, а highway=road хоть и не убраны, как хотел автор, но менее заметны. И не совсем про автодороги, но главные железнодорожные пути станут отличимы от остальных.

Разделяй и оптимизируй

Владимир Агафонкин давно рассказывает про библиотеку geojson-vt: она нарезает большие файлы GeoJSON на векторные тайлы прямо в браузере (или на сервере, или в нативном коде для смартфонов). Это часть большого стека отрисовки всего в виде векторных тайлов (Mapbox GL JS), про который автор делал много одинаковых докладов в первой половине года.

Что он сейчас сделал впервые — это написал статью про то, какие алгоритмы и решения делают geojson-vt таким быстрым. Вдумчивого чтения там на полчаса, хотя суть укладывается в список в середине: искать подходящие алгоритмы, не делать ненужного, лишнее удалять, и самое главное — профилировать каждую операцию. По сути, то же, что было в Leaflet, но результат куда эффектнее: сотни мегабайт данных обрабатываются пару секунд и отображаются почти мгновенно. Правда, видеозаписи этого чуда найти проще работающих примеров.

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

20 августа 2015   · · ·
← Ctrl →
· · ·   30 сентября 2015