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

Здания, нарисованные как смежные мультиполигоны, рендерятся, хитро протыкая друг друга (например, 78 к3 и это).

http://latlon.org/buildings?zoom=18&lat=58.53114&lon=50.02168&layers=B

А в Якутске многоквартирные дома стоят на сваях… :3

А это и есть многоквартирный дом :slight_smile:

А там свай штук по 160 на дом… :3

Как маньяки с новой бензопилой, чесслово…

А неплохо там памятник-стелла прорисовался :slight_smile:

А можно внизу зданий ещё подъезды рендерить? (Парадные - не обязательно.) Прямоугольник размером с дверь 2 метра в высоту.

Попробовал прикрутить слой WMS, почему-то получается, что он сдвинут на юго-запад метров на 200.

http://stroyki.ryba4.com/
во вкладке со слоями нужно отключить стройки, всключить трёхмерные здания и приблизить.

Добавлены тени.

в полдень - исчезают?

Смотрел на творчество и ржал. :smiley:

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

Двачую. Каша начинается, когда здания ориентированы по сторонам света:

http://latlon.org/buildings?zoom=16&lat=45.05889&lon=38.95501&layers=BT

Вот баг: два куска здания сделаны разными объектами, каждый со своей этажностью, они объединены мультиполигоном для того, чтобы их подписать вместе, но получается бред:
http://latlon.org/buildings?zoom=17&lat=55.02911&lon=82.92693&layers=BT (БЦ Сарэт)
все куски нарисованы с максимальной этажностью, и в ней есть “срез” на уровне где верх низкой части.

Не нужно использовать мультиполигон только для того чтобы подписывать здания. Они предназначены для сложной геометрии, а не для адресации. osm2pgsql конвертирует отношение multipolygon в один большой полигон сложной формы. Естественно, что высота у такого полигона повсюду одна и та же.

Я бы сказал больше: теги, предназначенные для зданий (building=*), надо вешать на здания, а не на какие-то их куски.

Вообще это удивительно, как люди, целыми днями твердящие друг другу “do not tag for renderer”, увидев новый рендерер, тут же бросились всё под него тежить, нарушая при этом существующие модели данных.

Дык красиво же получается! :slight_smile:

а если серьезно, то вроде же параметры levels, min_level, height, min_height нормально укладываются в существующую модель (вон даже пропозал есть).

levels, min_level, height, min_height укладываются, а building=* - нет. Он используется для другого, причём уже давно.

Надо записать best practice в вики.

Как нарисовать и оттежить здание имеющее елементы разной этажности.