Changes between Version 13 and Version 45 of Styles/Maxspeed


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

Legend:

Unmodified
Added
Removed
Modified
  • Styles/Maxspeed

    v13 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)]]
     
    1528Feel free to translate this wiki page into more languages. Already translated languages see top right.
    1629
     30[attachment:Testcenter.osm Testcenter] for quality assurance of this style.
     31
     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
    1739== Changelog ==
    18 === Version 1.5 to 2.0.xx ===
    19 
     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.
     58* Add style for `maxspeed=5`
     59* Change color of `maxspeed=none` for better visibility on aerial imagery
     60=== Version 2.0 ===
    2061* change from xml to mapcss
    2162* support of maxspeed:forward and maxspeed:backward (considering left and right hand traffic)
     
    2566* added error message for wrong maxspeed values (like ''35mph'' or ''35 m/h'')
    2667* added error message if maxspeed direction is opposed to oneway direction
    27 * 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]
    2869 * added ''20'', ''45'', ''none''
    2970 * removed unused values like ''32.19''
    3071* adjusted opacities, widths and some colors for better display and distinction between the colors
    3172* widths depends on zoom level
    32 
     73=== Version 1.5 ===
     74* Start version
    3375
    3476== Code ==
     
    3779#!style type="mapcss"
    3880
     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 */
    39123meta
    40124{
    41125        title: "Maxspeed";
    42         version: "2.0.[[revision]]_[[date]]";
    43         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.";
    44128        icon: "maxspeed_icon.svg";
    45129        author: "Rubke, Dirk Stöcker, Vclaw, Klumbumbus";
    46         link: "http://josm.openstreetmap.de/wiki/Styles/Maxspeed";
    47         watch-modified: true;
    48         min-josm-version: "7193"; /* because of pseudoclass :righthandtraffic */
    49 }
    50 
     130        link: "https://josm.openstreetmap.de/wiki/Styles/Maxspeed";
     131        min-josm-version: "7450"; /* because of user settings */
     132}
    51133meta[lang=de]
    52134{
    53135        title: "Höchstgeschwindigkeit";
    54         description: "Anzeige der Höchstgeschwindigkeiten in der JOSM-Kartenanzeige.";
    55         link: "http://josm.openstreetmap.de/wiki/De:Styles/Maxspeed";
    56 }
    57 
    58 /* disable tiger layer from default internal mappaint style */
     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 {
     145  type: boolean;
     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 */
    59151way["tiger:reviewed"=no]::core_tiger
    60152{
    61153        opacity: 0;
    62154}
    63 /* disable street names from default internal mappaint style */
     155
     156/* 2.3 - disable street names from default internal mappaint style */
    64157way[highway]
    65158{
     
    67160}
    68161
    69 /* display maxspeed=* */
    70 way["maxspeed"="none"]::maxspeed
    71 {
    72         set maxspeed;
    73         color: speed_none#b8b8b8;
    74 }
    75         /* km/h */
    76 way["maxspeed"="10"]::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
     203{
     204        set maxspeed;
     205        color: speed_none#febede;
     206}
     207way["maxspeed"="5"]::maxspeedlayer
     208{
     209        set maxspeed;
     210        color: speed_5#ff5656;
     211}
     212way["maxspeed"="10"]::maxspeedlayer,
     213way["maxspeed"="RS:living_street"][setting("implicit")]::maxspeedlayer
    77214{
    78215        set maxspeed;
    79216        color: speed_10#b80022;
    80217}
    81 way["maxspeed"="15"]::maxspeed
     218way["maxspeed"="15"]::maxspeedlayer
    82219{
    83220        set maxspeed;
    84221        color: speed_15#00da8b;
    85222}
    86 way["maxspeed"="20"]::maxspeed
     223way["maxspeed"="20"]::maxspeedlayer,
     224way["maxspeed"="BY:living_street"][setting("implicit")]::maxspeedlayer,
     225way["maxspeed"="RU:living_street"][setting("implicit")]::maxspeedlayer
    87226{
    88227        set maxspeed;
    89228        color: speed_20#e3cc82;
    90229}
    91 way["maxspeed"="30"]::maxspeed
     230way["maxspeed"="30"]::maxspeedlayer,
     231way["maxspeed"="FR:zone30"][setting("implicit")]::maxspeedlayer
    92232{
    93233        set maxspeed;
    94234        color: speed_30#4d4dff;
    95235}
    96 way["maxspeed"="40"]::maxspeed
     236way["maxspeed"="40"]::maxspeedlayer
    97237{
    98238        set maxspeed;
    99239        color: speed_40#4d4d00;
    100240}
    101 way["maxspeed"="45"]::maxspeed
     241way["maxspeed"="45"]::maxspeedlayer
    102242{
    103243        set maxspeed;
    104244        color: speed_45#ff529a;
    105245}
    106 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
    107250{
    108251        set maxspeed;
    109252        color: speed_50#07f807;
    110253}
    111 way["maxspeed"="60"]::maxspeed
     254way["maxspeed"="60"]::maxspeedlayer,
     255way["maxspeed"="BY:urban"][setting("implicit")]::maxspeedlayer,
     256way["maxspeed"="RU:urban"][setting("implicit")]::maxspeedlayer
    112257{
    113258        set maxspeed;
    114259        color: speed_60#9f9fff;
    115260}
    116 way["maxspeed"="70"]::maxspeed
     261way["maxspeed"="70"]::maxspeedlayer
    117262{
    118263        set maxspeed;
    119264        color: speed_70#ee8b00;
    120265}
    121 way["maxspeed"="80"]::maxspeed
     266way["maxspeed"="80"]::maxspeedlayer,
     267way["maxspeed"="FR:rural"][setting("implicit")]::maxspeedlayer,
     268way["maxspeed"="RS:rural"][setting("implicit")]::maxspeedlayer
    122269{
    123270        set maxspeed;
    124271        color: speed_80#f90808;
    125272}
    126 way["maxspeed"="90"]::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
    127277{
    128278        set maxspeed;
    129279        color: speed_90#07f8f8;
    130280}
    131 way["maxspeed"="100"]::maxspeed
     281way["maxspeed"="100"]::maxspeedlayer,
     282way["maxspeed"="RO:trunk"][setting("implicit")]::maxspeedlayer,
     283way["maxspeed"="RS:trunk"][setting("implicit")]::maxspeedlayer
    132284{
    133285        set maxspeed;
    134286        color: speed_100#f807f8;
    135287}
    136 way["maxspeed"="110"]::maxspeed
     288way["maxspeed"="110"]::maxspeedlayer,
     289way["maxspeed"="BY:motorway"][setting("implicit")]::maxspeedlayer,
     290way["maxspeed"="RU:motorway"][setting("implicit")]::maxspeedlayer
    137291{
    138292        set maxspeed;
    139293        color: speed_110#7807f8;
    140294}
    141 way["maxspeed"="120"]::maxspeed
    142 {
    143         set maxspeed;
    144         color: speed_120#ccad24;
    145 }
    146 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
    147304{
    148305        set maxspeed;
    149306        color: speed_130#c0f100;
    150307}
    151         /* mph */
    152 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
    153315{
    154316        set maxspeed;
    155317        color: speed_5_mph#b80022;
    156318}
    157 way["maxspeed"="10 mph"]::maxspeed
     319way["maxspeed"="10 mph"]::maxspeedlayer
    158320{
    159321        set maxspeed;
    160322        color: speed_10_mph#00da8b;
    161323}
    162 way["maxspeed"="15 mph"]::maxspeed
     324way["maxspeed"="15 mph"]::maxspeedlayer
    163325{
    164326        set maxspeed;
    165327        color: speed_15_mph#e3cc82;
    166328}
    167 way["maxspeed"="20 mph"]::maxspeed
     329way["maxspeed"="20 mph"]::maxspeedlayer
    168330{
    169331        set maxspeed;
    170332        color: speed_20_mph#4d4dff;
    171333}
    172 way["maxspeed"="25 mph"]::maxspeed
     334way["maxspeed"="25 mph"]::maxspeedlayer
    173335{
    174336        set maxspeed;
    175337        color: speed_25_mph#4d4d00;
    176338}
    177 way["maxspeed"="30 mph"]::maxspeed
     339way["maxspeed"="30 mph"]::maxspeedlayer
    178340{
    179341        set maxspeed;
    180342        color: speed_30_mph#ff529a;
    181343}
    182 way["maxspeed"="35 mph"]::maxspeed
     344way["maxspeed"="35 mph"]::maxspeedlayer
    183345{
    184346        set maxspeed;
    185347        color: speed_35_mph#07f807;
    186348}
    187 way["maxspeed"="40 mph"]::maxspeed
     349way["maxspeed"="40 mph"]::maxspeedlayer
    188350{
    189351        set maxspeed;
    190352        color: speed_40_mph#9f9fff;
    191353}
    192 way["maxspeed"="45 mph"]::maxspeed
     354way["maxspeed"="45 mph"]::maxspeedlayer
    193355{
    194356        set maxspeed;
    195357        color: speed_45_mph#ee8b00;
    196358}
    197 way["maxspeed"="50 mph"]::maxspeed
     359way["maxspeed"="50 mph"]::maxspeedlayer
    198360{
    199361        set maxspeed;
    200362        color: speed_50_mph#f90808;
    201363}
    202 way["maxspeed"="55 mph"]::maxspeed
     364way["maxspeed"="55 mph"]::maxspeedlayer
    203365{
    204366        set maxspeed;
    205367        color: speed_55_mph#07f8f8;
    206368}
    207 way["maxspeed"="60 mph"]::maxspeed
     369way["maxspeed"="60 mph"]::maxspeedlayer
    208370{
    209371        set maxspeed;
    210372        color: speed_60_mph#f807f8;
    211373}
    212 way["maxspeed"="65 mph"]::maxspeed
     374way["maxspeed"="65 mph"]::maxspeedlayer
    213375{
    214376        set maxspeed;
    215377        color: speed_65_mph#7807f8;
    216378}
    217 way["maxspeed"="70 mph"]::maxspeed
    218 {
    219         set maxspeed;
    220         color: speed_70_mph#ccad24;
    221 }
    222 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
    223385{
    224386        set maxspeed;
     
    226388}
    227389
    228 way.maxspeed::maxspeed
    229 {
    230         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{
    231535        width: 14;
    232536        z-index: -1;
    233537}
    234 way|z16.maxspeed::maxspeed
     538way|z16.maxspeed::maxspeedlayer
    235539{
    236540        width: 12;
    237541}
    238 way|z-15.maxspeed::maxspeed
     542way|z-15.maxspeed::maxspeedlayer
    239543{
    240544        width:10;
    241545}
    242 way.maxspeed[maxspeed:variable]::maxspeed
     546way.maxspeed[maxspeed:variable]::maxspeedlayer
    243547{
    244548        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 */
    245551}
    246552
    247553/*************************************/
    248554
    249 /* display maxspeed:forward=* for righthandtraffic */
    250 /* display maxspeed:backward=* for lefthandtraffic */
    251 
    252 way["maxspeed:forward"="none"]:righthandtraffic::maxspeed,
    253 way["maxspeed:backward"="none"]!:righthandtraffic::maxspeed
    254 {
    255         set maxspeed_right;
    256         right-casing-color: speed_none#b8b8b8;
    257 }
    258         /* km/h */
    259 way["maxspeed:forward"="10"]:righthandtraffic::maxspeed,
    260 way["maxspeed:backward"="10"]!: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
     559{
     560        set maxspeed_right;
     561        right-casing-color: speed_none#febede;
     562}
     563way["maxspeed:forward"="5"]:righthandtraffic::maxspeedcasinglayer,
     564way["maxspeed:backward"="5"]!:righthandtraffic::maxspeedcasinglayer
     565{
     566        set maxspeed_right;
     567        right-casing-color: speed_5#ff5656;
     568}
     569way["maxspeed:forward"="10"]:righthandtraffic::maxspeedcasinglayer,
     570way["maxspeed:backward"="10"]!:righthandtraffic::maxspeedcasinglayer,
     571way["maxspeed:forward"="RS:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    261572{
    262573        set maxspeed_right;
    263574        right-casing-color: speed_10#b80022;
    264575}
    265 way["maxspeed:forward"="15"]:righthandtraffic::maxspeed,
    266 way["maxspeed:backward"="15"]!:righthandtraffic::maxspeed
     576way["maxspeed:forward"="15"]:righthandtraffic::maxspeedcasinglayer,
     577way["maxspeed:backward"="15"]!:righthandtraffic::maxspeedcasinglayer
    267578{
    268579        set maxspeed_right;
    269580        right-casing-color: speed_15#00da8b;
    270581}
    271 way["maxspeed:forward"="20"]:righthandtraffic::maxspeed,
    272 way["maxspeed:backward"="20"]!:righthandtraffic::maxspeed
     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 */
    273587{
    274588        set maxspeed_right;
    275589        right-casing-color: speed_20#e3cc82;
    276590}
    277 way["maxspeed:forward"="30"]:righthandtraffic::maxspeed,
    278 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
    279594{
    280595        set maxspeed_right;
    281596        right-casing-color: speed_30#4d4dff;
    282597}
    283 way["maxspeed:forward"="40"]:righthandtraffic::maxspeed,
    284 way["maxspeed:backward"="40"]!:righthandtraffic::maxspeed
     598way["maxspeed:forward"="40"]:righthandtraffic::maxspeedcasinglayer,
     599way["maxspeed:backward"="40"]!:righthandtraffic::maxspeedcasinglayer
    285600{
    286601        set maxspeed_right;
    287602        right-casing-color: speed_40#4d4d00;
    288603}
    289 way["maxspeed:forward"="45"]:righthandtraffic::maxspeed,
    290 way["maxspeed:backward"="45"]!:righthandtraffic::maxspeed
     604way["maxspeed:forward"="45"]:righthandtraffic::maxspeedcasinglayer,
     605way["maxspeed:backward"="45"]!:righthandtraffic::maxspeedcasinglayer
    291606{
    292607        set maxspeed_right;
    293608        right-casing-color: speed_45#ff529a;
    294609}
    295 way["maxspeed:forward"="50"]:righthandtraffic::maxspeed,
    296 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
    297615{
    298616        set maxspeed_right;
    299617        right-casing-color: speed_50#07f807;
    300618}
    301 way["maxspeed:forward"="60"]:righthandtraffic::maxspeed,
    302 way["maxspeed:backward"="60"]!: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
    303623{
    304624        set maxspeed_right;
    305625        right-casing-color: speed_60#9f9fff;
    306626}
    307 way["maxspeed:forward"="70"]:righthandtraffic::maxspeed,
    308 way["maxspeed:backward"="70"]!:righthandtraffic::maxspeed
     627way["maxspeed:forward"="70"]:righthandtraffic::maxspeedcasinglayer,
     628way["maxspeed:backward"="70"]!:righthandtraffic::maxspeedcasinglayer
    309629{
    310630        set maxspeed_right;
    311631        right-casing-color: speed_70#ee8b00;
    312632}
    313 way["maxspeed:forward"="80"]:righthandtraffic::maxspeed,
    314 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
    315637{
    316638        set maxspeed_right;
    317639        right-casing-color: speed_80#f90808;
    318640}
    319 way["maxspeed:forward"="90"]:righthandtraffic::maxspeed,
    320 way["maxspeed:backward"="90"]!: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
    321646{
    322647        set maxspeed_right;
    323648        right-casing-color: speed_90#07f8f8;
    324649}
    325 way["maxspeed:forward"="100"]:righthandtraffic::maxspeed,
    326 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
    327654{
    328655        set maxspeed_right;
    329656        right-casing-color: speed_100#f807f8;
    330657}
    331 way["maxspeed:forward"="110"]:righthandtraffic::maxspeed,
    332 way["maxspeed:backward"="110"]!: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
    333662{
    334663        set maxspeed_right;
    335664        right-casing-color: speed_110#7807f8;
    336665}
    337 way["maxspeed:forward"="120"]:righthandtraffic::maxspeed,
    338 way["maxspeed:backward"="120"]!:righthandtraffic::maxspeed
    339 {
    340         set maxspeed_right;
    341         right-casing-color: speed_120#ccad24;
    342 }
    343 way["maxspeed:forward"="130"]:righthandtraffic::maxspeed,
    344 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
    345677{
    346678        set maxspeed_right;
    347679        right-casing-color: speed_130#c0f100;
    348680}
    349         /* mph */
    350 way["maxspeed:forward"="5 mph"]:righthandtraffic::maxspeed,
    351 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
    352690{
    353691        set maxspeed_right;
    354692        right-casing-color: speed_5_mph#b80022;
    355693}
    356 way["maxspeed:forward"="10 mph"]:righthandtraffic::maxspeed,
    357 way["maxspeed:backward"="10 mph"]!:righthandtraffic::maxspeed
     694way["maxspeed:forward"="10 mph"]:righthandtraffic::maxspeedcasinglayer,
     695way["maxspeed:backward"="10 mph"]!:righthandtraffic::maxspeedcasinglayer
    358696{
    359697        set maxspeed_right;
    360698        right-casing-color: speed_10_mph#00da8b;
    361699}
    362 way["maxspeed:forward"="15 mph"]:righthandtraffic::maxspeed,
    363 way["maxspeed:backward"="15 mph"]!:righthandtraffic::maxspeed
     700way["maxspeed:forward"="15 mph"]:righthandtraffic::maxspeedcasinglayer,
     701way["maxspeed:backward"="15 mph"]!:righthandtraffic::maxspeedcasinglayer
    364702{
    365703        set maxspeed_right;
    366704        right-casing-color: speed_15_mph#e3cc82;
    367705}
    368 way["maxspeed:forward"="20 mph"]:righthandtraffic::maxspeed,
    369 way["maxspeed:backward"="20 mph"]!:righthandtraffic::maxspeed
     706way["maxspeed:forward"="20 mph"]:righthandtraffic::maxspeedcasinglayer,
     707way["maxspeed:backward"="20 mph"]!:righthandtraffic::maxspeedcasinglayer
    370708{
    371709        set maxspeed_right;
    372710        right-casing-color: speed_20_mph#4d4dff;
    373711}
    374 way["maxspeed:forward"="25 mph"]:righthandtraffic::maxspeed,
    375 way["maxspeed:backward"="25 mph"]!:righthandtraffic::maxspeed
     712way["maxspeed:forward"="25 mph"]:righthandtraffic::maxspeedcasinglayer,
     713way["maxspeed:backward"="25 mph"]!:righthandtraffic::maxspeedcasinglayer
    376714{
    377715        set maxspeed_right;
    378716        right-casing-color: speed_25_mph#4d4d00;
    379717}
    380 way["maxspeed:forward"="30 mph"]:righthandtraffic::maxspeed,
    381 way["maxspeed:backward"="30 mph"]!:righthandtraffic::maxspeed
     718way["maxspeed:forward"="30 mph"]:righthandtraffic::maxspeedcasinglayer,
     719way["maxspeed:backward"="30 mph"]!:righthandtraffic::maxspeedcasinglayer
    382720{
    383721        set maxspeed_right;
    384722        right-casing-color: speed_30_mph#ff529a;
    385723}
    386 way["maxspeed:forward"="35 mph"]:righthandtraffic::maxspeed,
    387 way["maxspeed:backward"="35 mph"]!:righthandtraffic::maxspeed
     724way["maxspeed:forward"="35 mph"]:righthandtraffic::maxspeedcasinglayer,
     725way["maxspeed:backward"="35 mph"]!:righthandtraffic::maxspeedcasinglayer
    388726{
    389727        set maxspeed_right;
    390728        right-casing-color: speed_35_mph#07f807;
    391729}
    392 way["maxspeed:forward"="40 mph"]:righthandtraffic::maxspeed,
    393 way["maxspeed:backward"="40 mph"]!:righthandtraffic::maxspeed
     730way["maxspeed:forward"="40 mph"]:righthandtraffic::maxspeedcasinglayer,
     731way["maxspeed:backward"="40 mph"]!:righthandtraffic::maxspeedcasinglayer
    394732{
    395733        set maxspeed_right;
    396734        right-casing-color: speed_40_mph#9f9fff;
    397735}
    398 way["maxspeed:forward"="45 mph"]:righthandtraffic::maxspeed,
    399 way["maxspeed:backward"="45 mph"]!:righthandtraffic::maxspeed
     736way["maxspeed:forward"="45 mph"]:righthandtraffic::maxspeedcasinglayer,
     737way["maxspeed:backward"="45 mph"]!:righthandtraffic::maxspeedcasinglayer
    400738{
    401739        set maxspeed_right;
    402740        right-casing-color: speed_45_mph#ee8b00;
    403741}
    404 way["maxspeed:forward"="50 mph"]:righthandtraffic::maxspeed,
    405 way["maxspeed:backward"="50 mph"]!:righthandtraffic::maxspeed
     742way["maxspeed:forward"="50 mph"]:righthandtraffic::maxspeedcasinglayer,
     743way["maxspeed:backward"="50 mph"]!:righthandtraffic::maxspeedcasinglayer
    406744{
    407745        set maxspeed_right;
    408746        right-casing-color: speed_50_mph#f90808;
    409747}
    410 way["maxspeed:forward"="55 mph"]:righthandtraffic::maxspeed,
    411 way["maxspeed:backward"="55 mph"]!:righthandtraffic::maxspeed
     748way["maxspeed:forward"="55 mph"]:righthandtraffic::maxspeedcasinglayer,
     749way["maxspeed:backward"="55 mph"]!:righthandtraffic::maxspeedcasinglayer
    412750{
    413751        set maxspeed_right;
    414752        right-casing-color: speed_55_mph#07f8f8;
    415753}
    416 way["maxspeed:forward"="60 mph"]:righthandtraffic::maxspeed,
    417 way["maxspeed:backward"="60 mph"]!:righthandtraffic::maxspeed
     754way["maxspeed:forward"="60 mph"]:righthandtraffic::maxspeedcasinglayer,
     755way["maxspeed:backward"="60 mph"]!:righthandtraffic::maxspeedcasinglayer
    418756{
    419757        set maxspeed_right;
    420758        right-casing-color: speed_60_mph#f807f8;
    421759}
    422 way["maxspeed:forward"="65 mph"]:righthandtraffic::maxspeed,
    423 way["maxspeed:backward"="65 mph"]!:righthandtraffic::maxspeed
     760way["maxspeed:forward"="65 mph"]:righthandtraffic::maxspeedcasinglayer,
     761way["maxspeed:backward"="65 mph"]!:righthandtraffic::maxspeedcasinglayer
    424762{
    425763        set maxspeed_right;
    426764        right-casing-color: speed_65_mph#7807f8;
    427765}
    428 way["maxspeed:forward"="70 mph"]:righthandtraffic::maxspeed,
    429 way["maxspeed:backward"="70 mph"]!:righthandtraffic::maxspeed
    430 {
    431         set maxspeed_right;
    432         right-casing-color: speed_70_mph#ccad24;
    433 }
    434 way["maxspeed:forward"="75 mph"]:righthandtraffic::maxspeed,
    435 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
    436774{
    437775        set maxspeed_right;
     
    439777}
    440778
    441 way.maxspeed_right::maxspeed
    442 {
    443         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{
    444960        right-casing-width: 6;
    445961        right-casing-offset: 0;
    446 }
    447 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
    448967{
    449968        right-casing-width: 5;
    450969}
    451 way|z-15.maxspeed_right::maxspeed
     970way|z-15.maxspeed_right::maxspeedcasinglayer,
     971way|z-15.maxspeed_right_cond::maxspeedcasinglayer
    452972{
    453973        right-casing-width: 4;
    454974}
    455 way.maxspeed_right[maxspeed:variable:forward]:righthandtraffic::maxspeed,
    456 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
    457984{
    458985        right-casing-dashes: 34,6;
     
    461988/*************************************/
    462989
    463 /* display maxspeed:forward=* for lefthandtraffic */
    464 /* display maxspeed:backward=* for righthandtraffic */
    465 
    466 way["maxspeed:forward"="none"]!:righthandtraffic::maxspeed,
    467 way["maxspeed:backward"="none"]:righthandtraffic::maxspeed
    468 {
    469         set maxspeed_left;
    470         left-casing-color: speed_none#b8b8b8;
    471 }
    472         /* km/h */
    473 way["maxspeed:forward"="10"]!:righthandtraffic::maxspeed,
    474 way["maxspeed:backward"="10"]: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
     994{
     995        set maxspeed_left;
     996        left-casing-color: speed_none#febede;
     997}
     998way["maxspeed:forward"="5"]!:righthandtraffic::maxspeedcasinglayer,
     999way["maxspeed:backward"="5"]:righthandtraffic::maxspeedcasinglayer
     1000{
     1001        set maxspeed_left;
     1002        left-casing-color: speed_5#ff5656;
     1003}
     1004way["maxspeed:forward"="10"]!:righthandtraffic::maxspeedcasinglayer,
     1005way["maxspeed:backward"="10"]:righthandtraffic::maxspeedcasinglayer,
     1006way["maxspeed:backward"="RS:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
    4751007{
    4761008        set maxspeed_left;
    4771009        left-casing-color: speed_10#b80022;
    4781010}
    479 way["maxspeed:forward"="15"]!:righthandtraffic::maxspeed,
    480 way["maxspeed:backward"="15"]:righthandtraffic::maxspeed
     1011way["maxspeed:forward"="15"]!:righthandtraffic::maxspeedcasinglayer,
     1012way["maxspeed:backward"="15"]:righthandtraffic::maxspeedcasinglayer
    4811013{
    4821014        set maxspeed_left;
    4831015        left-casing-color: speed_15#00da8b;
    4841016}
    485 way["maxspeed:forward"="20"]!:righthandtraffic::maxspeed,
    486 way["maxspeed:backward"="20"]: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
    4871021{
    4881022        set maxspeed_left;
    4891023        left-casing-color: speed_20#e3cc82;
    4901024}
    491 way["maxspeed:forward"="30"]!:righthandtraffic::maxspeed,
    492 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
    4931028{
    4941029        set maxspeed_left;
    4951030        left-casing-color: speed_30#4d4dff;
    4961031}
    497 way["maxspeed:forward"="40"]!:righthandtraffic::maxspeed,
    498 way["maxspeed:backward"="40"]:righthandtraffic::maxspeed
     1032way["maxspeed:forward"="40"]!:righthandtraffic::maxspeedcasinglayer,
     1033way["maxspeed:backward"="40"]:righthandtraffic::maxspeedcasinglayer
    4991034{
    5001035        set maxspeed_left;
    5011036        left-casing-color: speed_40#4d4d00;
    5021037}
    503 way["maxspeed:forward"="45"]!:righthandtraffic::maxspeed,
    504 way["maxspeed:backward"="45"]:righthandtraffic::maxspeed
     1038way["maxspeed:forward"="45"]!:righthandtraffic::maxspeedcasinglayer,
     1039way["maxspeed:backward"="45"]:righthandtraffic::maxspeedcasinglayer
    5051040{
    5061041        set maxspeed_left;
    5071042        left-casing-color: speed_45#ff529a;
    5081043}
    509 way["maxspeed:forward"="50"]!:righthandtraffic::maxspeed,
    510 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
    5111049{
    5121050        set maxspeed_left;
    5131051        left-casing-color: speed_50#07f807;
    5141052}
    515 way["maxspeed:forward"="60"]!:righthandtraffic::maxspeed,
    516 way["maxspeed:backward"="60"]: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
    5171057{
    5181058        set maxspeed_left;
    5191059        left-casing-color: speed_60#9f9fff;
    5201060}
    521 way["maxspeed:forward"="70"]!:righthandtraffic::maxspeed,
    522 way["maxspeed:backward"="70"]:righthandtraffic::maxspeed
     1061way["maxspeed:forward"="70"]!:righthandtraffic::maxspeedcasinglayer,
     1062way["maxspeed:backward"="70"]:righthandtraffic::maxspeedcasinglayer
    5231063{
    5241064        set maxspeed_left;
    5251065        left-casing-color: speed_70#ee8b00;
    5261066}
    527 way["maxspeed:forward"="80"]!:righthandtraffic::maxspeed,
    528 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
    5291071{
    5301072        set maxspeed_left;
    5311073        left-casing-color: speed_80#f90808;
    5321074}
    533 way["maxspeed:forward"="90"]!:righthandtraffic::maxspeed,
    534 way["maxspeed:backward"="90"]: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
    5351080{
    5361081        set maxspeed_left;
    5371082        left-casing-color: speed_90#07f8f8;
    5381083}
    539 way["maxspeed:forward"="100"]!:righthandtraffic::maxspeed,
    540 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
    5411088{
    5421089        set maxspeed_left;
    5431090        left-casing-color: speed_100#f807f8;
    5441091}
    545 way["maxspeed:forward"="110"]!:righthandtraffic::maxspeed,
    546 way["maxspeed:backward"="110"]: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
    5471096{
    5481097        set maxspeed_left;
    5491098        left-casing-color: speed_110#7807f8;
    5501099}
    551 way["maxspeed:forward"="120"]!:righthandtraffic::maxspeed,
    552 way["maxspeed:backward"="120"]:righthandtraffic::maxspeed
    553 {
    554         set maxspeed_left;
    555         left-casing-color: speed_120#ccad24;
    556 }
    557 way["maxspeed:forward"="130"]!:righthandtraffic::maxspeed,
    558 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
    5591111{
    5601112        set maxspeed_left;
    5611113        left-casing-color: speed_130#c0f100;
    5621114}
    563         /* mph */
    564 way["maxspeed:forward"="5 mph"]!:righthandtraffic::maxspeed,
    565 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
    5661124{
    5671125        set maxspeed_left;
    5681126        left-casing-color: speed_5_mph#b80022;
    5691127}
    570 way["maxspeed:forward"="10 mph"]!:righthandtraffic::maxspeed,
    571 way["maxspeed:backward"="10 mph"]:righthandtraffic::maxspeed
     1128way["maxspeed:forward"="10 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1129way["maxspeed:backward"="10 mph"]:righthandtraffic::maxspeedcasinglayer
    5721130{
    5731131        set maxspeed_left;
    5741132        left-casing-color: speed_10_mph#00da8b;
    5751133}
    576 way["maxspeed:forward"="15 mph"]!:righthandtraffic::maxspeed,
    577 way["maxspeed:backward"="15 mph"]:righthandtraffic::maxspeed
     1134way["maxspeed:forward"="15 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1135way["maxspeed:backward"="15 mph"]:righthandtraffic::maxspeedcasinglayer
    5781136{
    5791137        set maxspeed_left;
    5801138        left-casing-color: speed_15_mph#e3cc82;
    5811139}
    582 way["maxspeed:forward"="20 mph"]!:righthandtraffic::maxspeed,
    583 way["maxspeed:backward"="20 mph"]:righthandtraffic::maxspeed
     1140way["maxspeed:forward"="20 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1141way["maxspeed:backward"="20 mph"]:righthandtraffic::maxspeedcasinglayer
    5841142{
    5851143        set maxspeed_left;
    5861144        left-casing-color: speed_20_mph#4d4dff;
    5871145}
    588 way["maxspeed:forward"="25 mph"]!:righthandtraffic::maxspeed,
    589 way["maxspeed:backward"="25 mph"]:righthandtraffic::maxspeed
     1146way["maxspeed:forward"="25 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1147way["maxspeed:backward"="25 mph"]:righthandtraffic::maxspeedcasinglayer
    5901148{
    5911149        set maxspeed_left;
    5921150        left-casing-color: speed_25_mph#4d4d00;
    5931151}
    594 way["maxspeed:forward"="30 mph"]!:righthandtraffic::maxspeed,
    595 way["maxspeed:backward"="30 mph"]:righthandtraffic::maxspeed
     1152way["maxspeed:forward"="30 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1153way["maxspeed:backward"="30 mph"]:righthandtraffic::maxspeedcasinglayer
    5961154{
    5971155        set maxspeed_left;
    5981156        left-casing-color: speed_30_mph#ff529a;
    5991157}
    600 way["maxspeed:forward"="35 mph"]!:righthandtraffic::maxspeed,
    601 way["maxspeed:backward"="35 mph"]:righthandtraffic::maxspeed
     1158way["maxspeed:forward"="35 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1159way["maxspeed:backward"="35 mph"]:righthandtraffic::maxspeedcasinglayer
    6021160{
    6031161        set maxspeed_left;
    6041162        left-casing-color: speed_35_mph#07f807;
    6051163}
    606 way["maxspeed:forward"="40 mph"]!:righthandtraffic::maxspeed,
    607 way["maxspeed:backward"="40 mph"]:righthandtraffic::maxspeed
     1164way["maxspeed:forward"="40 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1165way["maxspeed:backward"="40 mph"]:righthandtraffic::maxspeedcasinglayer
    6081166{
    6091167        set maxspeed_left;
    6101168        left-casing-color: speed_40_mph#9f9fff;
    6111169}
    612 way["maxspeed:forward"="45 mph"]!:righthandtraffic::maxspeed,
    613 way["maxspeed:backward"="45 mph"]:righthandtraffic::maxspeed
     1170way["maxspeed:forward"="45 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1171way["maxspeed:backward"="45 mph"]:righthandtraffic::maxspeedcasinglayer
    6141172{
    6151173        set maxspeed_left;
    6161174        left-casing-color: speed_45_mph#ee8b00;
    6171175}
    618 way["maxspeed:forward"="50 mph"]!:righthandtraffic::maxspeed,
    619 way["maxspeed:backward"="50 mph"]:righthandtraffic::maxspeed
     1176way["maxspeed:forward"="50 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1177way["maxspeed:backward"="50 mph"]:righthandtraffic::maxspeedcasinglayer
    6201178{
    6211179        set maxspeed_left;
    6221180        left-casing-color: speed_50_mph#f90808;
    6231181}
    624 way["maxspeed:forward"="55 mph"]!:righthandtraffic::maxspeed,
    625 way["maxspeed:backward"="55 mph"]:righthandtraffic::maxspeed
     1182way["maxspeed:forward"="55 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1183way["maxspeed:backward"="55 mph"]:righthandtraffic::maxspeedcasinglayer
    6261184{
    6271185        set maxspeed_left;
    6281186        left-casing-color: speed_55_mph#07f8f8;
    6291187}
    630 way["maxspeed:forward"="60 mph"]!:righthandtraffic::maxspeed,
    631 way["maxspeed:backward"="60 mph"]:righthandtraffic::maxspeed
     1188way["maxspeed:forward"="60 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1189way["maxspeed:backward"="60 mph"]:righthandtraffic::maxspeedcasinglayer
    6321190{
    6331191        set maxspeed_left;
    6341192        left-casing-color: speed_60_mph#f807f8;
    6351193}
    636 way["maxspeed:forward"="65 mph"]!:righthandtraffic::maxspeed,
    637 way["maxspeed:backward"="65 mph"]:righthandtraffic::maxspeed
     1194way["maxspeed:forward"="65 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1195way["maxspeed:backward"="65 mph"]:righthandtraffic::maxspeedcasinglayer
    6381196{
    6391197        set maxspeed_left;
    6401198        left-casing-color: speed_65_mph#7807f8;
    6411199}
    642 way["maxspeed:forward"="70 mph"]!:righthandtraffic::maxspeed,
    643 way["maxspeed:backward"="70 mph"]:righthandtraffic::maxspeed
    644 {
    645         set maxspeed_left;
    646         left-casing-color: speed_70_mph#ccad24;
    647 }
    648 way["maxspeed:forward"="75 mph"]!:righthandtraffic::maxspeed,
    649 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
    6501208{
    6511209        set maxspeed_left;
     
    6531211}
    6541212
    655 way.maxspeed_left::maxspeed
    656 {
    657         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{
    6581394        left-casing-width: 6;
    6591395        left-casing-offset: 0;
    660 }
    661 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
    6621401{
    6631402        left-casing-width: 5;
    6641403}
    665 way|z-15.maxspeed_left::maxspeed
     1404way|z-15.maxspeed_left::maxspeedcasinglayer,
     1405way|z-15.maxspeed_left_cond::maxspeedcasinglayer
    6661406{
    6671407        left-casing-width: 4;
    6681408}
    669 way.maxspeed_left[maxspeed:variable:forward]!:righthandtraffic::maxspeed,
    670 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
    6711418{
    6721419        left-casing-dashes: 34,6;
     
    6741421
    6751422/*************************************/
    676 /*************************************/
    677 /*************************************/
    678 
    679 /* report wrong value of maxspeed */
    680 way[maxspeed=~/^[0-9]+$/]::maxspeed,
    681 way[maxspeed=signals]::maxspeed,
    682 way[maxspeed=none]::maxspeed,
    683 way[maxspeed=~/^[0-9]+ mph/]::maxspeed,
    684 way[maxspeed=~/[0-9]+ km\/h/]::maxspeed,
    685 way[maxspeed=~/[0-9]+ knots/]::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
    6861436{
    6871437        set correct_value;
    6881438}
    689 way[maxspeed:forward=~/^[0-9]+$/]::maxspeed,
    690 way[maxspeed:forward=signals]::maxspeed,
    691 way[maxspeed:forward=none]::maxspeed,
    692 way[maxspeed:forward=~/^[0-9]+ mph/]::maxspeed,
    693 way[maxspeed:forward=~/[0-9]+ km\/h/]::maxspeed,
    694 way[maxspeed:forward=~/[0-9]+ knots/]::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
    6951449{
    6961450        set correct_value_forward;
    6971451}
    698 way[maxspeed:backward=~/^[0-9]+$/]::maxspeed,
    699 way[maxspeed:backward=signals]::maxspeed,
    700 way[maxspeed:backward=none]::maxspeed,
    701 way[maxspeed:backward=~/^[0-9]+ mph/]::maxspeed,
    702 way[maxspeed:backward=~/[0-9]+ km\/h/]::maxspeed,
    703 way[maxspeed:backward=~/[0-9]+ knots/]::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
    7041462{
    7051463        set correct_value_backward;
    7061464}
    7071465
    708 way["maxspeed"]!.correct_value::maxspeed,
    709 way["maxspeed:forward"]!.correct_value_forward::maxspeed,
    710 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
    7111469{
    7121470        color: yellow;
     
    7241482}
    7251483
    726 /* report if maxspeed direction is opposed to oneway direction */
    727 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 */
    7281540way["maxspeed:forward"][oneway=-1]
    7291541{