wiki:Styles/SimpleBuildingTags

Overview

This style visualizes the presence of some of the simple 3D building tags, i.e. building:colour, building:levels, roof:levels, as well as certain building types, which can be obtained during ground surveys. Therefore, it helps mapping these tags from within JOSM faster and more efficiently because you can easily see where these tags are missing!

Please feel free to add ideas for further improvement at the bottom of this wiki page.

Screenshots

The following screenshots show the rendering differences with and without the style. The wall colour of the building is shown, as well as the number of building levels (here: 4) and roof levels (here: 1). Special buildings, such as garages, have a dashed represantation in order not to distract from the more important building types.

JOSM screenshot with SimpleBuildingTags JOSM screenshot without SimpleBuildingTags

Style code

meta   
{
        title: "Simple building tags";
        author: "heilbron"; 
        version: "1.21_2020-10-05"; 
        description: "Visualize basic simple 3D building tags, e.g. (building) colour, building:levels, roof:levels. Improves speed of entering gathered ground truth into the map.";
        link: "https://josm.openstreetmap.de/wiki/Styles/SimpleBuildingTags";
}       
       
area[building], area[building:part]
{
        z-index: 1;
        fill-opacity: 0.03; /* let the background, i.e. the roof, be recognizable through the background */
}

area[building]["building:colour"], area[building:part]["building:colour"]
{
        z-index: 1;
        opacity: 0.9;
        color: (tag("building:colour")); /* if a color is set, use it to color the outline ... */
}

area[building]["building:colour"=white], area[building:part]["building:colour"=white]
{
        color: #F5F5F5; /* ... but make a white boarder(#FFFFFF) a bit distinguishable from a white background */
}

area[building]["building:colour"=grey], area[building:part]["building:colour"=grey]
{
        color: #AAAAAA; /* ... but make grey (#BEBEBE) a little darker*/
}

area[building]["building:colour"=darkgrey], area[building:part]["building:colour"=darkgrey]
{
        color: #505050; /* ... but make darkgrey (#A9A9A9) quite darker*/
}

area[building]["building:colour"=brown], area[building:part]["building:colour"=brown]
{
        color: #802020; /* ... but make brown (#A52A2A) darker*/
}

area[building][!"building:colour"], area[building:part][!"building:colour"]
{
        z-index: 1;
        color: #202020; /* no building:colour tag => make the outline look almost black */
}

area|z17-[building][!"building:levels"], area|z17-[building:part][!"building:levels"] /* no building:levels set? => dash the outline */
{
        z-index: 1;
        width: 4;
        dashes: 3,3; /* any building WITHOUT a building:levels tag (except fpr garages) gets a 4 pixel outline */
}

area|z17-[building=~/garage.*/], area|z17-[building:part=~/garage.*/]       /* ... but almost ignore building tags for garages, i.e. make them all look the same */
{
        z-index: 0;
        width: 2;
        dashes: 8,1;
        color: #282828; /* garages get a thin, dashed, almost black outline, unless tagged otherwise */
}

area|z17-[building="shed"]    /* ... and also treat sheds in a simplified manner */
{
        z-index: 0;
        width: 2;
        dashes: 10,1;
        color: #282828; /* garages get a thin, dashed, almost black outline, unless tagged otherwise */
}


area|z17-[building]["building:levels"], area|z17-[building:part]["building:levels"]
{
        z-index: 1;
        fill-opacity: 0.03; /* let the background, i.e. the roof, be recognizable */
        width: 5; /* any building WITH a building:levels tag (except for garages) gets a 5 pixel thick outline ... */
        /* text-halo-radius: 2; */  
        /* ... as well as a text tag giving the house number as well as the number of building:levels and roof:levels (and roof height in brackets): */
        text: eval(concat( cond(has_tag_key("addr:housenumber"), tag("addr:housenumber"), "."), " - ", tag("building:levels"), "/", cond(has_tag_key("roof:levels"), tag("roof:levels"), "") ,   cond(has_tag_key("roof:height"), concat("(",tag("roof:height"),"m)"), "")  )) ; 
        /* font-size: 9; */
        font-weight: bold;
}

Styles_SimpleBuildingTags-style.mapcss, Styles_SimpleBuildingTags.zip

Ideas for improvements:

  • Visualize the number of building:levels --> added in version 4.
  • Visualize roof:height in round brackets, too. --> added in version 11.
  • Treat building:part's the same as buildings. --> added in version 12.

There is also a style Building_Levels_Labels that has a similar scope but its texts are more verbose, therefor occupying more screen space.

Last modified 5 months ago Last modified on 2020-10-05T18:18:24+02:00

Attachments (2)

Download all attachments as: .zip