Changes between Version 23 and Version 45 of Styles/Maxspeed


Ignore:
Timestamp:
(multiple changes)
Author:
(multiple changes)
Comment:
(multiple changes)

Legend:

Unmodified
Added
Removed
Modified
  • Styles/Maxspeed

    v23 v45  
    11[[TranslatedPages]]
    2 = [[Image(maxspeed_icon.svg,36,middle)]] Maxspeed style =
     2= [[Image(maxspeed_icon.svg,36,middle,inline)]] Maxspeed style =
    33[[PageOutline(2-9)]]
    44== Description ==
    5 This style adds display of driving speed related information to the map. Therefore the keys [[osmwiki:Key:maxspeed|maxspeed]], maxspeed:forward and maxspeed:backward are evaluated. [[left-right-hand-traffic|Left-hand and right-hand traffic]] are taken into account. Example:
     5This style adds display of driving speed related information to the map view. Therefore the following keys are evaluated:
     6* [[osmwiki:Key:maxspeed|maxspeed]]
     7* maxspeed:forward
     8* maxspeed:backward
     9* [[osmwiki:Conditional_restrictions|maxspeed:conditional]]
     10* maxspeed:forward:conditional
     11* maxspeed:backward:conditional
     12* [[osmwiki:Key:maxspeed:variable|maxspeed:variable]]
     13* maxspeed:variable:forward
     14* maxspeed:variable:backward
     15
     16This style was mainly developed for streets but can be used on railways too.
     17
     18[[left-right-hand-traffic|Left-hand and right-hand traffic]] are always taken into account. Example:
    619
    720[[Image(maxspeed_example.png)]]
    821
    9 You can change the colors in the preferences of JOSM. The default colors are shown below.
     22You can change the colors in the preferences of JOSM. The default colors and some examples are shown below.
    1023
    1124[[Image(maxspeed_legend.png)]]
     
    1730[attachment:Testcenter.osm Testcenter] for quality assurance of this style.
    1831
     32[osmwiki:Key:maxspeed#Implicit_maxspeed_values Implicit maxspeed values] are currently supported for the following countries: BY (Belarus), FR (France), RO (Romania), RS (Serbia), RU (Russia). This needs to be enabled in the [wiki:Help/Dialog/MapPaint/StyleSettings style settings] of this mappaint style first if wanted.
     33
     34Known problems:
     35* Dashes can sometimes lead to rendering artefacts (dash goes straight on, while the road has a corner), see JOSM bug #8429. Just zoom to fix it.
     36* When using different forward and backward conditional values or variable values, the dashes on the left and right of the road can sometimes be asynchronous, see JOSM bug #11994. Just zoom or move the map to fix it.
     37
     38
    1939== Changelog ==
    20 === Version 2.0.xx to 2.1.xx ===
    21 * Add support of alternitive tagging scheme `maxspeed=RU:living_street`, `maxspeed=RU:urban`, `maxspeed=RU:rural`, `maxspeed=RU:motorway`. This can be disabled in the [wiki:Help/Dialog/MapPaint#Stylesettings style settings] of this mappaint style.
     40=== Version 2.8 ===
     41* Change style setting "maxspeed=RU:* tagging scheme" to general "implicit maxspeed values" and make it disabled by default. Add support for countries with most usage (RO, FR and BY) and RS by user request
     42* A little stricter checking of bad values for some corner cases, e.g. `20 mphh` is now reported as wrong value (was simply ignored before)
     43=== Version 2.7 ===
     44* Add support of maxspeed=* + maxspeed:direction:conditional=* (without maxspeed:direction=*), fixes bug in version 2.5
     45* Better display of error messages
     46* Remove opacity because of different reasons
     47* Adjust color for 120
     48* If maxspeed and maxspeed:direction is tagged together (tagging error) it is now no longer displayed both stacked, but direction value overrides normal maxspeed value
     49* Support combinations of conditional and variable maxspeed
     50* Add 140
     51=== Version 2.5 ===
     52* Add support of maxspeed:conditional, maxspeed:forward:conditional and maxspeed:backward:conditional
     53* Add error message for wrong value of conditional maxspeed
     54* Add error message for conditional maxspeed without default maxspeed
     55* Add in file table of contents and numbered headings for better understandability of the code structure
     56=== Version 2.1 ===
     57* Add support of alternitive tagging scheme `maxspeed=RU:living_street`, `maxspeed=RU:urban`, `maxspeed=RU:rural`, `maxspeed=RU:motorway`. This can be disabled in the [wiki:Help/Dialog/MapPaint/StyleSettings style settings] of this mappaint style.
    2258* Add style for `maxspeed=5`
    2359* Change color of `maxspeed=none` for better visibility on aerial imagery
    24 === Version 1.5 to 2.0.xx ===
     60=== Version 2.0 ===
    2561* change from xml to mapcss
    2662* support of maxspeed:forward and maxspeed:backward (considering left and right hand traffic)
     
    3066* added error message for wrong maxspeed values (like ''35mph'' or ''35 m/h'')
    3167* added error message if maxspeed direction is opposed to oneway direction
    32 * adjusted to most used values according to [http://taginfo.openstreetmap.org/keys/maxspeed#values taginfo]
     68* adjusted to most used values according to [https://taginfo.openstreetmap.org/keys/maxspeed#values taginfo]
    3369 * added ''20'', ''45'', ''none''
    3470 * removed unused values like ''32.19''
    3571* adjusted opacities, widths and some colors for better display and distinction between the colors
    3672* widths depends on zoom level
    37 
     73=== Version 1.5 ===
     74* Start version
    3875
    3976== Code ==
     
    4279#!style type="mapcss"
    4380
     81/*
     82
     83table of contents
     84
     851 - meta data
     862 - general settings
     87 2.1 - create user settings
     88 2.2 - disable tiger layer from default internal mappaint style
     89 2.3 - disable street names from default internal mappaint style
     90 2.4 - read conditional maxspeed values
     913 - display maxspeed=*
     92 3.1 - kmh
     93 3.2 - mph
     94 3.3 - conditional maxspeed
     95 3.3.1 - kmh
     96 3.3.2 - mph
     97 3.4 - general rules
     984 - display maxspeed:forward=* for righthandtraffic and maxspeed:backward=* for lefthandtraffic
     99 4.1 - kmh
     100 4.2 - mph
     101 4.3 - conditional righthand-forward and lefthand-backward maxspeed
     102 4.3.1 - kmh
     103 4.3.2 - mph
     104 4.4 - general rules
     1055 - display maxspeed:forward=* for lefthandtraffic and maxspeed:backward=* for righthandtraffic
     106 5.1 - kmh
     107 5.2 - mph
     108 5.3 - conditional lefthand-forward and righthand-backward maxspeed
     109 5.3.1 - kmh
     110 5.3.2 - mph
     111 5.4 - general rules
     1126 - error reporting
     113 6.1 - report wrong value of maxspeed
     114 6.2 - report wrong value of maxspeed:conditional
     115 6.3 - report conditional maxspeed without default maxspeed
     116 6.4 - report if maxspeed direction is opposed to oneway direction
     117 
     118*/
     119
     120/*************************************/
     121
     122/* 1 - meta data */
    44123meta
    45124{
    46125        title: "Maxspeed";
    47         version: "2.1.[[revision]]_[[date]]";
    48         description: "Display maxspeed values in JOSM map display.";
     126        version: "2.8.[[revision]]_[[date]]";
     127        description: "Display maxspeed values of ways in the map view.";
    49128        icon: "maxspeed_icon.svg";
    50129        author: "Rubke, Dirk Stöcker, Vclaw, Klumbumbus";
    51         link: "http://josm.openstreetmap.de/wiki/Styles/Maxspeed";
    52         watch-modified: true;
    53         min-josm-version: "7193"; /* because of pseudoclass :righthandtraffic */
    54 }
    55 
     130        link: "https://josm.openstreetmap.de/wiki/Styles/Maxspeed";
     131        min-josm-version: "7450"; /* because of user settings */
     132}
    56133meta[lang=de]
    57134{
    58135        title: "Höchstgeschwindigkeit";
    59         description: "Anzeige der Höchstgeschwindigkeiten in der JOSM-Kartenanzeige.";
    60         link: "http://josm.openstreetmap.de/wiki/De:Styles/Maxspeed";
    61 }
    62 /* create settings */
    63 setting::RU {
     136        description: "Anzeige der Höchstgeschwindigkeiten von Linien in der Kartenanzeige.";
     137        link: "https://josm.openstreetmap.de/wiki/De:Styles/Maxspeed";
     138}
     139
     140/*************************************/
     141
     142/* 2 - general settings */
     143/* 2.1 - create user settings */
     144setting::implicit {
    64145  type: boolean;
    65   label: tr("Support maxspeed=RU:* tagging scheme");
    66   default: true;
    67 }
    68 /* disable tiger layer from default internal mappaint style */
     146  label: tr("Support implicit maxspeed values, e.g. RO:urban (only in BY, FR, RO, RU, RS)");
     147  default: false;
     148}
     149
     150/* 2.2 - disable tiger layer from default internal mappaint style */
    69151way["tiger:reviewed"=no]::core_tiger
    70152{
    71153        opacity: 0;
    72154}
    73 /* disable street names from default internal mappaint style */
     155
     156/* 2.3 - disable street names from default internal mappaint style */
    74157way[highway]
    75158{
     
    77160}
    78161
    79 /* display maxspeed=* */
    80 way["maxspeed"="none"]::maxspeed
     162/* 2.4 - read conditional maxspeed values */
     163way["maxspeed:conditional"=~/^(none|[1-9][0-9]*) @ /]::maxspeedlayer
     164{
     165        maxsp_cond: get(split(" ", tag("maxspeed:conditional")), 0);
     166        set cond_kmh;
     167}
     168way["maxspeed:forward:conditional"=~/^(none|[1-9][0-9]*) @ /]::maxspeedcasinglayer
     169{
     170        maxsp_forward_cond: get(split(" ", tag("maxspeed:forward:conditional")), 0);
     171        set cond_forward_kmh;
     172}
     173way["maxspeed:backward:conditional"=~/^(none|[1-9][0-9]*) @ /]::maxspeedcasinglayer
     174{
     175        maxsp_backward_cond: get(split(" ", tag("maxspeed:backward:conditional")), 0);
     176        set cond_backward_kmh;
     177}
     178way["maxspeed:conditional"=~/^[1-9][0-9]* mph @ /]::maxspeedlayer
     179{
     180        maxsp_cond: get(split(" ", tag("maxspeed:conditional")), 0);
     181        set cond_mph;
     182}
     183way["maxspeed:forward:conditional"=~/^[1-9][0-9]* mph @ /]::maxspeedcasinglayer
     184{
     185        maxsp_forward_cond: get(split(" ", tag("maxspeed:forward:conditional")), 0);
     186        set cond_forward_mph;
     187}
     188way["maxspeed:backward:conditional"=~/^[1-9][0-9]* mph @ /]::maxspeedcasinglayer
     189{
     190        maxsp_backward_cond: get(split(" ", tag("maxspeed:backward:conditional")), 0);
     191        set cond_backward_mph;
     192}
     193
     194/*************************************/
     195
     196/* 3 - display maxspeed=* */
     197/* Note: With some modifications one could delete chapter three and one could use the casing rendering from forward and backward also for the default maxspeed=* rendering.
     198This would simplify the style code a bit. However this leads to more asynchronous renderings of the dashes, see JOSM ticket #11994.
     199Also it makes a nicer rendering for dashes lines, like highway=construction or railway=tram.
     200Therefore the style is written this way. */
     201/* 3.1 - kmh */
     202way["maxspeed"="none"]::maxspeedlayer
    81203{
    82204        set maxspeed;
    83205        color: speed_none#febede;
    84206}
    85         /* km/h */
    86 way["maxspeed"="5"]::maxspeed
     207way["maxspeed"="5"]::maxspeedlayer
    87208{
    88209        set maxspeed;
    89210        color: speed_5#ff5656;
    90211}
    91 way["maxspeed"="10"]::maxspeed
     212way["maxspeed"="10"]::maxspeedlayer,
     213way["maxspeed"="RS:living_street"][setting("implicit")]::maxspeedlayer
    92214{
    93215        set maxspeed;
    94216        color: speed_10#b80022;
    95217}
    96 way["maxspeed"="15"]::maxspeed
     218way["maxspeed"="15"]::maxspeedlayer
    97219{
    98220        set maxspeed;
    99221        color: speed_15#00da8b;
    100222}
    101 way["maxspeed"="20"]::maxspeed,
    102 way["maxspeed"="RU:living_street"][setting("RU")]::maxspeed
     223way["maxspeed"="20"]::maxspeedlayer,
     224way["maxspeed"="BY:living_street"][setting("implicit")]::maxspeedlayer,
     225way["maxspeed"="RU:living_street"][setting("implicit")]::maxspeedlayer
    103226{
    104227        set maxspeed;
    105228        color: speed_20#e3cc82;
    106229}
    107 way["maxspeed"="30"]::maxspeed
     230way["maxspeed"="30"]::maxspeedlayer,
     231way["maxspeed"="FR:zone30"][setting("implicit")]::maxspeedlayer
    108232{
    109233        set maxspeed;
    110234        color: speed_30#4d4dff;
    111235}
    112 way["maxspeed"="40"]::maxspeed
     236way["maxspeed"="40"]::maxspeedlayer
    113237{
    114238        set maxspeed;
    115239        color: speed_40#4d4d00;
    116240}
    117 way["maxspeed"="45"]::maxspeed
     241way["maxspeed"="45"]::maxspeedlayer
    118242{
    119243        set maxspeed;
    120244        color: speed_45#ff529a;
    121245}
    122 way["maxspeed"="50"]::maxspeed
     246way["maxspeed"="50"]::maxspeedlayer,
     247way["maxspeed"="FR:urban"][setting("implicit")]::maxspeedlayer,
     248way["maxspeed"="RO:urban"][setting("implicit")]::maxspeedlayer,
     249way["maxspeed"="RS:urban"][setting("implicit")]::maxspeedlayer
    123250{
    124251        set maxspeed;
    125252        color: speed_50#07f807;
    126253}
    127 way["maxspeed"="60"]::maxspeed,
    128 way["maxspeed"="RU:urban"][setting("RU")]::maxspeed
     254way["maxspeed"="60"]::maxspeedlayer,
     255way["maxspeed"="BY:urban"][setting("implicit")]::maxspeedlayer,
     256way["maxspeed"="RU:urban"][setting("implicit")]::maxspeedlayer
    129257{
    130258        set maxspeed;
    131259        color: speed_60#9f9fff;
    132260}
    133 way["maxspeed"="70"]::maxspeed
     261way["maxspeed"="70"]::maxspeedlayer
    134262{
    135263        set maxspeed;
    136264        color: speed_70#ee8b00;
    137265}
    138 way["maxspeed"="80"]::maxspeed
     266way["maxspeed"="80"]::maxspeedlayer,
     267way["maxspeed"="FR:rural"][setting("implicit")]::maxspeedlayer,
     268way["maxspeed"="RS:rural"][setting("implicit")]::maxspeedlayer
    139269{
    140270        set maxspeed;
    141271        color: speed_80#f90808;
    142272}
    143 way["maxspeed"="90"]::maxspeed,
    144 way["maxspeed"="RU:rural"][setting("RU")]::maxspeed
     273way["maxspeed"="90"]::maxspeedlayer,
     274way["maxspeed"="BY:rural"][setting("implicit")]::maxspeedlayer,
     275way["maxspeed"="RO:rural"][setting("implicit")]::maxspeedlayer,
     276way["maxspeed"="RU:rural"][setting("implicit")]::maxspeedlayer
    145277{
    146278        set maxspeed;
    147279        color: speed_90#07f8f8;
    148280}
    149 way["maxspeed"="100"]::maxspeed
     281way["maxspeed"="100"]::maxspeedlayer,
     282way["maxspeed"="RO:trunk"][setting("implicit")]::maxspeedlayer,
     283way["maxspeed"="RS:trunk"][setting("implicit")]::maxspeedlayer
    150284{
    151285        set maxspeed;
    152286        color: speed_100#f807f8;
    153287}
    154 way["maxspeed"="110"]::maxspeed,
    155 way["maxspeed"="RU:motorway"][setting("RU")]::maxspeed
     288way["maxspeed"="110"]::maxspeedlayer,
     289way["maxspeed"="BY:motorway"][setting("implicit")]::maxspeedlayer,
     290way["maxspeed"="RU:motorway"][setting("implicit")]::maxspeedlayer
    156291{
    157292        set maxspeed;
    158293        color: speed_110#7807f8;
    159294}
    160 way["maxspeed"="120"]::maxspeed
    161 {
    162         set maxspeed;
    163         color: speed_120#ccad24;
    164 }
    165 way["maxspeed"="130"]::maxspeed
     295way["maxspeed"="120"]::maxspeedlayer
     296{
     297        set maxspeed;
     298        color: speed_120#b69b20;
     299}
     300way["maxspeed"="130"]::maxspeedlayer,
     301way["maxspeed"="FR:motorway"][setting("implicit")]::maxspeedlayer,
     302way["maxspeed"="RO:motorway"][setting("implicit")]::maxspeedlayer,
     303way["maxspeed"="RS:motorway"][setting("implicit")]::maxspeedlayer
    166304{
    167305        set maxspeed;
    168306        color: speed_130#c0f100;
    169307}
    170         /* mph */
    171 way["maxspeed"="5 mph"]::maxspeed
     308way["maxspeed"="140"]::maxspeedlayer
     309{
     310        set maxspeed;
     311        color: speed_140#438100;
     312}
     313/* 3.2 - mph */
     314way["maxspeed"="5 mph"]::maxspeedlayer
    172315{
    173316        set maxspeed;
    174317        color: speed_5_mph#b80022;
    175318}
    176 way["maxspeed"="10 mph"]::maxspeed
     319way["maxspeed"="10 mph"]::maxspeedlayer
    177320{
    178321        set maxspeed;
    179322        color: speed_10_mph#00da8b;
    180323}
    181 way["maxspeed"="15 mph"]::maxspeed
     324way["maxspeed"="15 mph"]::maxspeedlayer
    182325{
    183326        set maxspeed;
    184327        color: speed_15_mph#e3cc82;
    185328}
    186 way["maxspeed"="20 mph"]::maxspeed
     329way["maxspeed"="20 mph"]::maxspeedlayer
    187330{
    188331        set maxspeed;
    189332        color: speed_20_mph#4d4dff;
    190333}
    191 way["maxspeed"="25 mph"]::maxspeed
     334way["maxspeed"="25 mph"]::maxspeedlayer
    192335{
    193336        set maxspeed;
    194337        color: speed_25_mph#4d4d00;
    195338}
    196 way["maxspeed"="30 mph"]::maxspeed
     339way["maxspeed"="30 mph"]::maxspeedlayer
    197340{
    198341        set maxspeed;
    199342        color: speed_30_mph#ff529a;
    200343}
    201 way["maxspeed"="35 mph"]::maxspeed
     344way["maxspeed"="35 mph"]::maxspeedlayer
    202345{
    203346        set maxspeed;
    204347        color: speed_35_mph#07f807;
    205348}
    206 way["maxspeed"="40 mph"]::maxspeed
     349way["maxspeed"="40 mph"]::maxspeedlayer
    207350{
    208351        set maxspeed;
    209352        color: speed_40_mph#9f9fff;
    210353}
    211 way["maxspeed"="45 mph"]::maxspeed
     354way["maxspeed"="45 mph"]::maxspeedlayer
    212355{
    213356        set maxspeed;
    214357        color: speed_45_mph#ee8b00;
    215358}
    216 way["maxspeed"="50 mph"]::maxspeed
     359way["maxspeed"="50 mph"]::maxspeedlayer
    217360{
    218361        set maxspeed;
    219362        color: speed_50_mph#f90808;
    220363}
    221 way["maxspeed"="55 mph"]::maxspeed
     364way["maxspeed"="55 mph"]::maxspeedlayer
    222365{
    223366        set maxspeed;
    224367        color: speed_55_mph#07f8f8;
    225368}
    226 way["maxspeed"="60 mph"]::maxspeed
     369way["maxspeed"="60 mph"]::maxspeedlayer
    227370{
    228371        set maxspeed;
    229372        color: speed_60_mph#f807f8;
    230373}
    231 way["maxspeed"="65 mph"]::maxspeed
     374way["maxspeed"="65 mph"]::maxspeedlayer
    232375{
    233376        set maxspeed;
    234377        color: speed_65_mph#7807f8;
    235378}
    236 way["maxspeed"="70 mph"]::maxspeed
    237 {
    238         set maxspeed;
    239         color: speed_70_mph#ccad24;
    240 }
    241 way["maxspeed"="75 mph"]::maxspeed
     379way["maxspeed"="70 mph"]::maxspeedlayer
     380{
     381        set maxspeed;
     382        color: speed_70_mph#b69b20;
     383}
     384way["maxspeed"="75 mph"]::maxspeedlayer
    242385{
    243386        set maxspeed;
     
    245388}
    246389
    247 way.maxspeed::maxspeed
    248 {
    249         opacity: 0.75;
     390/* 3.3 - conditional maxspeed */
     391way.cond_kmh::maxspeedlayer,
     392way.cond_mph::maxspeedlayer
     393{
     394        dashes: 55,25;
     395}
     396/* 3.3.1 - kmh */
     397way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="none"]::maxspeedlayer
     398{
     399        dashes-background-color:  speed_none#febede;
     400}
     401way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="5"]::maxspeedlayer
     402{
     403        dashes-background-color:  speed_5#ff5656;
     404}
     405way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="10"]::maxspeedlayer
     406{
     407        dashes-background-color:  speed_10#b80022;
     408}
     409way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="15"]::maxspeedlayer
     410{
     411        dashes-background-color:  speed_15#00da8b;
     412}
     413way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="20"]::maxspeedlayer
     414/* A selector for implicit scheme is not needed here because e.g. "maxspeed:conditional=RU:living_street @ (...)" is nonsense, better use the actual maxspeed value in this case. The same is true for the others (rural, urban, motorway, ...).  */
     415{
     416        dashes-background-color:  speed_20#e3cc82;
     417}
     418way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="30"]::maxspeedlayer
     419{
     420        dashes-background-color:  speed_30#4d4dff;
     421}
     422way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="40"]::maxspeedlayer
     423{
     424        dashes-background-color:  speed_40#4d4d00;
     425}
     426way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="45"]::maxspeedlayer
     427{
     428        dashes-background-color:  speed_45#ff529a;
     429}
     430way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="50"]::maxspeedlayer
     431{
     432        dashes-background-color:  speed_50#07f807;
     433}
     434way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="60"]::maxspeedlayer
     435{
     436        dashes-background-color:  speed_60#9f9fff;
     437}
     438way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="70"]::maxspeedlayer
     439{
     440        dashes-background-color:  speed_70#ee8b00;
     441}
     442way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="80"]::maxspeedlayer
     443{
     444        dashes-background-color:  speed_80#f90808;
     445}
     446way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="90"]::maxspeedlayer
     447{
     448        dashes-background-color:  speed_90#07f8f8;
     449}
     450way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="100"]::maxspeedlayer
     451{
     452        dashes-background-color:  speed_100#f807f8;
     453}
     454way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="110"]::maxspeedlayer
     455{
     456        dashes-background-color:  speed_110#7807f8;
     457}
     458way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="120"]::maxspeedlayer
     459{
     460        dashes-background-color:  speed_120#b69b20;
     461}
     462way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="130"]::maxspeedlayer
     463{
     464        dashes-background-color:  speed_130#c0f100;
     465}
     466way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="140"]::maxspeedlayer
     467{
     468        dashes-background-color:  speed_140#438100;
     469}
     470/* 3.3.2 -  mph */
     471way.cond_mph[prop(maxsp_cond, maxspeedlayer)="5"]::maxspeedlayer
     472{
     473        dashes-background-color:  speed_5_mph#b80022;
     474}
     475way.cond_mph[prop(maxsp_cond, maxspeedlayer)="10"]::maxspeedlayer
     476{
     477        dashes-background-color:  speed_10_mph#00da8b;
     478}
     479way.cond_mph[prop(maxsp_cond, maxspeedlayer)="15"]::maxspeedlayer
     480{
     481        dashes-background-color:  speed_15_mph#e3cc82;
     482}
     483way.cond_mph[prop(maxsp_cond, maxspeedlayer)="20"]::maxspeedlayer
     484{
     485        dashes-background-color:  speed_20_mph#4d4dff;
     486}
     487way.cond_mph[prop(maxsp_cond, maxspeedlayer)="25"]::maxspeedlayer
     488{
     489        dashes-background-color:  speed_25_mph#4d4d00;
     490}
     491way.cond_mph[prop(maxsp_cond, maxspeedlayer)="30"]::maxspeedlayer
     492{
     493        dashes-background-color:  speed_30_mph#ff529a;
     494}
     495way.cond_mph[prop(maxsp_cond, maxspeedlayer)="35"]::maxspeedlayer
     496{
     497        dashes-background-color:  speed_35_mph#07f807;
     498}
     499way.cond_mph[prop(maxsp_cond, maxspeedlayer)="40"]::maxspeedlayer
     500{
     501        dashes-background-color:  speed_40_mph#9f9fff;
     502}
     503way.cond_mph[prop(maxsp_cond, maxspeedlayer)="45"]::maxspeedlayer
     504{
     505        dashes-background-color:  speed_45_mph#ee8b00;
     506}
     507way.cond_mph[prop(maxsp_cond, maxspeedlayer)="50"]::maxspeedlayer
     508{
     509        dashes-background-color:  speed_50_mph#f90808;
     510}
     511way.cond_mph[prop(maxsp_cond, maxspeedlayer)="55"]::maxspeedlayer
     512{
     513        dashes-background-color:  speed_55_mph#07f8f8;
     514}
     515way.cond_mph[prop(maxsp_cond, maxspeedlayer)="60"]::maxspeedlayer
     516{
     517        dashes-background-color:  speed_60_mph#f807f8;
     518}
     519way.cond_mph[prop(maxsp_cond, maxspeedlayer)="65"]::maxspeedlayer
     520{
     521        dashes-background-color:  speed_65_mph#7807f8;
     522}
     523way.cond_mph[prop(maxsp_cond, maxspeedlayer)="70"]::maxspeedlayer
     524{
     525        dashes-background-color:  speed_70_mph#b69b20;
     526}
     527way.cond_mph[prop(maxsp_cond, maxspeedlayer)="75"]::maxspeedlayer
     528{
     529        dashes-background-color:  speed_75_mph#c0f100;
     530}
     531
     532/* 3.4 - general rules */
     533way.maxspeed::maxspeedlayer
     534{
    250535        width: 14;
    251536        z-index: -1;
    252537}
    253 way|z16.maxspeed::maxspeed
     538way|z16.maxspeed::maxspeedlayer
    254539{
    255540        width: 12;
    256541}
    257 way|z-15.maxspeed::maxspeed
     542way|z-15.maxspeed::maxspeedlayer
    258543{
    259544        width:10;
    260545}
    261 way.maxspeed[maxspeed:variable]::maxspeed
     546way.maxspeed[maxspeed:variable]::maxspeedlayer
    262547{
    263548        dashes: 34,6;
     549        /* *variable* overrides the dashes scheme of *conditional*, but the colors of conditional stay.
     550        This way you can see conditional and variable together */
    264551}
    265552
    266553/*************************************/
    267554
    268 /* display maxspeed:forward=* for righthandtraffic */
    269 /* display maxspeed:backward=* for lefthandtraffic */
    270 
    271 way["maxspeed:forward"="none"]:righthandtraffic::maxspeed,
    272 way["maxspeed:backward"="none"]!:righthandtraffic::maxspeed
     555/* 4 - display maxspeed:forward=* for righthandtraffic and maxspeed:backward=* for lefthandtraffic */
     556/* 4.1 - kmh */
     557way["maxspeed:forward"="none"]:righthandtraffic::maxspeedcasinglayer,
     558way["maxspeed:backward"="none"]!:righthandtraffic::maxspeedcasinglayer
    273559{
    274560        set maxspeed_right;
    275561        right-casing-color: speed_none#febede;
    276562}
    277         /* km/h */
    278 way["maxspeed:forward"="5"]:righthandtraffic::maxspeed,
    279 way["maxspeed:backward"="5"]!:righthandtraffic::maxspeed
     563way["maxspeed:forward"="5"]:righthandtraffic::maxspeedcasinglayer,
     564way["maxspeed:backward"="5"]!:righthandtraffic::maxspeedcasinglayer
    280565{
    281566        set maxspeed_right;
    282567        right-casing-color: speed_5#ff5656;
    283568}
    284 way["maxspeed:forward"="10"]:righthandtraffic::maxspeed,
    285 way["maxspeed:backward"="10"]!:righthandtraffic::maxspeed
     569way["maxspeed:forward"="10"]:righthandtraffic::maxspeedcasinglayer,
     570way["maxspeed:backward"="10"]!:righthandtraffic::maxspeedcasinglayer,
     571way["maxspeed:forward"="RS:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    286572{
    287573        set maxspeed_right;
    288574        right-casing-color: speed_10#b80022;
    289575}
    290 way["maxspeed:forward"="15"]:righthandtraffic::maxspeed,
    291 way["maxspeed:backward"="15"]!:righthandtraffic::maxspeed
     576way["maxspeed:forward"="15"]:righthandtraffic::maxspeedcasinglayer,
     577way["maxspeed:backward"="15"]!:righthandtraffic::maxspeedcasinglayer
    292578{
    293579        set maxspeed_right;
    294580        right-casing-color: speed_15#00da8b;
    295581}
    296 way["maxspeed:forward"="20"]:righthandtraffic::maxspeed,
    297 way["maxspeed:backward"="20"]!:righthandtraffic::maxspeed,
    298 way["maxspeed:forward"="RU:living_street"][setting("RU")]:righthandtraffic::maxspeed
    299 /* no left hand traffic in RU, so this selector is not needed */
     582way["maxspeed:forward"="20"]:righthandtraffic::maxspeedcasinglayer,
     583way["maxspeed:backward"="20"]!:righthandtraffic::maxspeedcasinglayer,
     584way["maxspeed:forward"="BY:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     585way["maxspeed:forward"="RU:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     586/* no left hand traffic in BY, FR, RO, RU, RS, so a selector is not needed here and the similar rules in chapter 5.1 */
    300587{
    301588        set maxspeed_right;
    302589        right-casing-color: speed_20#e3cc82;
    303590}
    304 way["maxspeed:forward"="30"]:righthandtraffic::maxspeed,
    305 way["maxspeed:backward"="30"]!:righthandtraffic::maxspeed
     591way["maxspeed:forward"="30"]:righthandtraffic::maxspeedcasinglayer,
     592way["maxspeed:backward"="30"]!:righthandtraffic::maxspeedcasinglayer,
     593way["maxspeed:forward"="FR:zone30"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    306594{
    307595        set maxspeed_right;
    308596        right-casing-color: speed_30#4d4dff;
    309597}
    310 way["maxspeed:forward"="40"]:righthandtraffic::maxspeed,
    311 way["maxspeed:backward"="40"]!:righthandtraffic::maxspeed
     598way["maxspeed:forward"="40"]:righthandtraffic::maxspeedcasinglayer,
     599way["maxspeed:backward"="40"]!:righthandtraffic::maxspeedcasinglayer
    312600{
    313601        set maxspeed_right;
    314602        right-casing-color: speed_40#4d4d00;
    315603}
    316 way["maxspeed:forward"="45"]:righthandtraffic::maxspeed,
    317 way["maxspeed:backward"="45"]!:righthandtraffic::maxspeed
     604way["maxspeed:forward"="45"]:righthandtraffic::maxspeedcasinglayer,
     605way["maxspeed:backward"="45"]!:righthandtraffic::maxspeedcasinglayer
    318606{
    319607        set maxspeed_right;
    320608        right-casing-color: speed_45#ff529a;
    321609}
    322 way["maxspeed:forward"="50"]:righthandtraffic::maxspeed,
    323 way["maxspeed:backward"="50"]!:righthandtraffic::maxspeed
     610way["maxspeed:forward"="50"]:righthandtraffic::maxspeedcasinglayer,
     611way["maxspeed:backward"="50"]!:righthandtraffic::maxspeedcasinglayer,
     612way["maxspeed:forward"="FR:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     613way["maxspeed:forward"="RO:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     614way["maxspeed:forward"="RS:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    324615{
    325616        set maxspeed_right;
    326617        right-casing-color: speed_50#07f807;
    327618}
    328 way["maxspeed:forward"="60"]:righthandtraffic::maxspeed,
    329 way["maxspeed:backward"="60"]!:righthandtraffic::maxspeed,
    330 way["maxspeed:forward"="RU:urban"][setting("RU")]:righthandtraffic::maxspeed
     619way["maxspeed:forward"="60"]:righthandtraffic::maxspeedcasinglayer,
     620way["maxspeed:backward"="60"]!:righthandtraffic::maxspeedcasinglayer,
     621way["maxspeed:forward"="BY:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     622way["maxspeed:forward"="RU:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    331623{
    332624        set maxspeed_right;
    333625        right-casing-color: speed_60#9f9fff;
    334626}
    335 way["maxspeed:forward"="70"]:righthandtraffic::maxspeed,
    336 way["maxspeed:backward"="70"]!:righthandtraffic::maxspeed
     627way["maxspeed:forward"="70"]:righthandtraffic::maxspeedcasinglayer,
     628way["maxspeed:backward"="70"]!:righthandtraffic::maxspeedcasinglayer
    337629{
    338630        set maxspeed_right;
    339631        right-casing-color: speed_70#ee8b00;
    340632}
    341 way["maxspeed:forward"="80"]:righthandtraffic::maxspeed,
    342 way["maxspeed:backward"="80"]!:righthandtraffic::maxspeed
     633way["maxspeed:forward"="80"]:righthandtraffic::maxspeedcasinglayer,
     634way["maxspeed:backward"="80"]!:righthandtraffic::maxspeedcasinglayer,
     635way["maxspeed:forward"="FR:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     636way["maxspeed:forward"="RS:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    343637{
    344638        set maxspeed_right;
    345639        right-casing-color: speed_80#f90808;
    346640}
    347 way["maxspeed:forward"="90"]:righthandtraffic::maxspeed,
    348 way["maxspeed:backward"="90"]!:righthandtraffic::maxspeed,
    349 way["maxspeed:forward"="RU:rural"][setting("RU")]:righthandtraffic::maxspeed
     641way["maxspeed:forward"="90"]:righthandtraffic::maxspeedcasinglayer,
     642way["maxspeed:backward"="90"]!:righthandtraffic::maxspeedcasinglayer,
     643way["maxspeed:forward"="BY:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     644way["maxspeed:forward"="RO:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     645way["maxspeed:forward"="RU:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    350646{
    351647        set maxspeed_right;
    352648        right-casing-color: speed_90#07f8f8;
    353649}
    354 way["maxspeed:forward"="100"]:righthandtraffic::maxspeed,
    355 way["maxspeed:backward"="100"]!:righthandtraffic::maxspeed
     650way["maxspeed:forward"="100"]:righthandtraffic::maxspeedcasinglayer,
     651way["maxspeed:backward"="100"]!:righthandtraffic::maxspeedcasinglayer,
     652way["maxspeed:forward"="RO:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     653way["maxspeed:forward"="RS:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    356654{
    357655        set maxspeed_right;
    358656        right-casing-color: speed_100#f807f8;
    359657}
    360 way["maxspeed:forward"="110"]:righthandtraffic::maxspeed,
    361 way["maxspeed:backward"="110"]!:righthandtraffic::maxspeed,
    362 way["maxspeed:forward"="RU:motorway"][setting("RU")]:righthandtraffic::maxspeed
     658way["maxspeed:forward"="110"]:righthandtraffic::maxspeedcasinglayer,
     659way["maxspeed:backward"="110"]!:righthandtraffic::maxspeedcasinglayer,
     660way["maxspeed:forward"="BY:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     661way["maxspeed:forward"="RU:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    363662{
    364663        set maxspeed_right;
    365664        right-casing-color: speed_110#7807f8;
    366665}
    367 way["maxspeed:forward"="120"]:righthandtraffic::maxspeed,
    368 way["maxspeed:backward"="120"]!:righthandtraffic::maxspeed
    369 {
    370         set maxspeed_right;
    371         right-casing-color: speed_120#ccad24;
    372 }
    373 way["maxspeed:forward"="130"]:righthandtraffic::maxspeed,
    374 way["maxspeed:backward"="130"]!:righthandtraffic::maxspeed
     666way["maxspeed:forward"="120"]:righthandtraffic::maxspeedcasinglayer,
     667way["maxspeed:backward"="120"]!:righthandtraffic::maxspeedcasinglayer
     668{
     669        set maxspeed_right;
     670        right-casing-color: speed_120#b69b20;
     671}
     672way["maxspeed:forward"="130"]:righthandtraffic::maxspeedcasinglayer,
     673way["maxspeed:backward"="130"]!:righthandtraffic::maxspeedcasinglayer,
     674way["maxspeed:forward"="FR:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     675way["maxspeed:forward"="RO:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     676way["maxspeed:forward"="RS:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    375677{
    376678        set maxspeed_right;
    377679        right-casing-color: speed_130#c0f100;
    378680}
    379         /* mph */
    380 way["maxspeed:forward"="5 mph"]:righthandtraffic::maxspeed,
    381 way["maxspeed:backward"="5 mph"]!:righthandtraffic::maxspeed
     681way["maxspeed:forward"="140"]:righthandtraffic::maxspeedcasinglayer,
     682way["maxspeed:backward"="140"]!:righthandtraffic::maxspeedcasinglayer
     683{
     684        set maxspeed_right;
     685        right-casing-color: speed_140#438100;
     686}
     687/* 4.2 - mph */
     688way["maxspeed:forward"="5 mph"]:righthandtraffic::maxspeedcasinglayer,
     689way["maxspeed:backward"="5 mph"]!:righthandtraffic::maxspeedcasinglayer
    382690{
    383691        set maxspeed_right;
    384692        right-casing-color: speed_5_mph#b80022;
    385693}
    386 way["maxspeed:forward"="10 mph"]:righthandtraffic::maxspeed,
    387 way["maxspeed:backward"="10 mph"]!:righthandtraffic::maxspeed
     694way["maxspeed:forward"="10 mph"]:righthandtraffic::maxspeedcasinglayer,
     695way["maxspeed:backward"="10 mph"]!:righthandtraffic::maxspeedcasinglayer
    388696{
    389697        set maxspeed_right;
    390698        right-casing-color: speed_10_mph#00da8b;
    391699}
    392 way["maxspeed:forward"="15 mph"]:righthandtraffic::maxspeed,
    393 way["maxspeed:backward"="15 mph"]!:righthandtraffic::maxspeed
     700way["maxspeed:forward"="15 mph"]:righthandtraffic::maxspeedcasinglayer,
     701way["maxspeed:backward"="15 mph"]!:righthandtraffic::maxspeedcasinglayer
    394702{
    395703        set maxspeed_right;
    396704        right-casing-color: speed_15_mph#e3cc82;
    397705}
    398 way["maxspeed:forward"="20 mph"]:righthandtraffic::maxspeed,
    399 way["maxspeed:backward"="20 mph"]!:righthandtraffic::maxspeed
     706way["maxspeed:forward"="20 mph"]:righthandtraffic::maxspeedcasinglayer,
     707way["maxspeed:backward"="20 mph"]!:righthandtraffic::maxspeedcasinglayer
    400708{
    401709        set maxspeed_right;
    402710        right-casing-color: speed_20_mph#4d4dff;
    403711}
    404 way["maxspeed:forward"="25 mph"]:righthandtraffic::maxspeed,
    405 way["maxspeed:backward"="25 mph"]!:righthandtraffic::maxspeed
     712way["maxspeed:forward"="25 mph"]:righthandtraffic::maxspeedcasinglayer,
     713way["maxspeed:backward"="25 mph"]!:righthandtraffic::maxspeedcasinglayer
    406714{
    407715        set maxspeed_right;
    408716        right-casing-color: speed_25_mph#4d4d00;
    409717}
    410 way["maxspeed:forward"="30 mph"]:righthandtraffic::maxspeed,
    411 way["maxspeed:backward"="30 mph"]!:righthandtraffic::maxspeed
     718way["maxspeed:forward"="30 mph"]:righthandtraffic::maxspeedcasinglayer,
     719way["maxspeed:backward"="30 mph"]!:righthandtraffic::maxspeedcasinglayer
    412720{
    413721        set maxspeed_right;
    414722        right-casing-color: speed_30_mph#ff529a;
    415723}
    416 way["maxspeed:forward"="35 mph"]:righthandtraffic::maxspeed,
    417 way["maxspeed:backward"="35 mph"]!:righthandtraffic::maxspeed
     724way["maxspeed:forward"="35 mph"]:righthandtraffic::maxspeedcasinglayer,
     725way["maxspeed:backward"="35 mph"]!:righthandtraffic::maxspeedcasinglayer
    418726{
    419727        set maxspeed_right;
    420728        right-casing-color: speed_35_mph#07f807;
    421729}
    422 way["maxspeed:forward"="40 mph"]:righthandtraffic::maxspeed,
    423 way["maxspeed:backward"="40 mph"]!:righthandtraffic::maxspeed
     730way["maxspeed:forward"="40 mph"]:righthandtraffic::maxspeedcasinglayer,
     731way["maxspeed:backward"="40 mph"]!:righthandtraffic::maxspeedcasinglayer
    424732{
    425733        set maxspeed_right;
    426734        right-casing-color: speed_40_mph#9f9fff;
    427735}
    428 way["maxspeed:forward"="45 mph"]:righthandtraffic::maxspeed,
    429 way["maxspeed:backward"="45 mph"]!:righthandtraffic::maxspeed
     736way["maxspeed:forward"="45 mph"]:righthandtraffic::maxspeedcasinglayer,
     737way["maxspeed:backward"="45 mph"]!:righthandtraffic::maxspeedcasinglayer
    430738{
    431739        set maxspeed_right;
    432740        right-casing-color: speed_45_mph#ee8b00;
    433741}
    434 way["maxspeed:forward"="50 mph"]:righthandtraffic::maxspeed,
    435 way["maxspeed:backward"="50 mph"]!:righthandtraffic::maxspeed
     742way["maxspeed:forward"="50 mph"]:righthandtraffic::maxspeedcasinglayer,
     743way["maxspeed:backward"="50 mph"]!:righthandtraffic::maxspeedcasinglayer
    436744{
    437745        set maxspeed_right;
    438746        right-casing-color: speed_50_mph#f90808;
    439747}
    440 way["maxspeed:forward"="55 mph"]:righthandtraffic::maxspeed,
    441 way["maxspeed:backward"="55 mph"]!:righthandtraffic::maxspeed
     748way["maxspeed:forward"="55 mph"]:righthandtraffic::maxspeedcasinglayer,
     749way["maxspeed:backward"="55 mph"]!:righthandtraffic::maxspeedcasinglayer
    442750{
    443751        set maxspeed_right;
    444752        right-casing-color: speed_55_mph#07f8f8;
    445753}
    446 way["maxspeed:forward"="60 mph"]:righthandtraffic::maxspeed,
    447 way["maxspeed:backward"="60 mph"]!:righthandtraffic::maxspeed
     754way["maxspeed:forward"="60 mph"]:righthandtraffic::maxspeedcasinglayer,
     755way["maxspeed:backward"="60 mph"]!:righthandtraffic::maxspeedcasinglayer
    448756{
    449757        set maxspeed_right;
    450758        right-casing-color: speed_60_mph#f807f8;
    451759}
    452 way["maxspeed:forward"="65 mph"]:righthandtraffic::maxspeed,
    453 way["maxspeed:backward"="65 mph"]!:righthandtraffic::maxspeed
     760way["maxspeed:forward"="65 mph"]:righthandtraffic::maxspeedcasinglayer,
     761way["maxspeed:backward"="65 mph"]!:righthandtraffic::maxspeedcasinglayer
    454762{
    455763        set maxspeed_right;
    456764        right-casing-color: speed_65_mph#7807f8;
    457765}
    458 way["maxspeed:forward"="70 mph"]:righthandtraffic::maxspeed,
    459 way["maxspeed:backward"="70 mph"]!:righthandtraffic::maxspeed
    460 {
    461         set maxspeed_right;
    462         right-casing-color: speed_70_mph#ccad24;
    463 }
    464 way["maxspeed:forward"="75 mph"]:righthandtraffic::maxspeed,
    465 way["maxspeed:backward"="75 mph"]!:righthandtraffic::maxspeed
     766way["maxspeed:forward"="70 mph"]:righthandtraffic::maxspeedcasinglayer,
     767way["maxspeed:backward"="70 mph"]!:righthandtraffic::maxspeedcasinglayer
     768{
     769        set maxspeed_right;
     770        right-casing-color: speed_70_mph#b69b20;
     771}
     772way["maxspeed:forward"="75 mph"]:righthandtraffic::maxspeedcasinglayer,
     773way["maxspeed:backward"="75 mph"]!:righthandtraffic::maxspeedcasinglayer
    466774{
    467775        set maxspeed_right;
     
    469777}
    470778
    471 way.maxspeed_right::maxspeed
    472 {
    473         right-casing-opacity: 0.75;
     779/* 4.3 - conditional righthand-forward and lefthand-backward maxspeed */
     780way.cond_forward_kmh:righthandtraffic::maxspeedcasinglayer,
     781way.cond_backward_kmh!:righthandtraffic::maxspeedcasinglayer,
     782way.cond_forward_mph:righthandtraffic::maxspeedcasinglayer,
     783way.cond_backward_mph!:righthandtraffic::maxspeedcasinglayer
     784{
     785        set maxspeed_right_cond;
     786        right-casing-dashes: 55,25;
     787}
     788/* 4.3.1 - kmh */
     789way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="none"]:righthandtraffic::maxspeedcasinglayer,
     790way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="none"]!:righthandtraffic::maxspeedcasinglayer
     791{
     792        right-casing-dashes-background-color: speed_none#febede;
     793}
     794way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer,
     795way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer
     796{
     797        right-casing-dashes-background-color: speed_5#ff5656;
     798}
     799way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer,
     800way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer
     801{
     802        right-casing-dashes-background-color: speed_10#b80022;
     803}
     804way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer,
     805way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer
     806{
     807        right-casing-dashes-background-color: speed_15#00da8b;
     808}
     809way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer,
     810way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer
     811{
     812        right-casing-dashes-background-color: speed_20#e3cc82;
     813}
     814way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer,
     815way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer
     816{
     817        right-casing-dashes-background-color: speed_30#4d4dff;
     818}
     819way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer,
     820way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer
     821{
     822        right-casing-dashes-background-color: speed_40#4d4d00;
     823}
     824way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer,
     825way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer
     826{
     827        right-casing-dashes-background-color: speed_45#ff529a;
     828}
     829way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer,
     830way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer
     831{
     832        right-casing-dashes-background-color: speed_50#07f807;
     833}
     834way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer,
     835way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer
     836{
     837        right-casing-dashes-background-color: speed_60#9f9fff;
     838}
     839way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer,
     840way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer
     841{
     842        right-casing-dashes-background-color: speed_70#ee8b00;
     843}
     844way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="80"]:righthandtraffic::maxspeedcasinglayer,
     845way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="80"]!:righthandtraffic::maxspeedcasinglayer
     846{
     847        right-casing-dashes-background-color: speed_80#f90808;
     848}
     849way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="90"]:righthandtraffic::maxspeedcasinglayer,
     850way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="90"]!:righthandtraffic::maxspeedcasinglayer
     851{
     852        right-casing-dashes-background-color: speed_90#07f8f8;
     853}
     854way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="100"]:righthandtraffic::maxspeedcasinglayer,
     855way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="100"]!:righthandtraffic::maxspeedcasinglayer
     856{
     857        right-casing-dashes-background-color: speed_100#f807f8;
     858}
     859way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="110"]:righthandtraffic::maxspeedcasinglayer,
     860way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="110"]!:righthandtraffic::maxspeedcasinglayer
     861{
     862        right-casing-dashes-background-color: speed_110#7807f8;
     863}
     864way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="120"]:righthandtraffic::maxspeedcasinglayer,
     865way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="120"]!:righthandtraffic::maxspeedcasinglayer
     866{
     867        right-casing-dashes-background-color: speed_120#b69b20;
     868}
     869way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="130"]:righthandtraffic::maxspeedcasinglayer,
     870way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="130"]!:righthandtraffic::maxspeedcasinglayer
     871{
     872        right-casing-dashes-background-color: speed_130#c0f100;
     873}
     874way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="140"]:righthandtraffic::maxspeedcasinglayer,
     875way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="140"]!:righthandtraffic::maxspeedcasinglayer
     876{
     877        right-casing-dashes-background-color: speed_140#438100;
     878}
     879/* 4.3.2 - mph */
     880way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer,
     881way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer
     882{
     883        right-casing-dashes-background-color: speed_5_mph#b80022;
     884}
     885way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer,
     886way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer
     887{
     888        right-casing-dashes-background-color: speed_10_mph#00da8b;
     889}
     890way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer,
     891way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer
     892{
     893        right-casing-dashes-background-color: speed_15_mph#e3cc82;
     894}
     895way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer,
     896way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer
     897{
     898        right-casing-dashes-background-color: speed_20_mph#4d4dff;
     899}
     900way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="25"]:righthandtraffic::maxspeedcasinglayer,
     901way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="25"]!:righthandtraffic::maxspeedcasinglayer
     902{
     903        right-casing-dashes-background-color: speed_25_mph#4d4d00;
     904}
     905way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer,
     906way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer
     907{
     908        right-casing-dashes-background-color: speed_30_mph#ff529a;
     909}
     910way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="35"]:righthandtraffic::maxspeedcasinglayer,
     911way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="35"]!:righthandtraffic::maxspeedcasinglayer
     912{
     913        right-casing-dashes-background-color: speed_35_mph#07f807;
     914}
     915way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer,
     916way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer
     917{
     918        right-casing-dashes-background-color: speed_40_mph#9f9fff;
     919}
     920way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer,
     921way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer
     922{
     923        right-casing-dashes-background-color: speed_45_mph#ee8b00;
     924}
     925way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer,
     926way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer
     927{
     928        right-casing-dashes-background-color: speed_50_mph#f90808;
     929}
     930way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="55"]:righthandtraffic::maxspeedcasinglayer,
     931way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="55"]!:righthandtraffic::maxspeedcasinglayer
     932{
     933        right-casing-dashes-background-color: speed_55_mph#07f8f8;
     934}
     935way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer,
     936way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer
     937{
     938        right-casing-dashes-background-color: speed_60_mph#f807f8;
     939}
     940way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="65"]:righthandtraffic::maxspeedcasinglayer,
     941way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="65"]!:righthandtraffic::maxspeedcasinglayer
     942{
     943        right-casing-dashes-background-color: speed_65_mph#7807f8;
     944}
     945way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer,
     946way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer
     947{
     948        right-casing-dashes-background-color: speed_70_mph#b69b20;
     949}
     950way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="75"]:righthandtraffic::maxspeedcasinglayer,
     951way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="75"]!:righthandtraffic::maxspeedcasinglayer
     952{
     953        right-casing-dashes-background-color: speed_75_mph#c0f100;
     954}
     955
     956/* 4.4 - general rules */
     957way.maxspeed_right::maxspeedcasinglayer,
     958way.maxspeed_right_cond::maxspeedcasinglayer
     959{
    474960        right-casing-width: 6;
    475961        right-casing-offset: 0;
    476 }
    477 way|z16.maxspeed_right::maxspeed
     962        major-z-index: 3;
     963        z-index: -1;
     964}
     965way|z16.maxspeed_right::maxspeedcasinglayer,
     966way|z16.maxspeed_right_cond::maxspeedcasinglayer
    478967{
    479968        right-casing-width: 5;
    480969}
    481 way|z-15.maxspeed_right::maxspeed
     970way|z-15.maxspeed_right::maxspeedcasinglayer,
     971way|z-15.maxspeed_right_cond::maxspeedcasinglayer
    482972{
    483973        right-casing-width: 4;
    484974}
    485 way.maxspeed_right[maxspeed:variable:forward]:righthandtraffic::maxspeed,
    486 way.maxspeed_right[maxspeed:variable:backward]!:righthandtraffic::maxspeed
     975way.maxspeed_right_cond!.maxspeed_right::maxspeedcasinglayer
     976{
     977        right-casing-opacity: 0;
     978        right-casing-dashes-background-opacity: 1;
     979}
     980way.maxspeed_right[maxspeed:variable:forward]:righthandtraffic::maxspeedcasinglayer,
     981way.maxspeed_right[maxspeed:variable:backward]!:righthandtraffic::maxspeedcasinglayer,
     982way.maxspeed_right_cond[maxspeed:variable:forward]:righthandtraffic::maxspeedcasinglayer,
     983way.maxspeed_right_cond[maxspeed:variable:backward]!:righthandtraffic::maxspeedcasinglayer
    487984{
    488985        right-casing-dashes: 34,6;
     
    491988/*************************************/
    492989
    493 /* display maxspeed:forward=* for lefthandtraffic */
    494 /* display maxspeed:backward=* for righthandtraffic */
    495 
    496 way["maxspeed:forward"="none"]!:righthandtraffic::maxspeed,
    497 way["maxspeed:backward"="none"]:righthandtraffic::maxspeed
     990/* 5 - display maxspeed:forward=* for lefthandtraffic and maxspeed:backward=* for righthandtraffic */
     991/* 5.1 - kmh */
     992way["maxspeed:forward"="none"]!:righthandtraffic::maxspeedcasinglayer,
     993way["maxspeed:backward"="none"]:righthandtraffic::maxspeedcasinglayer
    498994{
    499995        set maxspeed_left;
    500996        left-casing-color: speed_none#febede;
    501997}
    502         /* km/h */
    503 way["maxspeed:forward"="5"]!:righthandtraffic::maxspeed,
    504 way["maxspeed:backward"="5"]:righthandtraffic::maxspeed
     998way["maxspeed:forward"="5"]!:righthandtraffic::maxspeedcasinglayer,
     999way["maxspeed:backward"="5"]:righthandtraffic::maxspeedcasinglayer
    5051000{
    5061001        set maxspeed_left;
    5071002        left-casing-color: speed_5#ff5656;
    5081003}
    509 way["maxspeed:forward"="10"]!:righthandtraffic::maxspeed,
    510 way["maxspeed:backward"="10"]:righthandtraffic::maxspeed
     1004way["maxspeed:forward"="10"]!:righthandtraffic::maxspeedcasinglayer,
     1005way["maxspeed:backward"="10"]:righthandtraffic::maxspeedcasinglayer,
     1006way["maxspeed:backward"="RS:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5111007{
    5121008        set maxspeed_left;
    5131009        left-casing-color: speed_10#b80022;
    5141010}
    515 way["maxspeed:forward"="15"]!:righthandtraffic::maxspeed,
    516 way["maxspeed:backward"="15"]:righthandtraffic::maxspeed
     1011way["maxspeed:forward"="15"]!:righthandtraffic::maxspeedcasinglayer,
     1012way["maxspeed:backward"="15"]:righthandtraffic::maxspeedcasinglayer
    5171013{
    5181014        set maxspeed_left;
    5191015        left-casing-color: speed_15#00da8b;
    5201016}
    521 way["maxspeed:forward"="20"]!:righthandtraffic::maxspeed,
    522 way["maxspeed:backward"="20"]:righthandtraffic::maxspeed,
    523 way["maxspeed:backward"="RU:living_street"][setting("RU")]:righthandtraffic::maxspeed
     1017way["maxspeed:forward"="20"]!:righthandtraffic::maxspeedcasinglayer,
     1018way["maxspeed:backward"="20"]:righthandtraffic::maxspeedcasinglayer,
     1019way["maxspeed:backward"="BY:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1020way["maxspeed:backward"="RU:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5241021{
    5251022        set maxspeed_left;
    5261023        left-casing-color: speed_20#e3cc82;
    5271024}
    528 way["maxspeed:forward"="30"]!:righthandtraffic::maxspeed,
    529 way["maxspeed:backward"="30"]:righthandtraffic::maxspeed
     1025way["maxspeed:forward"="30"]!:righthandtraffic::maxspeedcasinglayer,
     1026way["maxspeed:backward"="30"]:righthandtraffic::maxspeedcasinglayer,
     1027way["maxspeed:backward"="FR:zone30"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5301028{
    5311029        set maxspeed_left;
    5321030        left-casing-color: speed_30#4d4dff;
    5331031}
    534 way["maxspeed:forward"="40"]!:righthandtraffic::maxspeed,
    535 way["maxspeed:backward"="40"]:righthandtraffic::maxspeed
     1032way["maxspeed:forward"="40"]!:righthandtraffic::maxspeedcasinglayer,
     1033way["maxspeed:backward"="40"]:righthandtraffic::maxspeedcasinglayer
    5361034{
    5371035        set maxspeed_left;
    5381036        left-casing-color: speed_40#4d4d00;
    5391037}
    540 way["maxspeed:forward"="45"]!:righthandtraffic::maxspeed,
    541 way["maxspeed:backward"="45"]:righthandtraffic::maxspeed
     1038way["maxspeed:forward"="45"]!:righthandtraffic::maxspeedcasinglayer,
     1039way["maxspeed:backward"="45"]:righthandtraffic::maxspeedcasinglayer
    5421040{
    5431041        set maxspeed_left;
    5441042        left-casing-color: speed_45#ff529a;
    5451043}
    546 way["maxspeed:forward"="50"]!:righthandtraffic::maxspeed,
    547 way["maxspeed:backward"="50"]:righthandtraffic::maxspeed
     1044way["maxspeed:forward"="50"]!:righthandtraffic::maxspeedcasinglayer,
     1045way["maxspeed:backward"="50"]:righthandtraffic::maxspeedcasinglayer,
     1046way["maxspeed:backward"="FR:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1047way["maxspeed:backward"="RO:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1048way["maxspeed:backward"="RS:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5481049{
    5491050        set maxspeed_left;
    5501051        left-casing-color: speed_50#07f807;
    5511052}
    552 way["maxspeed:forward"="60"]!:righthandtraffic::maxspeed,
    553 way["maxspeed:backward"="60"]:righthandtraffic::maxspeed,
    554 way["maxspeed:backward"="RU:urban"][setting("RU")]:righthandtraffic::maxspeed
     1053way["maxspeed:forward"="60"]!:righthandtraffic::maxspeedcasinglayer,
     1054way["maxspeed:backward"="60"]:righthandtraffic::maxspeedcasinglayer,
     1055way["maxspeed:backward"="BY:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1056way["maxspeed:backward"="RU:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5551057{
    5561058        set maxspeed_left;
    5571059        left-casing-color: speed_60#9f9fff;
    5581060}
    559 way["maxspeed:forward"="70"]!:righthandtraffic::maxspeed,
    560 way["maxspeed:backward"="70"]:righthandtraffic::maxspeed
     1061way["maxspeed:forward"="70"]!:righthandtraffic::maxspeedcasinglayer,
     1062way["maxspeed:backward"="70"]:righthandtraffic::maxspeedcasinglayer
    5611063{
    5621064        set maxspeed_left;
    5631065        left-casing-color: speed_70#ee8b00;
    5641066}
    565 way["maxspeed:forward"="80"]!:righthandtraffic::maxspeed,
    566 way["maxspeed:backward"="80"]:righthandtraffic::maxspeed
     1067way["maxspeed:forward"="80"]!:righthandtraffic::maxspeedcasinglayer,
     1068way["maxspeed:backward"="80"]:righthandtraffic::maxspeedcasinglayer,
     1069way["maxspeed:backward"="FR:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1070way["maxspeed:backward"="RS:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5671071{
    5681072        set maxspeed_left;
    5691073        left-casing-color: speed_80#f90808;
    5701074}
    571 way["maxspeed:forward"="90"]!:righthandtraffic::maxspeed,
    572 way["maxspeed:backward"="90"]:righthandtraffic::maxspeed,
    573 way["maxspeed:backward"="RU:rural"][setting("RU")]:righthandtraffic::maxspeed
     1075way["maxspeed:forward"="90"]!:righthandtraffic::maxspeedcasinglayer,
     1076way["maxspeed:backward"="90"]:righthandtraffic::maxspeedcasinglayer,
     1077way["maxspeed:backward"="BY:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1078way["maxspeed:backward"="RO:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1079way["maxspeed:backward"="RU:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5741080{
    5751081        set maxspeed_left;
    5761082        left-casing-color: speed_90#07f8f8;
    5771083}
    578 way["maxspeed:forward"="100"]!:righthandtraffic::maxspeed,
    579 way["maxspeed:backward"="100"]:righthandtraffic::maxspeed
     1084way["maxspeed:forward"="100"]!:righthandtraffic::maxspeedcasinglayer,
     1085way["maxspeed:backward"="100"]:righthandtraffic::maxspeedcasinglayer,
     1086way["maxspeed:backward"="RO:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1087way["maxspeed:backward"="RS:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5801088{
    5811089        set maxspeed_left;
    5821090        left-casing-color: speed_100#f807f8;
    5831091}
    584 way["maxspeed:forward"="110"]!:righthandtraffic::maxspeed,
    585 way["maxspeed:backward"="110"]:righthandtraffic::maxspeed,
    586 way["maxspeed:backward"="RU:motorway"][setting("RU")]:righthandtraffic::maxspeed
     1092way["maxspeed:forward"="110"]!:righthandtraffic::maxspeedcasinglayer,
     1093way["maxspeed:backward"="110"]:righthandtraffic::maxspeedcasinglayer,
     1094way["maxspeed:backward"="BY:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1095way["maxspeed:backward"="RU:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5871096{
    5881097        set maxspeed_left;
    5891098        left-casing-color: speed_110#7807f8;
    5901099}
    591 way["maxspeed:forward"="120"]!:righthandtraffic::maxspeed,
    592 way["maxspeed:backward"="120"]:righthandtraffic::maxspeed
    593 {
    594         set maxspeed_left;
    595         left-casing-color: speed_120#ccad24;
    596 }
    597 way["maxspeed:forward"="130"]!:righthandtraffic::maxspeed,
    598 way["maxspeed:backward"="130"]:righthandtraffic::maxspeed
     1100way["maxspeed:forward"="120"]!:righthandtraffic::maxspeedcasinglayer,
     1101way["maxspeed:backward"="120"]:righthandtraffic::maxspeedcasinglayer
     1102{
     1103        set maxspeed_left;
     1104        left-casing-color: speed_120#b69b20;
     1105}
     1106way["maxspeed:forward"="130"]!:righthandtraffic::maxspeedcasinglayer,
     1107way["maxspeed:backward"="130"]:righthandtraffic::maxspeedcasinglayer,
     1108way["maxspeed:backward"="FR:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1109way["maxspeed:backward"="RO:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1110way["maxspeed:backward"="RS:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    5991111{
    6001112        set maxspeed_left;
    6011113        left-casing-color: speed_130#c0f100;
    6021114}
    603         /* mph */
    604 way["maxspeed:forward"="5 mph"]!:righthandtraffic::maxspeed,
    605 way["maxspeed:backward"="5 mph"]:righthandtraffic::maxspeed
     1115way["maxspeed:forward"="140"]!:righthandtraffic::maxspeedcasinglayer,
     1116way["maxspeed:backward"="140"]:righthandtraffic::maxspeedcasinglayer
     1117{
     1118        set maxspeed_left;
     1119        left-casing-color: speed_140#438100;
     1120}
     1121/* 5.2 - mph */
     1122way["maxspeed:forward"="5 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1123way["maxspeed:backward"="5 mph"]:righthandtraffic::maxspeedcasinglayer
    6061124{
    6071125        set maxspeed_left;
    6081126        left-casing-color: speed_5_mph#b80022;
    6091127}
    610 way["maxspeed:forward"="10 mph"]!:righthandtraffic::maxspeed,
    611 way["maxspeed:backward"="10 mph"]:righthandtraffic::maxspeed
     1128way["maxspeed:forward"="10 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1129way["maxspeed:backward"="10 mph"]:righthandtraffic::maxspeedcasinglayer
    6121130{
    6131131        set maxspeed_left;
    6141132        left-casing-color: speed_10_mph#00da8b;
    6151133}
    616 way["maxspeed:forward"="15 mph"]!:righthandtraffic::maxspeed,
    617 way["maxspeed:backward"="15 mph"]:righthandtraffic::maxspeed
     1134way["maxspeed:forward"="15 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1135way["maxspeed:backward"="15 mph"]:righthandtraffic::maxspeedcasinglayer
    6181136{
    6191137        set maxspeed_left;
    6201138        left-casing-color: speed_15_mph#e3cc82;
    6211139}
    622 way["maxspeed:forward"="20 mph"]!:righthandtraffic::maxspeed,
    623 way["maxspeed:backward"="20 mph"]:righthandtraffic::maxspeed
     1140way["maxspeed:forward"="20 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1141way["maxspeed:backward"="20 mph"]:righthandtraffic::maxspeedcasinglayer
    6241142{
    6251143        set maxspeed_left;
    6261144        left-casing-color: speed_20_mph#4d4dff;
    6271145}
    628 way["maxspeed:forward"="25 mph"]!:righthandtraffic::maxspeed,
    629 way["maxspeed:backward"="25 mph"]:righthandtraffic::maxspeed
     1146way["maxspeed:forward"="25 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1147way["maxspeed:backward"="25 mph"]:righthandtraffic::maxspeedcasinglayer
    6301148{
    6311149        set maxspeed_left;
    6321150        left-casing-color: speed_25_mph#4d4d00;
    6331151}
    634 way["maxspeed:forward"="30 mph"]!:righthandtraffic::maxspeed,
    635 way["maxspeed:backward"="30 mph"]:righthandtraffic::maxspeed
     1152way["maxspeed:forward"="30 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1153way["maxspeed:backward"="30 mph"]:righthandtraffic::maxspeedcasinglayer
    6361154{
    6371155        set maxspeed_left;
    6381156        left-casing-color: speed_30_mph#ff529a;
    6391157}
    640 way["maxspeed:forward"="35 mph"]!:righthandtraffic::maxspeed,
    641 way["maxspeed:backward"="35 mph"]:righthandtraffic::maxspeed
     1158way["maxspeed:forward"="35 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1159way["maxspeed:backward"="35 mph"]:righthandtraffic::maxspeedcasinglayer
    6421160{
    6431161        set maxspeed_left;
    6441162        left-casing-color: speed_35_mph#07f807;
    6451163}
    646 way["maxspeed:forward"="40 mph"]!:righthandtraffic::maxspeed,
    647 way["maxspeed:backward"="40 mph"]:righthandtraffic::maxspeed
     1164way["maxspeed:forward"="40 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1165way["maxspeed:backward"="40 mph"]:righthandtraffic::maxspeedcasinglayer
    6481166{
    6491167        set maxspeed_left;
    6501168        left-casing-color: speed_40_mph#9f9fff;
    6511169}
    652 way["maxspeed:forward"="45 mph"]!:righthandtraffic::maxspeed,
    653 way["maxspeed:backward"="45 mph"]:righthandtraffic::maxspeed
     1170way["maxspeed:forward"="45 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1171way["maxspeed:backward"="45 mph"]:righthandtraffic::maxspeedcasinglayer
    6541172{
    6551173        set maxspeed_left;
    6561174        left-casing-color: speed_45_mph#ee8b00;
    6571175}
    658 way["maxspeed:forward"="50 mph"]!:righthandtraffic::maxspeed,
    659 way["maxspeed:backward"="50 mph"]:righthandtraffic::maxspeed
     1176way["maxspeed:forward"="50 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1177way["maxspeed:backward"="50 mph"]:righthandtraffic::maxspeedcasinglayer
    6601178{
    6611179        set maxspeed_left;
    6621180        left-casing-color: speed_50_mph#f90808;
    6631181}
    664 way["maxspeed:forward"="55 mph"]!:righthandtraffic::maxspeed,
    665 way["maxspeed:backward"="55 mph"]:righthandtraffic::maxspeed
     1182way["maxspeed:forward"="55 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1183way["maxspeed:backward"="55 mph"]:righthandtraffic::maxspeedcasinglayer
    6661184{
    6671185        set maxspeed_left;
    6681186        left-casing-color: speed_55_mph#07f8f8;
    6691187}
    670 way["maxspeed:forward"="60 mph"]!:righthandtraffic::maxspeed,
    671 way["maxspeed:backward"="60 mph"]:righthandtraffic::maxspeed
     1188way["maxspeed:forward"="60 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1189way["maxspeed:backward"="60 mph"]:righthandtraffic::maxspeedcasinglayer
    6721190{
    6731191        set maxspeed_left;
    6741192        left-casing-color: speed_60_mph#f807f8;
    6751193}
    676 way["maxspeed:forward"="65 mph"]!:righthandtraffic::maxspeed,
    677 way["maxspeed:backward"="65 mph"]:righthandtraffic::maxspeed
     1194way["maxspeed:forward"="65 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1195way["maxspeed:backward"="65 mph"]:righthandtraffic::maxspeedcasinglayer
    6781196{
    6791197        set maxspeed_left;
    6801198        left-casing-color: speed_65_mph#7807f8;
    6811199}
    682 way["maxspeed:forward"="70 mph"]!:righthandtraffic::maxspeed,
    683 way["maxspeed:backward"="70 mph"]:righthandtraffic::maxspeed
    684 {
    685         set maxspeed_left;
    686         left-casing-color: speed_70_mph#ccad24;
    687 }
    688 way["maxspeed:forward"="75 mph"]!:righthandtraffic::maxspeed,
    689 way["maxspeed:backward"="75 mph"]:righthandtraffic::maxspeed
     1200way["maxspeed:forward"="70 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1201way["maxspeed:backward"="70 mph"]:righthandtraffic::maxspeedcasinglayer
     1202{
     1203        set maxspeed_left;
     1204        left-casing-color: speed_70_mph#b69b20;
     1205}
     1206way["maxspeed:forward"="75 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1207way["maxspeed:backward"="75 mph"]:righthandtraffic::maxspeedcasinglayer
    6901208{
    6911209        set maxspeed_left;
     
    6931211}
    6941212
    695 way.maxspeed_left::maxspeed
    696 {
    697         left-casing-opacity: 0.75;
     1213/* 5.3 - conditional lefthand-forward and righthand-backward maxspeed */
     1214way.cond_forward_kmh!:righthandtraffic::maxspeedcasinglayer,
     1215way.cond_backward_kmh:righthandtraffic::maxspeedcasinglayer,
     1216way.cond_forward_mph!:righthandtraffic::maxspeedcasinglayer,
     1217way.cond_backward_mph:righthandtraffic::maxspeedcasinglayer
     1218{
     1219        set maxspeed_left_cond;
     1220        left-casing-dashes: 55,25;
     1221}
     1222/* 5.3.1 - kmh */
     1223way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="none"]!:righthandtraffic::maxspeedcasinglayer,
     1224way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="none"]:righthandtraffic::maxspeedcasinglayer
     1225{
     1226        left-casing-dashes-background-color: speed_none#febede;
     1227}
     1228way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer,
     1229way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer
     1230{
     1231        left-casing-dashes-background-color: speed_5#ff5656;
     1232}
     1233way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer,
     1234way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer
     1235{
     1236        left-casing-dashes-background-color: speed_10#b80022;
     1237}
     1238way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer,
     1239way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer
     1240{
     1241        left-casing-dashes-background-color: speed_15#00da8b;
     1242}
     1243way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer,
     1244way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer
     1245{
     1246        left-casing-dashes-background-color: speed_20#e3cc82;
     1247}
     1248way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer,
     1249way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer
     1250{
     1251        left-casing-dashes-background-color: speed_30#4d4dff;
     1252}
     1253way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer,
     1254way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer
     1255{
     1256        left-casing-dashes-background-color: speed_40#4d4d00;
     1257}
     1258way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer,
     1259way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer
     1260{
     1261        left-casing-dashes-background-color: speed_45#ff529a;
     1262}
     1263way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer,
     1264way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer
     1265{
     1266        left-casing-dashes-background-color: speed_50#07f807;
     1267}
     1268way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer,
     1269way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer
     1270{
     1271        left-casing-dashes-background-color: speed_60#9f9fff;
     1272}
     1273way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer,
     1274way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer
     1275{
     1276        left-casing-dashes-background-color: speed_70#ee8b00;
     1277}
     1278way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="80"]!:righthandtraffic::maxspeedcasinglayer,
     1279way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="80"]:righthandtraffic::maxspeedcasinglayer
     1280{
     1281        left-casing-dashes-background-color: speed_80#f90808;
     1282}
     1283way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="90"]!:righthandtraffic::maxspeedcasinglayer,
     1284way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="90"]:righthandtraffic::maxspeedcasinglayer
     1285{
     1286        left-casing-dashes-background-color: speed_90#07f8f8;
     1287}
     1288way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="100"]!:righthandtraffic::maxspeedcasinglayer,
     1289way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="100"]:righthandtraffic::maxspeedcasinglayer
     1290{
     1291        left-casing-dashes-background-color: speed_100#f807f8;
     1292}
     1293way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="110"]!:righthandtraffic::maxspeedcasinglayer,
     1294way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="110"]:righthandtraffic::maxspeedcasinglayer
     1295{
     1296        left-casing-dashes-background-color: speed_110#7807f8;
     1297}
     1298way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="120"]!:righthandtraffic::maxspeedcasinglayer,
     1299way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="120"]:righthandtraffic::maxspeedcasinglayer
     1300{
     1301        left-casing-dashes-background-color: speed_120#b69b20;
     1302}
     1303way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="130"]!:righthandtraffic::maxspeedcasinglayer,
     1304way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="130"]:righthandtraffic::maxspeedcasinglayer
     1305{
     1306        left-casing-dashes-background-color: speed_130#c0f100;
     1307}
     1308way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="140"]!:righthandtraffic::maxspeedcasinglayer,
     1309way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="140"]:righthandtraffic::maxspeedcasinglayer
     1310{
     1311        left-casing-dashes-background-color: speed_140#438100;
     1312}
     1313/* 5.3.2 - mph */
     1314way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer,
     1315way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer
     1316{
     1317        left-casing-dashes-background-color: speed_5_mph#b80022;
     1318}
     1319way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer,
     1320way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer
     1321{
     1322        left-casing-dashes-background-color: speed_10_mph#00da8b;
     1323}
     1324way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer,
     1325way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer
     1326{
     1327        left-casing-dashes-background-color: speed_15_mph#e3cc82;
     1328}
     1329way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer,
     1330way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer
     1331{
     1332        left-casing-dashes-background-color: speed_20_mph#4d4dff;
     1333}
     1334way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="25"]!:righthandtraffic::maxspeedcasinglayer,
     1335way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="25"]:righthandtraffic::maxspeedcasinglayer
     1336{
     1337        left-casing-dashes-background-color: speed_25_mph#4d4d00;
     1338}
     1339way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer,
     1340way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer
     1341{
     1342        left-casing-dashes-background-color: speed_30_mph#ff529a;
     1343}
     1344way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="35"]!:righthandtraffic::maxspeedcasinglayer,
     1345way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="35"]:righthandtraffic::maxspeedcasinglayer
     1346{
     1347        left-casing-dashes-background-color: speed_35_mph#07f807;
     1348}
     1349way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer,
     1350way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer
     1351{
     1352        left-casing-dashes-background-color: speed_40_mph#9f9fff;
     1353}
     1354way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer,
     1355way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer
     1356{
     1357        left-casing-dashes-background-color: speed_45_mph#ee8b00;
     1358}
     1359way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer,
     1360way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer
     1361{
     1362        left-casing-dashes-background-color: speed_50_mph#f90808;
     1363}
     1364way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="55"]!:righthandtraffic::maxspeedcasinglayer,
     1365way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="55"]:righthandtraffic::maxspeedcasinglayer
     1366{
     1367        left-casing-dashes-background-color: speed_55_mph#07f8f8;
     1368}
     1369way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer,
     1370way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer
     1371{
     1372        left-casing-dashes-background-color: speed_60_mph#f807f8;
     1373}
     1374way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="65"]!:righthandtraffic::maxspeedcasinglayer,
     1375way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="65"]:righthandtraffic::maxspeedcasinglayer
     1376{
     1377        left-casing-dashes-background-color: speed_65_mph#7807f8;
     1378}
     1379way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer,
     1380way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer
     1381{
     1382        left-casing-dashes-background-color: speed_70_mph#b69b20;
     1383}
     1384way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="75"]!:righthandtraffic::maxspeedcasinglayer,
     1385way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="75"]:righthandtraffic::maxspeedcasinglayer
     1386{
     1387        left-casing-dashes-background-color: speed_75_mph#c0f100;
     1388}
     1389
     1390/* 5.4 - general rules */
     1391way.maxspeed_left::maxspeedcasinglayer,
     1392way.maxspeed_left_cond::maxspeedcasinglayer
     1393{
    6981394        left-casing-width: 6;
    6991395        left-casing-offset: 0;
    700 }
    701 way|z16.maxspeed_left::maxspeed
     1396        major-z-index: 3;
     1397        z-index: -1;
     1398}
     1399way|z16.maxspeed_left::maxspeedcasinglayer,
     1400way|z16.maxspeed_left_cond::maxspeedcasinglayer
    7021401{
    7031402        left-casing-width: 5;
    7041403}
    705 way|z-15.maxspeed_left::maxspeed
     1404way|z-15.maxspeed_left::maxspeedcasinglayer,
     1405way|z-15.maxspeed_left_cond::maxspeedcasinglayer
    7061406{
    7071407        left-casing-width: 4;
    7081408}
    709 way.maxspeed_left[maxspeed:variable:forward]!:righthandtraffic::maxspeed,
    710 way.maxspeed_left[maxspeed:variable:backward]:righthandtraffic::maxspeed
     1409way.maxspeed_left_cond!.maxspeed_left::maxspeedcasinglayer
     1410{
     1411        left-casing-opacity: 0;
     1412        left-casing-dashes-background-opacity: 1;
     1413}
     1414way.maxspeed_left[maxspeed:variable:forward]!:righthandtraffic::maxspeedcasinglayer,
     1415way.maxspeed_left[maxspeed:variable:backward]:righthandtraffic::maxspeedcasinglayer,
     1416way.maxspeed_left_cond[maxspeed:variable:forward]!:righthandtraffic::maxspeedcasinglayer,
     1417way.maxspeed_left_cond[maxspeed:variable:backward]:righthandtraffic::maxspeedcasinglayer
    7111418{
    7121419        left-casing-dashes: 34,6;
     
    7141421
    7151422/*************************************/
    716 /*************************************/
    717 /*************************************/
    718 
    719 /* report wrong value of maxspeed */
    720 way[maxspeed=~/^[0-9]+$/]::maxspeed,
    721 way[maxspeed=signals]::maxspeed,
    722 way[maxspeed=none]::maxspeed,
    723 way[maxspeed=~/^[0-9]+ mph/]::maxspeed,
    724 way[maxspeed=~/[0-9]+ km\/h/]::maxspeed,
    725 way[maxspeed=~/[0-9]+ knots/]::maxspeed,
    726 way[maxspeed="RU:living_street"][setting("RU")]::maxspeed,
    727 way[maxspeed="RU:urban"][setting("RU")]::maxspeed,
    728 way[maxspeed="RU:rural"][setting("RU")]::maxspeed,
    729 way[maxspeed="RU:motorway"][setting("RU")]::maxspeed
     1423
     1424/* 6 - error reporting */
     1425/* 6.1 - report wrong value of maxspeed */
     1426way[maxspeed=~/^[0-9]+$/]::maxspeedlayer,
     1427way[maxspeed=signals]::maxspeedlayer,
     1428way[maxspeed=none]::maxspeedlayer,
     1429way[maxspeed=~/^[0-9]+ mph$/]::maxspeedlayer,
     1430way[maxspeed=~/^[0-9]+ km\/h$/]::maxspeedlayer,
     1431way[maxspeed=~/^[0-9]+ knots$/]::maxspeedlayer,
     1432way[maxspeed=~/^(BY|FR|RO|RS|RU):(urban|rural|motorway)/][setting("implicit")]::maxspeedlayer,
     1433way[maxspeed=~/^(FR):(zone30)/][setting("implicit")]::maxspeedlayer,
     1434way[maxspeed=~/^(RO|RS):(trunk)/][setting("implicit")]::maxspeedlayer,
     1435way[maxspeed=~/^(BY|RS|RU):(living_street)/][setting("implicit")]::maxspeedlayer
    7301436{
    7311437        set correct_value;
    7321438}
    733 way[maxspeed:forward=~/^[0-9]+$/]::maxspeed,
    734 way[maxspeed:forward=signals]::maxspeed,
    735 way[maxspeed:forward=none]::maxspeed,
    736 way[maxspeed:forward=~/^[0-9]+ mph/]::maxspeed,
    737 way[maxspeed:forward=~/[0-9]+ km\/h/]::maxspeed,
    738 way[maxspeed:forward=~/[0-9]+ knots/]::maxspeed,
    739 way[maxspeed:forward="RU:living_street"][setting("RU")]::maxspeed,
    740 way[maxspeed:forward="RU:urban"][setting("RU")]::maxspeed,
    741 way[maxspeed:forward="RU:rural"][setting("RU")]::maxspeed,
    742 way[maxspeed:forward="RU:motorway"][setting("RU")]::maxspeed
     1439way[maxspeed:forward=~/^[0-9]+$/]::maxspeedcasinglayer,
     1440way[maxspeed:forward=signals]::maxspeedcasinglayer,
     1441way[maxspeed:forward=none]::maxspeedcasinglayer,
     1442way[maxspeed:forward=~/^[0-9]+ mph$/]::maxspeedcasinglayer,
     1443way[maxspeed:forward=~/^[0-9]+ km\/h$/]::maxspeedcasinglayer,
     1444way[maxspeed:forward=~/^[0-9]+ knots$/]::maxspeedcasinglayer,
     1445way[maxspeed:forward=~/^(BY|FR|RO|RS|RU):(urban|rural|motorway)/][setting("implicit")]::maxspeedcasinglayer,
     1446way[maxspeed:forward=~/^(FR):(zone30)/][setting("implicit")]::maxspeedcasinglayer,
     1447way[maxspeed:forward=~/^(RO|RS):(trunk)/][setting("implicit")]::maxspeedcasinglayer,
     1448way[maxspeed:forward=~/^(BY|RS|RU):(living_street)/][setting("implicit")]::maxspeedcasinglayer
    7431449{
    7441450        set correct_value_forward;
    7451451}
    746 way[maxspeed:backward=~/^[0-9]+$/]::maxspeed,
    747 way[maxspeed:backward=signals]::maxspeed,
    748 way[maxspeed:backward=none]::maxspeed,
    749 way[maxspeed:backward=~/^[0-9]+ mph/]::maxspeed,
    750 way[maxspeed:backward=~/[0-9]+ km\/h/]::maxspeed,
    751 way[maxspeed:backward=~/[0-9]+ knots/]::maxspeed,
    752 way[maxspeed:backward="RU:living_street"][setting("RU")]::maxspeed,
    753 way[maxspeed:backward="RU:urban"][setting("RU")]::maxspeed,
    754 way[maxspeed:backward="RU:rural"][setting("RU")]::maxspeed,
    755 way[maxspeed:backward="RU:motorway"][setting("RU")]::maxspeed
     1452way[maxspeed:backward=~/^[0-9]+$/]::maxspeedcasinglayer,
     1453way[maxspeed:backward=signals]::maxspeedcasinglayer,
     1454way[maxspeed:backward=none]::maxspeedcasinglayer,
     1455way[maxspeed:backward=~/^[0-9]+ mph$/]::maxspeedcasinglayer,
     1456way[maxspeed:backward=~/^[0-9]+ km\/h$/]::maxspeedcasinglayer,
     1457way[maxspeed:backward=~/^[0-9]+ knots$/]::maxspeedcasinglayer,
     1458way[maxspeed:backward=~/^(BY|FR|RO|RS|RU):(urban|rural|motorway)/][setting("implicit")]::maxspeedcasinglayer,
     1459way[maxspeed:backward=~/^(FR):(zone30)/][setting("implicit")]::maxspeedcasinglayer,
     1460way[maxspeed:backward=~/^(RO|RS):(trunk)/][setting("implicit")]::maxspeedcasinglayer,
     1461way[maxspeed:backward=~/^(BY|RS|RU):(living_street)/][setting("implicit")]::maxspeedcasinglayer
    7561462{
    7571463        set correct_value_backward;
    7581464}
    7591465
    760 way["maxspeed"]!.correct_value::maxspeed,
    761 way["maxspeed:forward"]!.correct_value_forward::maxspeed,
    762 way["maxspeed:backward"]!.correct_value_backward::maxspeed
     1466way["maxspeed"]!.correct_value::maxspeedlayer,
     1467way["maxspeed:forward"]!.correct_value_forward::maxspeedcasinglayer,
     1468way["maxspeed:backward"]!.correct_value_backward::maxspeedcasinglayer
    7631469{
    7641470        color: yellow;
     
    7761482}
    7771483
    778 /* report if maxspeed direction is opposed to oneway direction */
    779 way["maxspeed:backward"][oneway?],
     1484/* 6.2 - report wrong value of maxspeed:conditional */
     1485way["maxspeed:conditional"=~/^[1-9][0-9]* knots @ /]::maxspeedlayer,
     1486way["maxspeed:forward:conditional"=~/^[1-9][0-9]* knots @ /]::maxspeedcasinglayer,
     1487way["maxspeed:backward:conditional"=~/^[1-9][0-9]* knots @ /]::maxspeedcasinglayer
     1488{
     1489        set cond_knots;
     1490}
     1491
     1492way["maxspeed:conditional"]!.cond_kmh!.cond_mph!.cond_knots::maxspeedlayer,
     1493way["maxspeed:forward:conditional"]!.cond_forward_kmh!.cond_forward_mph!.cond_knots::maxspeedcasinglayer,
     1494way["maxspeed:backward:conditional"]!.cond_backward_kmh!.cond_backward_mph!.cond_knots::maxspeedcasinglayer
     1495{
     1496        color: yellow;
     1497        dashes-background-color: red;
     1498        dashes: 4,24;
     1499        opacity: 1;
     1500        width: 5;
     1501        text: tr("wrong conditional maxspeed value!");
     1502        text-color: black;
     1503        font-size: 11;
     1504        text-halo-color: red;
     1505        text-halo-radius: 2;
     1506        left-casing-width: 1;
     1507        left-casing-color: yellow;
     1508        right-casing-width: 1;
     1509        right-casing-color: yellow;
     1510        z-index: 1;
     1511}
     1512
     1513/* 6.3 - report conditional maxspeed without default maxspeed */
     1514way["maxspeed:conditional"][!"maxspeed"]::maxspeedlayer,
     1515way["maxspeed:forward:conditional"][!"maxspeed:forward"][!"maxspeed"]::maxspeedcasinglayer,
     1516way["maxspeed:backward:conditional"][!"maxspeed:backward"][!"maxspeed"]::maxspeedcasinglayer
     1517{
     1518        color: yellow;
     1519        dashes-background-color: red;
     1520        dashes: 4,24;
     1521        opacity: 1;
     1522        width: 5;
     1523        text: tr("conditional maxspeed without default maxspeed!");
     1524        text-color: black;
     1525        font-size: 11;
     1526        text-halo-color: red;
     1527        text-halo-radius: 2;
     1528        left-casing-width: 1;
     1529        left-casing-color: yellow;
     1530        right-casing-width: 1;
     1531        right-casing-color: yellow;
     1532        left-casing-opacity: 1;
     1533        right-casing-opacity: 1;
     1534        z-index: 1;
     1535
     1536}
     1537
     1538/* 6.4 - report if maxspeed direction is opposed to oneway direction */
     1539way["maxspeed:backward"][oneway?], /* in default layer to not hide the oneway arrows */
    7801540way["maxspeed:forward"][oneway=-1]
    7811541{