This is a style to visualize the presence of some of the simple 3D roof tags (i.e. roof:shape and roof:colour, which can be mapped from aerial views). Therefore, it helps mapping these tags in JOSM faster and more efficiently because you can see easily where these tags are missing. This style is not intended as a replacement for Kendzi3d. Results can be viewed in OSM-3D. Please add ideas for further improvement at the bottom of this page. {{{ #!style type="mapcss" meta { title: "Simple roof tags"; author: "heilbron"; version: "1.[[revision]]_[[date]]"; description: "Visualize the presence of some simple roof tags (shape & colour)"; link: "https://josm.openstreetmap.de/wiki/Styles/SimpleRoofTags"; } area[building] { z-index: 1; fill-opacity: 0.03; /* let the background, i.e. the roof, be recognizable */ } area[building]["roof:colour"] { z-index: 1; opacity: 0.9; color: (tag("roof:colour")); /* if a color is set, use it to color the outline ... */ } area[building]["roof:colour"=red] { z-index: 1; color: #A54040; /* ... but make red (#FF0000) a mixture of brown and red */ opacity: 0.7; /* less intrusive */ } area[building]["roof:colour"=lightgrey] { color: #CCCCCC; /* ... but make lightgrey (#D3D3D3) a little darker*/ } area[building]["roof:colour"=grey] { color: #A5A5A5; /* ... but make grey (#BEBEBE) a little darker*/ } area[building]["roof:colour"=darkgrey] { color: #606060; /* ... but make darkgrey (#A9A9A9) quite darker*/ } area[building]["roof:colour"=brown] { color: #902525; /* ... but make brown (#A52A2A) darker*/ } area[building][!"roof:colour"] { z-index: 1; color: #101010; /* no roof:colour tag => make the outline look almost black */ } area|z17-[building][!"roof:shape"] /* no roof shape set? => dash the outline */ { z-index: 1; width: 4; dashes: 3,3; /* any building WITHOUT a roof:shape tag (except fpr garages) gets a 4 pixel outline */ } area|z17-[building=~/garage.*/], area|z17-[building=carport] /* almost ignore roof tags for carports and garages, i.e. make them all look the same, ... */ { z-index: 0; width: 2; dashes: 9,2; color: #282828; /* garages get a thin, dashed, almost black outline, unless tagged otherwise */ } area|z17-[building=~/barn/], area|z17-[building=~/hut/] /* ... and make barns and huts also look different from other buildings*/ { z-index: 0; width: 2; dashes: 6,2; /* color: #282828; /* barns get a almost black outline, unless tagged otherwise */ } area|z16-[building]["roof:shape"] { z-index: 1; fill-opacity: 0.03; /* let the background, i.e. the roof, be recognizable */ width: 5; /* any building WITH a roof:shape tag (except for garages) get a 5 pixel thick outline */ /* ... extend the text tag with information about nthe roof: */ text: eval(concat( cond(has_tag_key("addr:housenumber"), tag("addr:housenumber"), "."), " - ", get(regexp_match("(....).*", tag("roof:shape")),1) , cond(has_tag_key("roof:orientation")," /","") , cond(has_tag_key("roof:levels"), concat(" (",tag("roof:levels"),")"), "") )); /* font-size: 9; */ font-weight: bold; } }}} Ideas for improvements: * Visualize the roof:orientation tag, i.e. using an icon. --> DONE by adding a " /" (between shape and no of levels) if a orientation tag is present. * Make all visualized roof colours look a little darker (not just the ones adressed by the exceptions) * Visualize additional information that can be gathered by a ground or aerial survey, i.e. roof:shape and roof:levels. --> DONE in V8.