wiki:Styles/Coloured_Streets

Version 33 (modified by stoecker, 11 years ago) ( diff )

Split english and german

[TranslatedPages

[[Image(...)]] Coloured Streets

Description

The mappaint style "Coloured Streets" makes working with addresses easier.

Streets, buildings and address nodes with the same street name are highlighted in the same colour. Thereby you can quickly recognize, which house belongs to which street. It analyzes for streets the key "name" and for addresses the key "addr:street" resp. for associatedStreet relations for the housenumber the key "name" of the relation. Furthermore it indicates missing or incorrect data. If there is addr:street but no addr:nousenumber then it shows "number?". If addr:street is missing then it shows "street?". If addr:housenumber is missing it shows "number?". If there are streets (ways with highway=*) with an addr:*=* tag, then it shows "no addr!". Coloured Streets is also very good compatible with the style Less Obtrusive Nodes.

Coloured Streets uses 33 specially selected colours, which are used on average equally often. In individual cases the same colour of adjacent streets may still occur. This is because of the limited number of clearly distinguishable colours and can not be completely eliminated.

There are 2 options for customizing the mappaint style. For this purpose, for each option a colour in the preferences menu of JOSM need to get changed (menu:edit -> preferences -> Display Settings -> Colors). White means "yes", black means "no". After the change a JOSM restart is required.

  • If you want to allow "addr:postcode=*" on streets (and don't want to see a warning message for these cases), then you change the colour "Paint style coloured: streets.boolean.allow.postcode.on.highway" to white (default is black = not allow = warning is displayed).
  • If you want that name:prefix and name:suffix for names of streets and associatedStreet relations are taken into account, then you change the colour "Paint style coloured: streets.boolean.support.prefix.and.suffix.on.highway.names" to white (default is black = are not taken into account = only the key "name" is analyzed). At least in parts of the USA and of Greece names of streets are devided into these components. By activating this option you can get better results with Coloured Streets in these areas.

Other useful tools for address mapping: Coloured_Postcode, Coloured_Suburb, HousenumberValidator, OSM Inspector, ITO maps, Roof modelling.

For the Coloured Streets mappaint style JOSM version 9609 or newer is required. For ideas/questions/bugs/suggestions or similar please write a message to geozeisig and/or Klumbumbus.

Example of Coloured Streets:

Example Coloured Streets (NOZIP)

(data used for image ©OpenStreetMap contributors)

For comparison, here is a part of my "test center".

JOSM default internal style compared to Coloured Streets 3.0:

No image "JOSM_internal_compared_to_Coloured_Streets3.0.gif" attached to Styles/Coloured_Streets

(This picture was created with a modified version of Coloured Streets to ensure that all colours show up top.)

Changelog

Version 2.0.xx to 3.0.xx

  • Instead of analyzing the first letter of the street name for colour choice, now a crc32-hashcode is generated and based on this the colours are choosen. This results in the following listed advantages. Special thanks at this point to the development team of JOSM, which special for this mappaint style implemented a new function. Without this new function the following improvements wouldn't be possible.
    • Different streets with the same first letter, which are near to each other are now displayed in different colours.
    • Typos somewhere in the street name are displayed with a different colour.
    • It works now worldwide, also in countries, where a lot of streets start and end with the same letter.
    • It works now for all unicode characters automatically and not every single unicode character needs to added manually to the mappaint style code.
    • The former alternative version of Coloured Streets (which analyzed the last letter) is now superfluous.
  • An option is implemented, which sets wether the warning message "no addr!" on streets with addr:postcode=* is displayed (default is: warning message is displayed).
  • An option is implemented, which sets wether name:prefix and name:suffix for the colour choice of names of streets an associatedStreet relations are taken into account (default is: name:prefix and name:suffix are not taken into account).
  • highway=pedestrian which are tagged as area (closed way with area=yes, or multipolygon) are now displayed with the correct color and fill-color and with the name in the center (instead of on the outline). name:prefix and name:suffix are also supported if it is enabled in the options.
  • addr:place is now also supported. It is handled equal to addr:street. That means addresses with addr:housenumber and addr:place are displayed like those with addr:housenumber and addr:street. The missing street warning message (street?) is not displayed, if there is addr:place.
  • A warning is now displayed if a line with addr:interpolation=* has other addr:*=* tags ("addr:interpolation shouldn't have other addr:*=* tags!")
  • highway=platform is no longer coloured like streets, because it doesn't belong to addresses
  • The colour #7cfc00 (former for X) was deleted, because it was to similar to #adff2f (former for M)
  • There are 4 new colours:
    • #b88142
    • #a3fe8f
    • #b8674c
    • #fcff5c
  • The following colours slightly changed for better distinction with other colors:
    • #ffd700 (former for K) changed to #ffe400
    • #824b00 (former for P) changed to #824600
    • #808000 (former for W) changed to #707000
  • Transparencies of the fill colours of landuses are increased to improve the display of all the different address colours.
  • The fill colour of place=* is now disabled to improve the display of all the different address colours.
  • The display of the warning message "street?" for areas is minimal improved
  • Some code optimizations

Version 1.011 to 2.0.xx

  • The housenumbers are bigger, have a coloured background and are thereby more visible.
  • Support of associatedStreet relations
  • Support of special characters and unknown characters
  • Simultaneous display of number and name (and number? respectively street?, if necessary)
  • There are 4 new colours:
    • #ffffff (white) is used for all lower case letters and all not supported special characters as first letter of the street name
    • #e1bd6a
    • #81621a
    • #ff7c00
  • The coloured circle at address nodes is now a little bit bigger, so it is more visible behind icons like entrance=*.
  • Housenumbers are now bigger and have also a coloured background.
  • Because of the coloured backgrund of the numbers the street affiliation is also possible when the item is selected.
  • The font of the name of Nodes and buildings is bigger.
  • The following colours changed:
    • G (now #176767) and P (now #824b00) (because they were to dark in particular as background of the black text.)
    • A (now #81c0ff) and I (now #0072e2) (because A and B were to similar)
    • Z (now #ff4444) (because R and Z were to similar)
    • E (now #f0b9a6) (because E and Q were to similar)
  • Support of associatedStreet relations. (The relation must contain the street name in the key "name".)
  • If a building contains name and housenumber then now both is displayed. At first the number then the name, separated by a |.
  • If a node contains name and housenumber then now both is displayed.
  • For a better overall view numbers and names are disabled in lower zoom levels. (The colours and Error messages stay.)
  • Buildings which usually do not contain address data are displayed toned down. (It does only tone down if there is in fact no addr:street=* and no addr:housenumber=* tag.) In detail this applies to areas with one of the following values of the key building: bunker, cabin, farm_auxiliary, garage, garages, hut, roof, shed.
  • For the display of the name now also areas are supported which do not contain any building=*.
  • Transparencies were a little bit increased or added
  • For some special cases of areas, the text is now no longer displayed in the middle and on the outline but only in the middle.
  • Coloured Streets has now an icon, which can be placed in the toolbar for fast on/off switch.
  • Colour and position of the name of nodes unified
  • A missing housenumber is also reported if the node contains amenity=* (this was explicit disabled before)
  • If the housenumber is missing the colour of the outline of a building is now more visible.
  • Now it is also reported ("no addr!") if a street (highway=*) contains a housenumber
  • "street?" is also reported if a area with housenumber does not contain any building=*.
  • "number?" has now also the coloured background
  • "street?" has now a red background
  • At the representations of missing addr:street or addr:housenumber there is now also shown the number and the name, depending on which is availible. For example "street? 5 | name of the shop" or "number? | name of the shop" (the street affiliation in the second case is visible by the colour)
  • "no addr!" has now always red background

Code

meta 
{
        title: "Coloured Streets";
        version: "3.0.127_2021-04-10";
        description: "Colouring of streets, buildings and address nodes with the same street name in the same colour. Works now worldwide! Check out http://josm.openstreetmap.de/wiki/Styles/Coloured_Streets to read how to change the settings of this mappaint style (allow postcode on street, support of name:prefix and name:suffix). Min. JOSM version is 6909.";
        icon: "http://upload.wikimedia.org/wikipedia/commons/3/3a/ColouredStreetsIcon.png";
        author: "geozeisig, Klumbumbus";
        link: "http://josm.openstreetmap.de/wiki/Styles/Coloured_Streets";
        watch-modified: true;
        min-josm-version: "6909";
        /* This mapcss mappaint style was created for JOSM 6909. I try to support future versions of JOSM as long as possible. */
}

meta[lang=de]
{
        title: "Coloured Streets";
        description: "Einfärben von Straßen, Gebäuden und Adressnodes mit gleichem Straßennamen in der gleichen Farbe. Schau dir http://josm.openstreetmap.de/wiki/Styles/Coloured_Streets an, um zu lesen, wie man die Einstellungen dieses mappaint styles ändert (postcode an Straßen erlauben, Berücksichtigung von name:prefix und name:suffix) Min. JOSM-Version ist 6909.";
}

/* create "settings" with boolean properties style_... */

*
{
        allow_postcode_on_highway: Boolean_allow_postcode_on_highway#000000;
        style_allow_postcode_on_highway: eval(red(prop(allow_postcode_on_highway)))=1;
        /* default colour is black, that means postcodes on highways are not allowed, that means style_allow_postcode_on_highway=false */
}

*
{
        support_prefix_and_suffix_on_highway_names: Boolean_support_prefix_and_suffix_on_highway_names#000000;
        style_support_prefix_and_suffix_on_highway_names: eval(red(prop(support_prefix_and_suffix_on_highway_names)))=1;
        /* default colour is black, that means prefix and suffix is not supported, that means style_support_prefix_and_suffix_on_highway_names=false */
}

/* create crc32checksum */
        /* streets and pedestrian areas */
way[highway][name][highway!="platform"][!prop(style_support_prefix_and_suffix_on_highway_names)],
way[highway][name][highway!="platform"][prop(style_support_prefix_and_suffix_on_highway_names)][!name:prefix][!name:suffix],
area[highway="pedestrian"][name][!prop(style_support_prefix_and_suffix_on_highway_names)]:closed,
area[highway="pedestrian"][name][prop(style_support_prefix_and_suffix_on_highway_names)][!name:prefix][!name:suffix]:closed
{
        crc: CRC32_checksum(tag(name))/429496.7296;
}
way[highway][name][highway!="platform"][prop(style_support_prefix_and_suffix_on_highway_names)][name:prefix][!name:suffix],
area[highway="pedestrian"][name][prop(style_support_prefix_and_suffix_on_highway_names)][name:prefix][!name:suffix]:closed
{
        crc: CRC32_checksum(concat(tag("name:prefix"), " ", tag("name")))/429496.7296;
}
way[highway][name][highway!="platform"][prop(style_support_prefix_and_suffix_on_highway_names)][!name:prefix][name:suffix],
area[highway="pedestrian"][name][prop(style_support_prefix_and_suffix_on_highway_names)][!name:prefix][name:suffix]:closed
{
        crc: CRC32_checksum(concat(tag("name"), " ", tag("name:suffix")))/429496.7296;
}
way[highway][name][highway!="platform"][prop(style_support_prefix_and_suffix_on_highway_names)][name:prefix][name:suffix],
area[highway="pedestrian"][name][prop(style_support_prefix_and_suffix_on_highway_names)][name:prefix][name:suffix]:closed
{
        crc: CRC32_checksum(concat(tag("name:prefix"), " ", tag("name"), " ", tag("name:suffix")))/429496.7296;
}

        /* associated street relations */
relation[type="associatedStreet"][name] > area["addr:housenumber"][!prop(style_support_prefix_and_suffix_on_highway_names)],
relation[type="associatedStreet"][name] > node["addr:housenumber"][!prop(style_support_prefix_and_suffix_on_highway_names)]::halo,
relation[type="associatedStreet"][name][!name:prefix][!name:suffix] > area["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)],
relation[type="associatedStreet"][name][!name:prefix][!name:suffix] > node["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)]::halo
{
        crc: CRC32_checksum(parent_tag("name"))/429496.7296;
}
relation[type="associatedStreet"][name][name:prefix][!name:suffix] > area["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)],
relation[type="associatedStreet"][name][name:prefix][!name:suffix] > node["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)]::halo
{
        crc: CRC32_checksum(concat(parent_tag("name:prefix"), " ", parent_tag("name")))/429496.7296;
}
relation[type="associatedStreet"][name][!name:prefix][name:suffix] > area["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)],
relation[type="associatedStreet"][name][!name:prefix][name:suffix] > node["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)]::halo
{
        crc: CRC32_checksum(concat(parent_tag("name"), " ", parent_tag("name:suffix")))/429496.7296;
}
relation[type="associatedStreet"][name][name:prefix][name:suffix] > area["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)],
relation[type="associatedStreet"][name][name:prefix][name:suffix] > node["addr:housenumber"][prop(style_support_prefix_and_suffix_on_highway_names)]::halo
{
        crc: CRC32_checksum(concat(parent_tag("name:prefix"), " ", parent_tag("name"), " ", parent_tag("name:suffix")))/429496.7296;
}

        /* everything else */
*["addr:place"]
{
        crc: CRC32_checksum(tag("addr:place"))/429496.7296;
}
*["addr:place"]::halo
{
        crc: CRC32_checksum(tag("addr:place"))/429496.7296;
}
*["addr:street"]
{
        crc: CRC32_checksum(tag("addr:street"))/429496.7296;
}
*["addr:street"]::halo
{
        crc: CRC32_checksum(tag("addr:street"))/429496.7296;
}

/* ------------------------------------------------------------------------------------------------------------------------ */

/* tone down landuse fill-color */

area[landuse]
{
        fill-opacity: 0.12;
}

/* disable place fill-color */

area[place]
{
        fill-opacity: 0;
}

/* tone down garages and other "small" buildings, as they usually do not have addr:*=* tags. */

area[building=bunker][!"addr:housenumber"][!"addr:street"][!"addr:place"],
area[building=cabin][!"addr:housenumber"][!"addr:street"][!"addr:place"],
area[building=farm_auxiliary][!"addr:housenumber"][!"addr:street"][!"addr:place"],
area[building=garage][!"addr:housenumber"][!"addr:street"][!"addr:place"],
area[building=garages][!"addr:housenumber"][!"addr:street"][!"addr:place"],
area[building=hut][!"addr:housenumber"][!"addr:street"][!"addr:place"],
area[building=roof][!"addr:housenumber"][!"addr:street"][!"addr:place"],
area[building=shed][!"addr:housenumber"][!"addr:street"][!"addr:place"]
{
        fill-color: #ffddf1;
        width: 1;
}

/* ------------------------------------------------------------------------------------------------------------------------ */

/* highlight address areas, address nodes and streets */
        /* all rules, which apply to all colors and different rules for different zoom */
                /* address areas */
area|z18-["addr:street"],
area|z18-["addr:place"],
relation[type="associatedStreet"] > area|z18-["addr:housenumber"]
{ 
        width: 3;
        fill-opacity:0.2;       
        text-halo-radius: 3;
        text: eval(cond(has_tag_key(name), concat(tag("addr:housenumber"), " | ", tag("name")), tag("addr:housenumber")));
}
area|z-17["addr:street"],
area|z-17["addr:place"],
relation[type="associatedStreet"] > area|z-17["addr:housenumber"]
{ 
        width: 3;
        fill-opacity:0.2;       
        text: ;
}
                /* address nodes */
node|z18-["addr:street"]::halo,
node|z18-["addr:place"]::halo,
relation[type="associatedStreet"] > node|z18-["addr:housenumber"]::halo
{
        symbol-shape: circle;
        symbol-size: 22;
        symbol-fill-opacity: 0.8;
        z-index: -1;
        text: eval(tag("addr:housenumber"));
        font-size: 12;
        text-color: black;
        text-anchor-vertical: center;
        text-offset-x: -3;
        text-halo-radius: 2;
        text-halo-opacity: 0.8;
}
node|z-17["addr:street"]::halo,
node|z-17["addr:place"]::halo,
relation[type="associatedStreet"] > node|z-17["addr:housenumber"]::halo
{
        symbol-shape: circle;
        symbol-size: 22;
        symbol-fill-opacity: 0.8;
        z-index: -1;
        text: ;
        font-size: 12;
        text-color: black;
        text-anchor-vertical: center;
        text-offset-x: -3;
        text-halo-radius: 2;
        text-halo-opacity: 0.8;
}
                /* streets */
way|z18-["highway"]["name"][highway!="platform"]
{
        width: 3;
        font-size: 12;
        text-color: #000000;
        text-position: line;
        text: eval(tag("name"));
        text-offset: 0;
        text-halo-radius: 2;
}
way|z-17["highway"]["name"][highway!="platform"]
{
        width: 3;
        text: ;
}
                /* pedestrian as area */
area|z18-["name"][highway=pedestrian]:closed
{
        width: 3;
        font-size: 12;
        text-color: #000000;
        text-position: center;
        text: eval(tag("name"));
        text-halo-radius: 2;
        /* fill-color is needed to set it as "area style" to display the names for pedestrian multipolygons correctly. fill-color is set later in the different colors. */
        fill-opacity: 0.2;
}
area|z-17["name"][highway=pedestrian]:closed
{
        width: 3;
        text: ;
        text-halo-radius: 2;
        /* fill-color is needed to set it as "area style" to display the names for pedestrian multipolygons correctly. fill-color is set later in the different colors. */
        fill-opacity: 0.2;
}
                /* display pedestrian areas (not multipolygons) without area=yes as line and not as area */
way["highway"="pedestrian"][name][area!=yes]
{
        text-position: line;
        fill-opacity: 0;
}


        /* 33 different special selected colors */
area["addr:street"][prop(crc)<303],
area["addr:place"][prop(crc)<303],
relation[type="associatedStreet"][prop(crc)<303] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)<303]:closed
{ 
        color: #ffffff; /* Default value for color is fill-color. Color needs to set nevertheless that pedestrian area multipolygons and areas with "number?" are displayed correctly. */
        fill-color: #ffffff;
        text-halo-color: #ffffff;
}
node["addr:street"][prop(crc)<303]::halo,
node["addr:place"][prop(crc)<303]::halo,
relation[type="associatedStreet"][prop(crc)<303] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #ffffff;
        text-halo-color: #ffffff;
}
way["highway"]["name"][prop(crc)<303]
{
        color: #ffffff;
        text-halo-color: #ffffff;
}
                /* --------- */
area["addr:street"][prop(crc)>=303][prop(crc)<606],
area["addr:place"][prop(crc)>=303][prop(crc)<606],
relation[type="associatedStreet"][prop(crc)>=303][prop(crc)<606] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=303][prop(crc)<606]:closed
{ 
        color: #b88142;
        fill-color: #b88142;
        text-halo-color: #b88142;
}
node["addr:street"][prop(crc)>=303][prop(crc)<606]::halo,
node["addr:place"][prop(crc)>=303][prop(crc)<606]::halo,
relation[type="associatedStreet"][prop(crc)>=303][prop(crc)<606] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #b88142;
        text-halo-color: #b88142;
}
way["highway"]["name"][prop(crc)>=303][prop(crc)<606]
{
        color: #b88142;
        text-halo-color: #b88142;
}
                /* --------- */
area["addr:street"][prop(crc)>=606][prop(crc)<909],
area["addr:place"][prop(crc)>=606][prop(crc)<909],
relation[type="associatedStreet"][prop(crc)>=606][prop(crc)<909] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=606][prop(crc)<909]:closed
{ 
        color: #a3fe8f;
        fill-color: #a3fe8f;
        text-halo-color: #a3fe8f;
}
node["addr:street"][prop(crc)>=606][prop(crc)<909]::halo,
node["addr:place"][prop(crc)>=606][prop(crc)<909]::halo,
relation[type="associatedStreet"][prop(crc)>=606][prop(crc)<909] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #a3fe8f;
        text-halo-color: #a3fe8f;
}
way["highway"]["name"][prop(crc)>=606][prop(crc)<909]
{
        color: #a3fe8f;
        text-halo-color: #a3fe8f;
}
                /* --------- */
area["addr:street"][prop(crc)>=909][prop(crc)<1212],
area["addr:place"][prop(crc)>=909][prop(crc)<1212],
relation[type="associatedStreet"][prop(crc)>=909][prop(crc)<1212] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=909][prop(crc)<1212]:closed
{ 
        color: #b8674c;
        fill-color: #b8674c;
        text-halo-color: #b8674c;
}
node["addr:street"][prop(crc)>=909][prop(crc)<1212]::halo,
node["addr:place"][prop(crc)>=909][prop(crc)<1212]::halo,
relation[type="associatedStreet"][prop(crc)>=909][prop(crc)<1212] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #b8674c;
        text-halo-color: #b8674c;
}
way["highway"]["name"][prop(crc)>=909][prop(crc)<1212]
{
        color: #b8674c;
        text-halo-color: #b8674c;
}
                /* --------- */
area["addr:street"][prop(crc)>=1212][prop(crc)<1515],
area["addr:place"][prop(crc)>=1212][prop(crc)<1515],
relation[type="associatedStreet"][prop(crc)>=1212][prop(crc)<1515] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=1212][prop(crc)<1515]:closed
{ 
        color: #fcff5c;
        fill-color: #fcff5c;
        text-halo-color: #fcff5c;
}
node["addr:street"][prop(crc)>=1212][prop(crc)<1515]::halo,
node["addr:place"][prop(crc)>=1212][prop(crc)<1515]::halo,
relation[type="associatedStreet"][prop(crc)>=1212][prop(crc)<1515] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #fcff5c;
        text-halo-color: #fcff5c;
}
way["highway"]["name"][prop(crc)>=1212][prop(crc)<1515]
{
        color: #fcff5c;
        text-halo-color: #fcff5c;
}
                /* --------- */
area["addr:street"][prop(crc)>=1515][prop(crc)<1818],
area["addr:place"][prop(crc)>=1515][prop(crc)<1818],
relation[type="associatedStreet"][prop(crc)>=1515][prop(crc)<1818] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=1515][prop(crc)<1818]:closed
{ 
        color: #81c0ff;
        fill-color: #81c0ff;
        text-halo-color: #81c0ff;
}
node["addr:street"][prop(crc)>=1515][prop(crc)<1818]::halo,
node["addr:place"][prop(crc)>=1515][prop(crc)<1818]::halo,
relation[type="associatedStreet"][prop(crc)>=1515][prop(crc)<1818] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #81c0ff;
        text-halo-color: #81c0ff;
}
way["highway"]["name"][prop(crc)>=1515][prop(crc)<1818]
{
        color: #81c0ff;
        text-halo-color: #81c0ff;
}
                /* --------- */
area["addr:street"][prop(crc)>=1818][prop(crc)<2121],
area["addr:place"][prop(crc)>=1818][prop(crc)<2121],
relation[type="associatedStreet"][prop(crc)>=1818][prop(crc)<2121] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=1818][prop(crc)<2121]:closed
{ 
        color: #6b8e23;
        fill-color: #6b8e23;
        text-halo-color: #6b8e23;
}
node["addr:street"][prop(crc)>=1818][prop(crc)<2121]::halo,
node["addr:place"][prop(crc)>=1818][prop(crc)<2121]::halo,
relation[type="associatedStreet"][prop(crc)>=1818][prop(crc)<2121] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #6b8e23;
        text-halo-color: #6b8e23;
}
way["highway"]["name"][prop(crc)>=1818][prop(crc)<2121] 
{
        color: #6b8e23;
        text-halo-color: #6b8e23;
}
                /* --------- */
area["addr:street"][prop(crc)>=2121][prop(crc)<2424],
area["addr:place"][prop(crc)>=2121][prop(crc)<2424],
relation[type="associatedStreet"][prop(crc)>=2121][prop(crc)<2424] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=2121][prop(crc)<2424]:closed
{ 
        color: #e1bd6a;
        fill-color: #e1bd6a;
        text-halo-color: #e1bd6a;
}
node["addr:street"][prop(crc)>=2121][prop(crc)<2424]::halo,
node["addr:place"][prop(crc)>=2121][prop(crc)<2424]::halo,
relation[type="associatedStreet"][prop(crc)>=2121][prop(crc)<2424] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #e1bd6a;
        text-halo-color: #e1bd6a;
}
way["highway"]["name"][prop(crc)>=2121][prop(crc)<2424]
{
        color: #e1bd6a;
        text-halo-color: #e1bd6a;
}
                /* --------- */
area["addr:street"][prop(crc)>=2424][prop(crc)<2727],
area["addr:place"][prop(crc)>=2424][prop(crc)<2727],
relation[type="associatedStreet"][prop(crc)>=2424][prop(crc)<2727] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=2424][prop(crc)<2727]:closed
{ 
        color: #7fffd4;
        fill-color: #7fffd4;
        text-halo-color: #7fffd4;
}
node["addr:street"][prop(crc)>=2424][prop(crc)<2727]::halo,
node["addr:place"][prop(crc)>=2424][prop(crc)<2727]::halo,
relation[type="associatedStreet"][prop(crc)>=2424][prop(crc)<2727] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #7fffd4;
        text-halo-color: #7fffd4;
}
way["highway"]["name"][prop(crc)>=2424][prop(crc)<2727] 
{
        color: #7fffd4;
        text-halo-color: #7fffd4;
}
                /* --------- */
area["addr:street"][prop(crc)>=2727][prop(crc)<3030],
area["addr:place"][prop(crc)>=2727][prop(crc)<3030],
relation[type="associatedStreet"][prop(crc)>=2727][prop(crc)<3030] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=2727][prop(crc)<3030]:closed
{ 
        color: #8a2be2;
        fill-color: #8a2be2;
        text-halo-color: #8a2be2;
}
node["addr:street"][prop(crc)>=2727][prop(crc)<3030]::halo,
node["addr:place"][prop(crc)>=2727][prop(crc)<3030]::halo,
relation[type="associatedStreet"][prop(crc)>=2727][prop(crc)<3030] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #8a2be2;
        text-halo-color: #8a2be2;
}
way["highway"]["name"][prop(crc)>=2727][prop(crc)<3030]
{
        color: #8a2be2;
        text-halo-color: #8a2be2;
}
                /* --------- */
area["addr:street"][prop(crc)>=3030][prop(crc)<3333],
area["addr:place"][prop(crc)>=3030][prop(crc)<3333],
relation[type="associatedStreet"][prop(crc)>=3030][prop(crc)<3333] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=3030][prop(crc)<3333]:closed
{ 
        color: #a52a2a;
        fill-color: #a52a2a;
        text-halo-color: #a52a2a;
}
node["addr:street"][prop(crc)>=3030][prop(crc)<3333]::halo,
node["addr:place"][prop(crc)>=3030][prop(crc)<3333]::halo,
relation[type="associatedStreet"][prop(crc)>=3030][prop(crc)<3333] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #a52a2a;
        text-halo-color: #a52a2a;
}
way["highway"]["name"][prop(crc)>=3030][prop(crc)<3333] 
{
        color: #a52a2a;
        text-halo-color: #a52a2a;
}
                /* --------- */
area["addr:street"][prop(crc)>=3333][prop(crc)<3636],
area["addr:place"][prop(crc)>=3333][prop(crc)<3636],
relation[type="associatedStreet"][prop(crc)>=3333][prop(crc)<3636] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=3333][prop(crc)<3636]:closed
{ 
        color: #f0b9a6;
        fill-color: #f0b9a6;
        text-halo-color: #f0b9a6;
}
node["addr:street"][prop(crc)>=3333][prop(crc)<3636]::halo,
node["addr:place"][prop(crc)>=3333][prop(crc)<3636]::halo,
relation[type="associatedStreet"][prop(crc)>=3333][prop(crc)<3636] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #f0b9a6;
        text-halo-color: #f0b9a6;
}
way["highway"]["name"][prop(crc)>=3333][prop(crc)<3636] 
{
        color: #f0b9a6;
        text-halo-color: #f0b9a6;
}
                /* --------- */
area["addr:street"][prop(crc)>=3636][prop(crc)<3939],
area["addr:place"][prop(crc)>=3636][prop(crc)<3939],
relation[type="associatedStreet"][prop(crc)>=3636][prop(crc)<3939] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=3636][prop(crc)<3939]:closed
{ 
        color: #8fbc8f;
        fill-color: #8fbc8f;
        text-halo-color: #8fbc8f;
}
node["addr:street"][prop(crc)>=3636][prop(crc)<3939]::halo,
node["addr:place"][prop(crc)>=3636][prop(crc)<3939]::halo,
relation[type="associatedStreet"][prop(crc)>=3636][prop(crc)<3939] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #8fbc8f;
        text-halo-color: #8fbc8f;
}
way["highway"]["name"][prop(crc)>=3636][prop(crc)<3939] 
{
        color: #8fbc8f;
        text-halo-color: #8fbc8f;
}
                /* --------- */
area["addr:street"][prop(crc)>=3939][prop(crc)<4242],
area["addr:place"][prop(crc)>=3939][prop(crc)<4242],
relation[type="associatedStreet"][prop(crc)>=3939][prop(crc)<4242] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=3939][prop(crc)<4242]:closed
{ 
        color: #1b7777;
        fill-color: #1b7777;
        text-halo-color: #1b7777;
}
node["addr:street"][prop(crc)>=3939][prop(crc)<4242]::halo,
node["addr:place"][prop(crc)>=3939][prop(crc)<4242]::halo,
relation[type="associatedStreet"][prop(crc)>=3939][prop(crc)<4242] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #1b7777;
        text-halo-color: #1b7777;
}
way["highway"]["name"][prop(crc)>=3939][prop(crc)<4242] 
{
        color: #1b7777;
        text-halo-color: #1b7777;
}
                /* --------- */
area["addr:street"][prop(crc)>=4242][prop(crc)<4545],
area["addr:place"][prop(crc)>=4242][prop(crc)<4545],
relation[type="associatedStreet"][prop(crc)>=4242][prop(crc)<4545] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=4242][prop(crc)<4545]:closed
{ 
        color: #ff1493;
        fill-color: #ff1493;
        text-halo-color: #ff1493;
}
node["addr:street"][prop(crc)>=4242][prop(crc)<4545]::halo,
node["addr:place"][prop(crc)>=4242][prop(crc)<4545]::halo,
relation[type="associatedStreet"][prop(crc)>=4242][prop(crc)<4545] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #ff1493;
        text-halo-color: #ff1493;
}
way["highway"]["name"][prop(crc)>=4242][prop(crc)<4545] 
{
        color: #ff1493;
        text-halo-color: #ff1493;
}
                /* --------- */
area["addr:street"][prop(crc)>=4545][prop(crc)<4848],
area["addr:place"][prop(crc)>=4545][prop(crc)<4848],
relation[type="associatedStreet"][prop(crc)>=4545][prop(crc)<4848] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=4545][prop(crc)<4848]:closed
{ 
        color: #0072e2;
        fill-color: #0072e2;
        text-halo-color: #0072e2;
}
node["addr:street"][prop(crc)>=4545][prop(crc)<4848]::halo,
node["addr:place"][prop(crc)>=4545][prop(crc)<4848]::halo,
relation[type="associatedStreet"][prop(crc)>=4545][prop(crc)<4848] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #0072e2;
        text-halo-color: #0072e2;
}
way["highway"]["name"][prop(crc)>=4545][prop(crc)<4848] 
{
        color: #0072e2;
        text-halo-color: #0072e2;
}
                /* --------- */
area["addr:street"][prop(crc)>=4848][prop(crc)<5151],
area["addr:place"][prop(crc)>=4848][prop(crc)<5151],
relation[type="associatedStreet"][prop(crc)>=4848][prop(crc)<5151] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=4848][prop(crc)<5151]:closed
{ 
        color: #228b22;
        fill-color: #228b22;
        text-halo-color: #228b22;
}
node["addr:street"][prop(crc)>=4848][prop(crc)<5151]::halo,
node["addr:place"][prop(crc)>=4848][prop(crc)<5151]::halo,
relation[type="associatedStreet"][prop(crc)>=4848][prop(crc)<5151] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #228b22;
        text-halo-color: #228b22;
}
way["highway"]["name"][prop(crc)>=4848][prop(crc)<5151] 
{
        color: #228b22;
        text-halo-color: #228b22;
}
                /* --------- */
area["addr:street"][prop(crc)>=5151][prop(crc)<5454],
area["addr:place"][prop(crc)>=5151][prop(crc)<5454],
relation[type="associatedStreet"][prop(crc)>=5151][prop(crc)<5454] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=5151][prop(crc)<5454]:closed
{ 
        color: #ffe400;
        fill-color: #ffe400;
        text-halo-color: #ffe400;
}
node["addr:street"][prop(crc)>=5151][prop(crc)<5454]::halo,
node["addr:place"][prop(crc)>=5151][prop(crc)<5454]::halo,
relation[type="associatedStreet"][prop(crc)>=5151][prop(crc)<5454] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #ffe400;
        text-halo-color: #ffe400;
}
way["highway"]["name"][prop(crc)>=5151][prop(crc)<5454] 
{
        color: #ffe400;
        text-halo-color: #ffe400;
}
                /* --------- */
area["addr:street"][prop(crc)>=5454][prop(crc)<5757],
area["addr:place"][prop(crc)>=5454][prop(crc)<5757],
relation[type="associatedStreet"][prop(crc)>=5454][prop(crc)<5757] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=5454][prop(crc)<5757]:closed
{ 
        color: #BF9017;
        fill-color: #BF9017;
        text-halo-color: #BF9017;
}
node["addr:street"][prop(crc)>=5454][prop(crc)<5757]::halo,
node["addr:place"][prop(crc)>=5454][prop(crc)<5757]::halo,
relation[type="associatedStreet"][prop(crc)>=5454][prop(crc)<5757] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #BF9017;
        text-halo-color: #BF9017;
}
way["highway"]["name"][prop(crc)>=5454][prop(crc)<5757]
{
        color: #BF9017;
        text-halo-color: #BF9017;
}
                /* --------- */
area["addr:street"][prop(crc)>=5757][prop(crc)<6060],
area["addr:place"][prop(crc)>=5757][prop(crc)<6060],
relation[type="associatedStreet"][prop(crc)>=5757][prop(crc)<6060] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=5757][prop(crc)<6060]:closed
{ 
        color: #adff2f;
        fill-color: #adff2f;
        text-halo-color: #adff2f;
}
node["addr:street"][prop(crc)>=5757][prop(crc)<6060]::halo,
node["addr:place"][prop(crc)>=5757][prop(crc)<6060]::halo,
relation[type="associatedStreet"][prop(crc)>=5757][prop(crc)<6060] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #adff2f;
        text-halo-color: #adff2f;
}
way["highway"]["name"][prop(crc)>=5757][prop(crc)<6060] 
{
        color: #adff2f;
        text-halo-color: #adff2f;
}
                /* --------- */
area["addr:street"][prop(crc)>=6060][prop(crc)<6363],
area["addr:place"][prop(crc)>=6060][prop(crc)<6363],
relation[type="associatedStreet"][prop(crc)>=6060][prop(crc)<6363] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=6060][prop(crc)<6363]:closed
{ 
        color: #ff69b4;
        fill-color: #ff69b4;
        text-halo-color: #ff69b4;
}
node["addr:street"][prop(crc)>=6060][prop(crc)<6363]::halo,
node["addr:place"][prop(crc)>=6060][prop(crc)<6363]::halo,
relation[type="associatedStreet"][prop(crc)>=6060][prop(crc)<6363] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #ff69b4;
        text-halo-color: #ff69b4;
}
way["highway"]["name"][prop(crc)>=6060][prop(crc)<6363] 
{
        color: #ff69b4;
        text-halo-color: #ff69b4;
}
                /* --------- */
area["addr:street"][prop(crc)>=6363][prop(crc)<6666],
area["addr:place"][prop(crc)>=6363][prop(crc)<6666],
relation[type="associatedStreet"][prop(crc)>=6363][prop(crc)<6666] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=6363][prop(crc)<6666]:closed
{ 
        color: #cd5c5c;
        fill-color: #cd5c5c;
        text-halo-color: #cd5c5c;
}
node["addr:street"][prop(crc)>=6363][prop(crc)<6666]::halo,
node["addr:place"][prop(crc)>=6363][prop(crc)<6666]::halo,
relation[type="associatedStreet"][prop(crc)>=6363][prop(crc)<6666] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #cd5c5c;
        text-halo-color: #cd5c5c;
}
way["highway"]["name"][prop(crc)>=6363][prop(crc)<6666]
{
        color: #cd5c5c;
        text-halo-color: #cd5c5c;
}
                /* --------- */
area["addr:street"][prop(crc)>=6666][prop(crc)<6969],
area["addr:place"][prop(crc)>=6666][prop(crc)<6969],
relation[type="associatedStreet"][prop(crc)>=6666][prop(crc)<6969] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=6666][prop(crc)<6969]:closed
{ 
        color: #81621a;
        fill-color: #81621a;
        text-halo-color: #81621a;
}
node["addr:street"][prop(crc)>=6666][prop(crc)<6969]::halo,
node["addr:place"][prop(crc)>=6666][prop(crc)<6969]::halo,
relation[type="associatedStreet"][prop(crc)>=6666][prop(crc)<6969] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #81621a;
        text-halo-color: #81621a;
}
way["highway"]["name"][prop(crc)>=6666][prop(crc)<6969]  
{
        color: #81621a;
        text-halo-color: #81621a;
}
                /* --------- */
area["addr:street"][prop(crc)>=6969][prop(crc)<7272],
area["addr:place"][prop(crc)>=6969][prop(crc)<7272],
relation[type="associatedStreet"][prop(crc)>=6969][prop(crc)<7272] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=6969][prop(crc)<7272]:closed
{ 
        color: #824600;
        fill-color: #824600;
        text-halo-color: #824600;
}
node["addr:street"][prop(crc)>=6969][prop(crc)<7272]::halo,
node["addr:place"][prop(crc)>=6969][prop(crc)<7272]::halo,
relation[type="associatedStreet"][prop(crc)>=6969][prop(crc)<7272] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #824600;
        text-halo-color: #824600;
}
way["highway"]["name"][prop(crc)>=6969][prop(crc)<7272] 
{
        color: #824600;
        text-halo-color: #824600;
}
                /* --------- */
area["addr:street"][prop(crc)>=7272][prop(crc)<7575],
area["addr:place"][prop(crc)>=7272][prop(crc)<7575],
relation[type="associatedStreet"][prop(crc)>=7272][prop(crc)<7575] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=7272][prop(crc)<7575]:closed
{ 
        color: #f08080;
        fill-color: #f08080;
        text-halo-color: #f08080;
}
node["addr:street"][prop(crc)>=7272][prop(crc)<7575]::halo,
node["addr:place"][prop(crc)>=7272][prop(crc)<7575]::halo,
relation[type="associatedStreet"][prop(crc)>=7272][prop(crc)<7575] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #f08080;
        text-halo-color: #f08080;
}
way["highway"]["name"][prop(crc)>=7272][prop(crc)<7575] 
{
        color: #f08080;
        text-halo-color: #f08080;
}
                /* --------- */
area["addr:street"][prop(crc)>=7575][prop(crc)<7878],
area["addr:place"][prop(crc)>=7575][prop(crc)<7878],
relation[type="associatedStreet"][prop(crc)>=7575][prop(crc)<7878] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=7575][prop(crc)<7878]:closed
{ 
        color: #F75617;
        fill-color: #F75617;
        text-halo-color: #F75617;
}
node["addr:street"][prop(crc)>=7575][prop(crc)<7878]::halo,
node["addr:place"][prop(crc)>=7575][prop(crc)<7878]::halo,
relation[type="associatedStreet"][prop(crc)>=7575][prop(crc)<7878] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #F75617;
        text-halo-color: #F75617;
}
way["highway"]["name"][prop(crc)>=7575][prop(crc)<7878] 
{
        color: #F75617;
        text-halo-color: #F75617;
}
                /* --------- */
area["addr:street"][prop(crc)>=7878][prop(crc)<8181],
area["addr:place"][prop(crc)>=7878][prop(crc)<8181],
relation[type="associatedStreet"][prop(crc)>=7878][prop(crc)<8181] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=7878][prop(crc)<8181]:closed
{ 
        color: #32cd32;
        fill-color: #32cd32;
        text-halo-color: #32cd32;
}
node["addr:street"][prop(crc)>=7878][prop(crc)<8181]::halo,
node["addr:place"][prop(crc)>=7878][prop(crc)<8181]::halo,
relation[type="associatedStreet"][prop(crc)>=7878][prop(crc)<8181] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #32cd32;
        text-halo-color: #32cd32;
}
way["highway"]["name"][prop(crc)>=7878][prop(crc)<8181] 
{
        color: #32cd32;
        text-halo-color: #32cd32;
}
                /* --------- */
area["addr:street"][prop(crc)>=8181][prop(crc)<8484],
area["addr:place"][prop(crc)>=8181][prop(crc)<8484],
relation[type="associatedStreet"][prop(crc)>=8181][prop(crc)<8484] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=8181][prop(crc)<8484]:closed
{ 
        color: #ba55d3;
        fill-color: #ba55d3;
        text-halo-color: #ba55d3;
}
node["addr:street"][prop(crc)>=8181][prop(crc)<8484]::halo,
node["addr:place"][prop(crc)>=8181][prop(crc)<8484]::halo,
relation[type="associatedStreet"][prop(crc)>=8181][prop(crc)<8484] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #ba55d3;
        text-halo-color: #ba55d3;
}
way["highway"]["name"][prop(crc)>=8181][prop(crc)<8484] 
{
        color: #ba55d3;
        text-halo-color: #ba55d3;
}
                /* --------- */
area["addr:street"][prop(crc)>=8484][prop(crc)<8787],
area["addr:place"][prop(crc)>=8484][prop(crc)<8787],
relation[type="associatedStreet"][prop(crc)>=8484][prop(crc)<8787] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=8484][prop(crc)<8787]:closed
{ 
        color: #9370db;
        fill-color: #9370db;
        text-halo-color: #9370db;
}
node["addr:street"][prop(crc)>=8484][prop(crc)<8787]::halo,
node["addr:place"][prop(crc)>=8484][prop(crc)<8787]::halo,
relation[type="associatedStreet"][prop(crc)>=8484][prop(crc)<8787] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #9370db;
        text-halo-color: #9370db;
}
way["highway"]["name"][prop(crc)>=8484][prop(crc)<8787] 
{
        color: #9370db;
        text-halo-color: #9370db;
}
                /* --------- */
area["addr:street"][prop(crc)>=8787][prop(crc)<9090],
area["addr:place"][prop(crc)>=8787][prop(crc)<9090],
relation[type="associatedStreet"][prop(crc)>=8787][prop(crc)<9090] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=8787][prop(crc)<9090]:closed
{ 
        color: #ff7c00;
        fill-color: #ff7c00;
        text-halo-color: #ff7c00;
}
node["addr:street"][prop(crc)>=8787][prop(crc)<9090]::halo,
node["addr:place"][prop(crc)>=8787][prop(crc)<9090]::halo,
relation[type="associatedStreet"][prop(crc)>=8787][prop(crc)<9090] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #ff7c00;
        text-halo-color: #ff7c00;
}
way["highway"]["name"][prop(crc)>=8787][prop(crc)<9090] 
{
        color: #ff7c00;
        text-halo-color: #ff7c00;
}
                /* --------- */
area["addr:street"][prop(crc)>=9090][prop(crc)<9393],
area["addr:place"][prop(crc)>=9090][prop(crc)<9393],
relation[type="associatedStreet"][prop(crc)>=9090][prop(crc)<9393] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=9090][prop(crc)<9393]:closed
{ 
        color: #3cb371;
        fill-color: #3cb371;
        text-halo-color: #3cb371;
}
node["addr:street"][prop(crc)>=9090][prop(crc)<9393]::halo,
node["addr:place"][prop(crc)>=9090][prop(crc)<9393]::halo,
relation[type="associatedStreet"][prop(crc)>=9090][prop(crc)<9393] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #3cb371;
        text-halo-color: #3cb371;
}
way["highway"]["name"][prop(crc)>=9090][prop(crc)<9393] 
{
        color: #3cb371;
        text-halo-color: #3cb371;
}
                /* --------- */
area["addr:street"][prop(crc)>=9393][prop(crc)<9696],
area["addr:place"][prop(crc)>=9393][prop(crc)<9696],
relation[type="associatedStreet"][prop(crc)>=9393][prop(crc)<9696] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=9393][prop(crc)<9696]:closed
{ 
        color: #707000;
        fill-color: #707000;
        text-halo-color: #707000;
}
node["addr:street"][prop(crc)>=9393][prop(crc)<9696]::halo,
node["addr:place"][prop(crc)>=9393][prop(crc)<9696]::halo,
relation[type="associatedStreet"][prop(crc)>=9393][prop(crc)<9696] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #707000;
        text-halo-color: #707000;

}
way["highway"]["name"][prop(crc)>=9393][prop(crc)<9696] 
{
        color: #707000;
        text-halo-color: #707000;
}
                /* --------- */
area["addr:street"][prop(crc)>=9696],
area["addr:place"][prop(crc)>=9696],
relation[type="associatedStreet"][prop(crc)>=9696] > area["addr:housenumber"],
area["highway"="pedestrian"]["name"][prop(crc)>=9696]:closed
{ 
        color: #ff4444;
        fill-color: #ff4444;
        text-halo-color: #ff4444;
}
node["addr:street"][prop(crc)>=9696]::halo,
node["addr:place"][prop(crc)>=9696]::halo,
relation[type="associatedStreet"][prop(crc)>=9696] > node["addr:housenumber"]::halo
{
        symbol-fill-color: #ff4444;
        text-halo-color: #ff4444;
}
way["highway"]["name"][prop(crc)>=9696]
{
        color: #ff4444;
        text-halo-color: #ff4444;
}

/* ------------------------------------------------------------------------------------------------------------------------ */

/* Error messages and other special rules */
        /* have housenumber, miss street */
node[addr:housenumber][!addr:street][!addr:place],
area[addr:housenumber][!addr:street][!addr:place]
{
        isinassociatedstreetrelation: eval(cond(parent_tag(type)="associatedStreet",true,false));
}
area[addr:housenumber][!addr:street][!addr:place][prop(isinassociatedstreetrelation)=false]
{ 
        text: eval(cond(has_tag_key(name), concat("street? ", tag("addr:housenumber"), " | ", tag("name")),concat("street? ", tag("addr:housenumber"))));
        text-halo-color: red;
        text-halo-radius: 2;
        text-halo-opacity: 0.8;
        width: 3;
        fill-color: #FF0000;
        fill-opacity:0.7;
        text-color: #000000;
        font-size: 10;
        casing-width: 1;
        casing-color: #FFFF00;
        
}
node[addr:housenumber][!addr:street][!addr:place][prop(isinassociatedstreetrelation)=false]::halo
{ 
        text: eval(concat("street? ", tag("addr:housenumber")));
        font-size: 12;
        text-color: black;
        text-halo-color: red;
        text-halo-radius: 2;
        text-halo-opacity: 0.8;
        text-anchor-vertical: center;
        symbol-shape: triangle;
        symbol-fill-opacity:0.7;
        symbol-fill-color: #FF0000;
        symbol-size: 30;
        symbol-stroke-color: #FFFF00;
        z-index: -1;    
}

        /* have street, miss housenumber */
area[addr:street][!addr:housenumber][!highway][!addr:interpolation],
area[addr:place][!addr:housenumber][!highway][!addr:interpolation]
{ 
        width: 3;
        text-halo-radius: 2;
        fill-color: #FF0000;
        fill-opacity:0.7;
        text: eval(cond(has_tag_key(name), concat("number? | ", tag("name")), "number?"));
        text-position: center;
        text-color: #000000;
        font-size: 12;
        casing-width: 1;
        casing-color: #FFFF00;  
}
node["addr:street"][!"addr:housenumber"]::halo,
node["addr:place"][!"addr:housenumber"]::halo
{ 
        text: eval("number?");
        text-color: black;
        font-size: 12;
        symbol-shape: triangle;
        symbol-fill-opacity:0.7;
        symbol-fill-color: #FF0000;
        symbol-size: 30;
        symbol-stroke-color: #FFFF00;
        z-index: -1;    
}

        /* street with addr:*=* */
way["highway"]["addr:country"],
way["highway"]["addr:postcode"][!prop(style_allow_postcode_on_highway)],
way["highway"]["addr:city"],
way["highway"]["addr:street"],
way["highway"]["addr:place"],
way["highway"]["addr:housenumber"]
{
        text: eval("no addr!");
        color: red;
        width: 5;
        dashes: 20,4;
        dashes-background-color: #FFFF00;
        object-z-index:-1.0;
        text-halo-color: red;
        text-halo-radius: 2;

}

        /* addr:*=* together with addr:interpolation=* */
way["addr:interpolation"]["addr:country"],
way["addr:interpolation"]["addr:postcode"],
way["addr:interpolation"]["addr:city"],
way["addr:interpolation"]["addr:street"],
way["addr:interpolation"]["addr:place"],
way["addr:interpolation"]["addr:housenumber"]
{
        text: eval("addr:interpolation shouldn't have other addr:*=* tags!");
        color: red;
        width: 5;
        dashes: 20,4;
        dashes-background-color: #FFFF00;
        object-z-index:-1.0;
        text-halo-color: red;
        text-halo-radius: 2;
        text-color: black;
        font-size: 12;
}


        /* names of nodes */
node["addr:housenumber"]
{
        font-size: 10;
        text-color: white;
        text-anchor-vertical: center;
        text-offset-y: -10;
        text-offset-x: 8;
}

        /* disable double numbers */
node["addr:housenumber"][!name]
{
        font-size: 0;
} 

        /* names for adress nodes without number */
node[!"addr:housenumber"][name][addr:street],
node[!"addr:housenumber"][name][addr:place]
{
        font-size: 10;
        text-color: white;
        text-anchor-vertical: center;
        text-offset-y: -10;
        text-offset-x: 8;
} 

        /* text style of areas with number */
way:closed["addr:housenumber"],
relation[type=multipolygon]["addr:housenumber"],
relation[type="associatedStreet"] > area["addr:housenumber"]
{
        text-color: black;
        font-size: 12;
        text-position: center;

}

        /* text style of highways and false addr */

way[highway][highway!="platform"]
{
        text-color: black;
        font-size: 12;
}
        
        /* higway=residential without name */   
way[highway=residential][!name]
{
        color: #FF0000;
        width: 5;
        font-size: 12;
        text-color: #000000;
        text-position: line;
        text: eval("no name!");
        text-offset: 0;
        text-halo-color: #FF0000;
        text-halo-radius: 2;
        dashes: 20,4;
        dashes-background-color: #FFFF00;
        
}

Styles_Coloured_Streets-style.mapcss, Styles_Coloured_Streets.zip

Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.