alaCarte

В свободное от работы над OSRM время DennisL, как оказалось, заставляет студентов Технологического института Карлсруэ работать над OpenStreetMap-проектами. Пару дней назад он продемонстрировал результат: рендерер MapCSS на C++11, оптимизированный для выдачи тайлов и включающий http-сервер. Исходники выложены на гитхаб под копилефт-лицензией.

Презентация на немецком языке (слайды сменяются пробелом) рассказывает про огромные объёмы данных (сервер рисует район Германии, около 230 мегабайт в pbf), эвристики для расстановки надписей, и как всё здорово получилось: готовый к установке дистрибутив, работающий сразу на OSM XML; исправленные стили MapCSS мгновенно подхватываются, а производительность сопоставима с мапником.

Проект улучшается ежедневно: студенты ещё не потеряли интерес, и постоянно что-то подкручивают. Так, на днях сервер научился работать с мета-тайлами, и, похоже, тестовое покрытие скоро расширят на всю Европу. У alaCarte есть все шансы вырасти в «Mapnik на MapCSS»: пусть не такой продвинутый, зато «народный», как и формат стилей.

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

Больше рендеров, хороших и разных!

afonin

Мне одному кажется, что карта — уродская? ;-)

Илья Зверев

Это же MapCSS. Справа вверху есть переключался слоёв, там ещё один стиль. Ну и можно подключать большинство опубликованных MapCSS-стилей, в том числе котяриных и от JOSM.

OverQuantum

Это как в комментариях на youtube всегда найдётся кто-то кто спросит «что за музыка играет?», так и в обсуждении рендера OSM всегда найдётся кто-то кто скажет «а рендерер уродский» :)

bopoh13

А есть ли там ссылка на скомпилированный проект под Windows? )
А то вместо How to build надо искать How it worked

bopoh13

Опять все для линуксоводов ((( В guide.md написано «Zum Kompilieren unter Linux:» Похоже, можно не дёргаться.

AMDmi3

Что там для линуксоводов? Сборка на кросс-платформенном cmake, все библиотеки открытые, внутри даже замечен windows-specific код.

AMDmi3

Собрал под FreeBSD, поигрался. Штука замечательная — запускается одной командой, само перезагружает стиль при его обновлении, умеет все базовые вещи (с мапником я не работал, так что не знаю какие есть небазовые, но годный стиль для walking papers я себе за пару часов накидал).

Теперь можно за минуты поднять рендер чего угодно и сразу скормить ему то что редактируешь в данный момент в josm.

Код понятный, добавлять новые фичи просто. Авторы отзывчивые, два моих патча уже приняли и помогли пофиксить баг.

Илья Зверев

Насчёт walking papers — что там с печатью? Или экспортом в вектор.

AMDmi3

Котяра подсказал что оно использует cairo, а значит может рендерить сразу в pdf, но это надо прикрутить. Между тем, оно уже умеет рендерить svg, правда попадают туда почему-то только закрашенные области, без контуров и текста.
А так как обычно — собирай тайлы в большую картинку да печатай.

Илья Зверев

Проблема сбора тайлов в картинки — dpi. Для печати его нужно минимум удваивать.

AMDmi3

Так картинка 1024x1024 из z17 с 300dpi == картинка 2048x2048 из z18 с 600dpi, разве нет?

Илья Зверев

А размеры букв?

AMDmi3

В своём стиле это мгновенно решается же.

bopoh13

AMDmi3, благодарю за подсказку! С (Visual) C++ я ещё не работал =) Предпочёл бы отказаться от всяких .NET Framework, но что поделать, если для Windows такой вариант будет наименьшим вариантом по времени для компиляции тайлового сервера.

AMDmi3

К слову, Mixaill собрал alaCarte под винду mingw’ом и оно даже работает. Патчи уже в git.

freeExec

Аааа, три убитых вечера чтобы это чудо скомпилилось в студии, 8 зависимых компонентов собранных из исходников, но всё таки я смог собрать это дело без всяких dll-лек в статике. Теперь можно и дебажить.

AMDmi3

Лол, чудо — это среды, в которых на сборку простейшего проекта надо тратить столько сил.

bopoh13

freeExec, поздравляю с первым комом ) А в чём там инфа храниться/обрабатывается?

Mixail

bopoh13, конвертируется импортером в свой формат, а потом сервер загоняет всё в память.