Template:Roof:shape
Roof shape
You can characterize the roof shape of a building using a catalogue of well-known roof types.
Image | ||||
---|---|---|---|---|
roof:shape | flat | gabled | gabled_height_moved | skillion |
Image | ||||
---|---|---|---|---|
roof:shape | hipped | half-hipped | side_hipped | side_half-hipped |
Image | |||
---|---|---|---|
roof:shape | hipped-and-gabled | mansard | gambrel |
Image | ||||
---|---|---|---|---|
roof:shape | pyramidal | crosspitched | sawtooth | butterfly |
Image | ||||
---|---|---|---|---|
roof:shape | cone | dome | onion | round |
Other common values
Value | Comment |
---|---|
many | Marks that building has multiple different roof shapes at once. It is discouraged to use it because it is useless for rendering (roofs with this value are rendered as flat). Instead, use building:part=* carrying own roof:shape values. History described in detail in roof:shape=many. |
Other roof tags
Key | Comment |
---|---|
roof:height=* | Height of the roof, from the top of the facades to the top of the roof.
See the section below for a good understanding of this tag and the usage of height, building:levels and roof:levels. |
roof:levels=* | Number of specific floors within the roof only.
See the section below for a good understanding of this tag and the usage of height, roof:height and building:levels. |
roof:angle=* | Alternatively to roof:height=*, roof height can be indicated implicitly by providing the inclination of the sides (in degrees). |
roof:direction=* | Direction from back side of roof to front, i.e. the direction towards which the main face of the roof is looking. |
roof:orientation=along/across | For roofs with a ridge, the ridge is assumed to be parallel to the longest side of the building (roof:orientation=along). But it can be tagged explicitly with this tag. |
roof:colour=* | The (dominant) colour of the roof. Useful in conjunction with roof:material=*. |
roof:material=* | The outermost material of the roof. Useful in conjunction with roof:colour=*. |
Usage of height, roof:height, building:levels, roof:levels
There is currently an incompatibility between the meaning of the tags *:levels in 2D and 3D representations.
In 2D, they designate the number of floors of the part: 1 floor, 2 floors... 5 floors, etc.
In 3D, when height tags are not used, the tags *:levels, in the 3D rendering, are converted to simulated heights. Each floor is converted into a 3 meters high rendering.
For example, building:levels=3, roof:levels=1, no tag height=*, no tag roof:height=* will be converted in the 3D rendering into a 12 meters height building with 9 meters under the roof and 3 meters for the roof.
Therefore users can used decimal numbers for levels to have a good height. For example, in taginfo, you can find building:levels=1.5, roof:levels=0.5 or roof:levels=0.2! But what does "0.2 floor" mean in a 2D description of the building?
Rather than using decimal values, add the building heights. You will thus have compatibility between 2D and 3D information.
Example:
- rather than building:levels=1.5, roof:levels=0.7, no tag height=*, no tag roof:height=*,
- use building:levels=1, roof:levels=0, height=6.6, roof:height=2.1
Explanations:
- 1.5 building levels and 0.7 roof levels probably mean 1 useful floor for the building facades and no useful floors for the roof
- 1.5 + 0.7 = 2.2 floors in total = a height of 6.6 meters for the entire building (using 3 meters for each floor)
- 0.7 roof floor = a height of 2.1 meters for the roof
Notes:
- actual building heights are likely unknown for 99% of buildings in OSM. The value 3 meters for a floor is a default value, probably very close to reality for most of these buildings, and will display a good 3D rendering consistent with buildings without height tags. But of course if you know the real heights, use them!
- in some cases both are clearly necessary. For example for a sports hall, the building levels value is usually one (one floor and one ceiling) but the height is higher than the default 3 meters, so you need to add the actual height (for example building:levels=1, height=6). Please do not use a false 2 levels value to simulate a 6 meters high building if the building only has 1 ceiling!
This section is a wiki template, editable here.