Трёхмерные здания в Mapnik

Настала, наверное, пора, достать из недр кошачьей лаборотории новую штуку: объёмный рендеринг зданий.

http://latlon.org/buildings

Немножко подробностей:
Внутри - никакой не виндовзовый коммерческий рендерер, а обычны mapnik 0.7.1 с хитрым стилем.
Для тех, кто полезет в документацию и подумает, что всё очень просто: BuildingSymbolizer глючный и не используется. Хотя, может быть, просто я не умею его готовить :slight_smile:

Поддерживаются также здания сложной формы (не все получилось рендерить совсем корректно, но некоторым повезло :slight_smile:

Для того, чтобы рисовать здания сложной формы, стоит следовать этой схеме: http://wiki.openstreetmap.org/wiki/User:Jongleur/MultiLevel_Building_Shapes

Кроме того, понимая, какой адский труд - расставить везде этажность (и точно не знаешь, но посмотреть-то хочется…), было сделано следующее допущение:
Если у дома не прописана этажность/высота, и он стоит на полигоне residential=urban - он девятиэтажный. Если он стоит на полигоне residential=rural или landuse=garages - он одноэтажный.

Отдельное спасибо kosmosnimki.ru за предоставление места под всё это безобразие. :3

Если кто-то хочет себе исходник стиля, - обещаю его увести в Public Domain, как только кто-то напишет поддержку для разбора MapCSS eval() на питоне в структуры, которые можно будет потом пересобрать в корректный SQL и опубликует под лицензией, совместимой с GPL3.

http://latlon.org/buildings?zoom=18&lat=55.86289&lon=37.49092&layers=BT уголок откоцал почему-то

Super kawajno. :3

Aleksandr Dezhin, пофикшено.

Вот это ПРИЯТНЫЙ сюрприз :slight_smile:
Срочно проставляю этажи в зданиях :slight_smile:

Кстати, это реально помогает ориентироваться, для карт очень правильное решение.

Супер-новость! Ещё чуток допилить стиль, и будет вообще замечательно (тёмно-серые здания на мой взгляд как-то слишком угнетающе выглядят)

И ещё - этот render берёт в расчёт сугубо building:levels, насколько я вижу. А я везде проставляю только building:height…
В итоге по всему Кишинёву прорендерилось только два здания, где указано число этажей :frowning:

Как поступить - можно ждать поддержки building:height, или есть смысл везде проставлять levels? С этим проблем не должно быть - я по городу всем девятиэтажкам проставил height=30 m, так что просто все их выделить и проставить levels труда не составит!

Твой building:height взят с потолка, как я понимаю. Правильно он его не рисует :3
Проставлять надо было этажи, а не высоту на глазок.

ну так на mapsurfer рендерится по height, я его и проставлял :slight_smile:

А как часто база обновляется? Могу хоть сейчас большинству многоэтажек задать levels…

Jekader, мапсёрфер прекрасно рендерит по building:levels. Зачем было проставлять от балды высоту?

Рендеринг обновляется, как и положено, в реальном времени.

RFE: Добавить поддержку man_made=tower/chimney с проставлеными height. :slight_smile:

Sergey Astakhov, скинь ссылку на пример. Можно в IRC :slight_smile:

причём желательно не только в виде точки, но и полигона! (вот пример, на стандартном мапнике вообще не рендерится)

Вот из недавнего проставленого:

http://www.openstreetmap.org/browse/node/1028496129
http://www.openstreetmap.org/browse/node/1026981104

Высоту первой нашёл в интернете, вторую прикидывал по соотношению длин теней.

спасибо Komяpa
сори что без спросу, сделал ZMP для саспланет
http://sasgis.ru/forum/viewtopic.php?f=2&p=16939#p16939

п.с. рендерится все на ура с тегом building:levels

WOW! Это прорыв!)

Komяpa, СУПЕР!!! ДАвно ждал такой фичи (mapsurfer пол жизни будешь ждать) :slight_smile:

Ещё нет. :slight_smile:
Прорыв будет, когда появится нормальная поддержка зелёнки: man_made=cutlune, wetland=marsh/bog/swamp - последнее особенно актуально. Это ж форменное безобразие, когда рендер не различает заболоченный лес и открытое болото.

Пишите на хабр :slight_smile:

Супер!

А арки в 3D зданиях будут?

После мапсёрфера сразу видно отсутствие 3Д заборов :slight_smile:

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

Кстати, как получается онлайн обновление? В чём секрет? :slight_smile: