Simple 3D Buildings
This page describes tags for basic 3D attributes of buildings.
|This is a basic schema for 3D buildings. So it's limited and not every geometry/detail can be described that way. Than you can give propriety extensions (as Kendzi3d) an try, or wait till the next version for complex modeling.
Your welcome to note this complex cases at the Talk page!
The following tagging methods are results of the 2nd 3D Workshop Garching, where most 3D developers agreed on supporting a unified subset of tags in their programs. Basically we describe the volume of a building using two types of areas. Building outlines for the most general area of a complex building and building parts, to describe esp. parts with different height or other attributes.
The building outline is represented as an area tagged with building=*. It's the area covered by any part of the building. Other tags that refer to the entire building (e.g. address if applicable) have to be tagged at this building outline, too.
Note that if a building has at least one area tagged as building:part=yes, the building outline is no longer considered for volume rendering, unless it is also tagged as a building part. For example, <TODO>
One can handle this situation in two ways
- Cover the whole outline with building:part areas. This areas may overlap each other or may be disjunct, which depends on the actual building.
- Use building:part=yes only for those parts, which differ from the overall building.
In this case you might use a building relation to get the outline for 3D rendering. The building outline gets the role outline and the building parts should get the role part.
Tags for buildings outlines and parts
The following tags can be used on both building outlines and building parts.
|height=*||Distance between the lowest possible position with ground contact and the top of the roof of the building, excluding antennas, spires and other equipment mounted on the roof.|
|min_height=*|| Approximate height below the building structure.|
Note that when min_height is used, height is still defined as the distance from the ground to the top of the structure. So "bridge" with 3 meters height, where bottom part of the bridge is positioned 10 meters above ground level will have min_height=10, height=13.
|building:levels=*|| Number of floors of the building above ground (without levels in the roof), to be able to texture the building in a nice way.
If you tag new buildings, try to give a height value. Try to use building:levels=* only in addition to an height tag!
|building:min_level=*||levels skipped in a building part, analogous to min_height|
You can characterize the building roof using a catalogue of well known roof types. Additional roof shapes may be introduced later, including advanced approaches for manual modelling (e.g. User:Aschilli/ProposedRoofLines or parts of OSM-4D/Roof_table).
|roof:orientation=along/across||For roofs with a ridge the ridge is assumed to be parallel to the longest side of the building. But it can be tagged explicitly with this tag.|
|roof:height=*||roof height in meters|
|roof:angle=*||Alternatively to roof:height=* set roof height in degrees.|
|roof:levels=*||Number of floors within the roof, which are not already counted in building:levels=*.|
Again, some roofs (e.g. square buildings) cannot be accurately modelled with the simple techniques described on this page.
|building:colour=*||Colour of the building facade. See colour=* for possible values.|
|roof:colour=*||Colour of the building roof. See colour=* for possible values.|
|building:material=*||Outer material for the building facade.|
|roof:material=*||Outer material for the building roof.|
A relation tagged with type=building groups building outline and all building parts together. It is highly recommended to use the relation if there is at least one building part. Otherwise an application has to fall back to search for building parts only within the area of the building outline.
To make it as easy as possible for the community, we started added details already to the following:
- Passau (GER) 2D 3D
- Graz (AT) 2D 3D, 2D 3D
- Rostock Südstadt (GER) 2D 3D
- Hagen (GER) 2D 3D
- Karlsruhe (GER) 2D 3D, 2D 3D
- Coburg (GER) 2D 3D
- Las Vegas (US) 2D 3D
- New York (US) 2D 3D
- Phoenix (US) 2D 3D
- Syracuse (US) 2D 3D
- Leipzig (GER) 2D 3D
- Bremen (GER) 2D 3D
- Where, kind of area, Photo, Permalink, ...
The following 3D tools make use of this new schema:
- OSM2World (partial support, currently implementing the remaining features for the 0.2.0 release) - see the slippymap
- Kendzi3d (supported)
- OSM-3D (partial support, see OSM-3D#Buildings)
- Android 3D mapping SDK  . Supports height parameter only (so far) for 3D polygons.
- WikiMiniAtlas (partial support, only pyramidal roofs)