Roof Modelling

Hy there,

I’ve got a problem with modelling some kind of roofs. How would you tag this roof?:

(The left one, for the case that the focus isn’t perfectly)

Normally it is roof:shape=gabled, but with the shorter part in the north it won’t work. I also tried to work with roof ridge/edge, but i don’t get the right roof.

Does anyone know how to tag this?

Thanks for your help.


if you want the perfectly right rendering for F4map (even it is forbidden to tag for a specific renderer) you should split your building in 2 parts.

For now our roof algorithm is very naive and adapt the ridge to the minimal oriented bounding box.

Basicly I would do a similar approach. Not sure, maybe O2W and Kendzi 3D can figure out the right shape by just using a roof:shape=gabled on the single building outline.

I don’t know how this could work with to parts. I also tried this. The Problem is, that the shorter ridge is not at the highest point. it has no defined height. If I draw a second part there, I don’t know the height and there would be a step.
I think, with the actual Tags it is not possible to tag this roof. If anyone knows, how this could be tagged, please tell me.
It’s a big problem for me, in this area many roofs have this shape.

I don’t known algorithm with could handle this case.

Personally I thing that gabled shape is good approximation of this roof. But if you want to do it more precisely you need to split it into parts, which involve adding heights.

I think, there have to be additional Tags/additional rendering because actually some roofs couldn’t be build in OSM.

If the beginning of a roof is not all around at the same height, you’ll get wrong renderings.
Even the roof I meant in #1 is actually not to draw in OSM.
There have to be solutions for this kind of roofs.
I don’t know how this could work.

Things-change, let´s talk about it. Do You have contact data of me?


Please change rendering rules for roof:shape=round.
If bounding box longer than12 m then resolution= 24 -effective for the half cirlce=12
If the bounding box longer than 20m then resolution= 32 -effective for the half cirlce=16
If the bounding box longer than 32 m then resolution= 48 -effective for the half cirlce=24

or something like this…


We need support of half_dome. I suggest the use of half cirlce in the top view with the attribute roof:shape=half_dome and automatic calculation of the hight from the half circle diameter.


Could you make some images how half_dome could look like?

OK. Maybe short description in assembler:
" Cwiartka jablka. Przecinam jablko horyzontalnie, wywalam dolna polowe. Sprytnym ciosem noza po pionie odkrajam jedna czwarta. Dostaje to, jak np wyglada muszla koncertowa filharmonii w operze lesnej przy pomocy tagu depth=value opisujace grubosc konstrukcji robie z tego wneke "

Du hast eine PN

I see more and more the need of implementation of roof type “3.4.” from .

The difference is only - I describe there rectangular shape, but it should work for every possible geometry of building outline.
I think it´s not so complicated to implement it.

If we could keep it simple and use a constant offset to the outline then it should be easy to implement and also work for non-rectangle outlines. What about quadruple_saltbox with only parameter roof:ridge:offset with default offset being roof:height?

In jts/geos this could be implemented with buffer operation and join type mitre. As segments may collapse with this operation (in general) one could get the start of the roof by positive buffering the result by the same amount.

green is the original, blue is flat area and purple is slope area

Edit: of course the offset could also be determined from roof:height together with roof:angle

I wasn’t so far off with the above estimation for what kind of outlines will be tagged quadruple_saltbox :slight_smile:,rot=202,tilt=40,lat=53.08,lon=8.831


Very good job! I agree fully.
I would say, we can extend now the simple 3d definition with this roof type.
Any voices against this idea?

But how we would like to name it?

Just ‘saltbox’, ‘flat_mansard’ or ‘mansard’ with additional parameter? I think this is also related to the ‘frustum’ suggestion on s3db talk page.

Flat mansard sounds great :slight_smile:
Could You add it to the s3d specification?

How can I reach that square roofs are rendered in the right direction (across/along)?

Here f4map turns the roof in the middle, osm2world Map turns the right one:

That buildings are almost square so you should not use roof:orientation tag. That tag it won’t work on square like buildings. You could try to roof:direction but i don’t known if F4 is support it.