Changes between Version 9 and Version 52 of Styles/Maxspeed


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

Legend:

Unmodified
Added
Removed
Modified
  • Styles/Maxspeed

    v9 v52  
    11[[TranslatedPages]]
    2 = [[Image(maxspeed_icon.png)]] Maxspeed style =
    3 [[PageOutline]]
     2= [[Image(maxspeed_icon.svg,36,middle,inline)]] Maxspeed style =
     3[[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:Key:maxspeed:conditional|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* [[osmwiki:Key:maxspeed:advisory|maxspeed:advisory]]
     16* maxspeed:advisory:forward
     17* maxspeed:advisory:backward
     18
     19This style was mainly developed for streets but can be used on railways too.
     20
     21[[left-right-hand-traffic|Left-hand and right-hand traffic]] are always taken into account. Example:
    622
    723[[Image(maxspeed_example.png)]]
    824
    9 You can change the colors in the preferences of JOSM. The default colors are shown below.
     25You can change the colors in the preferences of JOSM. The default colors and some examples are shown below.
    1026
    1127[[Image(maxspeed_legend.png)]]
    1228
     29On high zoom the maxspeed values are displayed as text. This can be disabled in the [wiki:Help/Dialog/MapPaint/StyleSettings style settings] of this mappaint style.
     30
     31How the different keys are supported by this style:
     32
     33||= key =||= color =||= text =||= text abbreviation =||= validation =||
     34||`maxspeed`  || yes || yes ||  || yes ||
     35||`maxspeed:forward`  || yes || yes || fw || yes ||
     36||`maxspeed:backward`  || yes || yes || bw || yes ||
     37||`maxspeed:conditional`  || yes (dashed pattern) || yes || c (value before `@` only) || yes ||
     38||`maxspeed:forward:conditional`  || yes (dashed pattern) || yes || fwc (value before `@` only) || yes ||
     39||`maxspeed:backward:conditional`  || yes (dashed pattern) || yes || bwc (value before `@` only) || yes ||
     40||`maxspeed:variable`  || yes (different dashed pattern) || yes (all values except `no`) || v (without the actual value) || no ||
     41||`maxspeed:variable:forward`  || yes (different dashed pattern) || yes (all values except `no`) || vfw (without the actual value) || no ||
     42||`maxspeed:variable:backward`  || yes (different dashed pattern) || yes (all values except `no`) || vbw (without the actual value) || no ||
     43||`maxspeed:advisory`  || no || yes || a || yes ||
     44||`maxspeed:advisory:forward`  || no || yes || afw || yes ||
     45||`maxspeed:advisory:backward`  || no || yes || abw || yes ||
     46
     47
     48[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.
     49
    1350For ideas/questions/bugs/suggestions or similar please write a message to [osmwww:user/Klumbumbus Klumbumbus].
    1451
    1552Feel free to translate this wiki page into more languages. Already translated languages see top right.
    1653
     54[attachment:Testcenter.osm Testcenter] for quality assurance of this style.
     55
     56Known problems:
     57* When using `forward`/`backward` values in combination with `conditional` values or `variable`, the dashes on the left and right of the road can sometimes be asynchronous, see JOSM bug #11994.
     58
     59
    1760== Changelog ==
    18 === Version 1.5 to 2.0.xx ===
    19 
     61=== Version 3.1 ===
     62* Unify indentation (4 spaces instead of tabulator), no code change
     63=== Version 3.0 ===
     64* Add display of all supported `maxspeed` values as text on high zoom (partly shortened and with abbreviation, see table above); can be disabled by style setting
     65* Rework error display code to make it compatible with `maxspeed` values display
     66* Add and improve some corner cases of the error display
     67* Add support of `maxspeed:advisory` (by user request); only by text display as a 3rd color (beside `maxspeed` and `maxspeed:conditional`) combined with `forward`/`backward` and `variable` would be too confusing
     68* Add error display for wrong `maxspeed:advisory` values
     69=== Version 2.9 ===
     70* Add color for `80 mph` (same as `140`) and `85 mph` (new color) by user request (used in USA)
     71* Make color of `30` and `45 mph` a little brighter to better distinguish from `100` and `60` mph
     72=== Version 2.8 ===
     73* 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
     74* 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)
     75=== Version 2.7 ===
     76* Add support of `maxspeed=*` + `maxspeed:direction:conditional=*` (without `maxspeed:direction=*`), fixes bug in version 2.5
     77* Better display of error messages
     78* Remove opacity because of different reasons
     79* Adjust color for `120`
     80* 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
     81* Support combinations of `conditional` and `variable` `maxspeed`
     82* Add `140`
     83=== Version 2.5 ===
     84* Add support of `maxspeed:conditional`, `maxspeed:forward:conditional` and `maxspeed:backward:conditional`
     85* Add error message for wrong value of `conditional` `maxspeed`
     86* Add error message for `conditional` `maxspeed` without default `maxspeed`
     87* Add in file table of contents and numbered headings for better understandability of the code structure
     88=== Version 2.1 ===
     89* 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.
     90* Add style for `maxspeed=5`
     91* Change color of `maxspeed=none` for better visibility on aerial imagery
     92=== Version 2.0 ===
    2093* change from xml to mapcss
    21 * support of maxspeed:forward and maxspeed:backward (considering left and right hand traffic)
    22 * support of maxspeed:variable, maxspeed:variable:forward and maxspeed:variable:backward (dashed line)
    23 * highlight color is now below the highway line, to see the highway type (residential, secondary, motorway,...)
    24 * removed support of values without space between number and unit (e.g. ''35mph'')
    25 * added error message for wrong maxspeed values (like ''35mph'' or ''35 m/h'')
    26 * 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]
    28  * added ''20'', ''45'', ''none''
    29  * removed unused values like ''32.19''
     94* support of `maxspeed:forward` and `maxspeed:backward` (considering left and right hand traffic)
     95* support of `maxspeed:variable`, `maxspeed:variable:forward` and `maxspeed:variable:backward` (dashed line)
     96* highlight color is now below the highway line, to see the highway type (`residential`, `secondary`, `motorway`,...)
     97* removed support of values without space between number and unit (e.g. `35mph`)
     98* added error message for wrong `maxspeed` values (like `35mph` or `35 m/h`)
     99* added error message if `maxspeed` direction is opposed to `oneway` direction
     100* adjusted to most used values according to [https://taginfo.openstreetmap.org/keys/maxspeed#values taginfo]
     101 * added `20`, `45`, `none`
     102 * removed unused values like `32.19`
    30103* adjusted opacities, widths and some colors for better display and distinction between the colors
    31104* widths depends on zoom level
    32 
     105=== Version 1.5 ===
     106* Start version
    33107
    34108== Code ==
     
    37111#!style type="mapcss"
    38112
     113/*
     114
     115table of contents
     116
     1171 - meta data
     1182 - general settings
     119 2.1 - create user settings
     120 2.2 - disable tiger layer from default internal mappaint style
     121 2.3 - disable street names from default internal mappaint style
     122 2.4 - read conditional maxspeed values
     1233 - display maxspeed=*
     124 3.1 - kmh
     125 3.2 - mph
     126 3.3 - conditional maxspeed
     127 3.3.1 - kmh
     128 3.3.2 - mph
     129 3.4 - general rules
     1304 - display maxspeed:forward=* for righthandtraffic and maxspeed:backward=* for lefthandtraffic
     131 4.1 - kmh
     132 4.2 - mph
     133 4.3 - conditional righthand-forward and lefthand-backward maxspeed
     134 4.3.1 - kmh
     135 4.3.2 - mph
     136 4.4 - general rules
     1375 - display maxspeed:forward=* for lefthandtraffic and maxspeed:backward=* for righthandtraffic
     138 5.1 - kmh
     139 5.2 - mph
     140 5.3 - conditional lefthand-forward and righthand-backward maxspeed
     141 5.3.1 - kmh
     142 5.3.2 - mph
     143 5.4 - general rules
     1446 - display maxspeed values as text
     1457 - error reporting
     146 7.1 - report wrong value of maxspeed
     147 7.2 - report wrong value of maxspeed:conditional
     148 7.3 - report conditional maxspeed without default maxspeed
     149 7.4 - report wrong value of maxspeed:advisory
     150 7.5 - report if maxspeed direction is opposed to oneway direction
     151 
     152*/
     153
     154/*************************************/
     155
     156/* 1 - meta data */
    39157meta
    40158{
    41         title: "Maxspeed";
    42         version: "2.0.[[revision]]_[[date]]";
    43         description: "Display maxspeed values in JOSM map display.";
    44         icon: "http://josm.openstreetmap.de/raw-attachment/wiki/Styles/Maxspeed/maxspeed_icon.png";
    45         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 
     159    title: "Maxspeed";
     160    version: "3.1.[[revision]]_[[date]]";
     161    description: "Display maxspeed values of ways in the map view.";
     162    icon: "maxspeed_icon.svg";
     163    author: "Rubke, Dirk Stöcker, Vclaw, Klumbumbus";
     164    link: "https://josm.openstreetmap.de/wiki/Styles/Maxspeed";
     165    min-josm-version: "7450"; /* because of user settings */
     166}
    51167meta[lang=de]
    52168{
    53         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 */
     169    title: "Höchstgeschwindigkeit";
     170    description: "Anzeige der Höchstgeschwindigkeiten von Linien in der Kartenanzeige.";
     171    link: "https://josm.openstreetmap.de/wiki/De:Styles/Maxspeed";
     172}
     173
     174/*************************************/
     175
     176/* 2 - general settings */
     177/* 2.1 - create user settings */
     178setting::implicit {
     179    type: boolean;
     180    label: tr("Support implicit maxspeed values, e.g. RO:urban (only in BY, FR, RO, RU, RS)");
     181    default: false;
     182}
     183setting::textdisplay {
     184    type: boolean;
     185    label: tr("Display maxspeed values as text");
     186    default: true;
     187}
     188
     189/* 2.2 - disable tiger layer from default internal mappaint style */
    59190way["tiger:reviewed"=no]::core_tiger
    60191{
    61         opacity: 0;
    62 }
    63 /* disable street names from default internal mappaint style */
     192    opacity: 0;
     193}
     194
     195/* 2.3 - disable street names from default internal mappaint style */
    64196way[highway]
    65197{
    66         text: none;
    67 }
    68 
    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
    77 {
    78         set maxspeed;
    79         color: speed_10#b80022;
    80 }
    81 way["maxspeed"="15"]::maxspeed
    82 {
    83         set maxspeed;
    84         color: speed_15#00da8b;
    85 }
    86 way["maxspeed"="20"]::maxspeed
    87 {
    88         set maxspeed;
    89         color: speed_20#e3cc82;
    90 }
    91 way["maxspeed"="30"]::maxspeed
    92 {
    93         set maxspeed;
    94         color: speed_30#4d4dff;
    95 }
    96 way["maxspeed"="40"]::maxspeed
    97 {
    98         set maxspeed;
    99         color: speed_40#4d4d00;
    100 }
    101 way["maxspeed"="45"]::maxspeed
    102 {
    103         set maxspeed;
    104         color: speed_45#ff529a;
    105 }
    106 way["maxspeed"="50"]::maxspeed
    107 {
    108         set maxspeed;
    109         color: speed_50#07f807;
    110 }
    111 way["maxspeed"="60"]::maxspeed
    112 {
    113         set maxspeed;
    114         color: speed_60#9f9fff;
    115 }
    116 way["maxspeed"="70"]::maxspeed
    117 {
    118         set maxspeed;
    119         color: speed_70#ee8b00;
    120 }
    121 way["maxspeed"="80"]::maxspeed
    122 {
    123         set maxspeed;
    124         color: speed_80#f90808;
    125 }
    126 way["maxspeed"="90"]::maxspeed
    127 {
    128         set maxspeed;
    129         color: speed_90#07f8f8;
    130 }
    131 way["maxspeed"="100"]::maxspeed
    132 {
    133         set maxspeed;
    134         color: speed_100#f807f8;
    135 }
    136 way["maxspeed"="110"]::maxspeed
    137 {
    138         set maxspeed;
    139         color: speed_110#7807f8;
    140 }
    141 way["maxspeed"="120"]::maxspeed
    142 {
    143         set maxspeed;
    144         color: speed_120#ccad24;
    145 }
    146 way["maxspeed"="130"]::maxspeed
    147 {
    148         set maxspeed;
    149         color: speed_130#c0f100;
    150 }
    151         /* mph */
    152 way["maxspeed"="5 mph"]::maxspeed
    153 {
    154         set maxspeed;
    155         color: speed_5_mph#b80022;
    156 }
    157 way["maxspeed"="10 mph"]::maxspeed
    158 {
    159         set maxspeed;
    160         color: speed_10_mph#00da8b;
    161 }
    162 way["maxspeed"="15 mph"]::maxspeed
    163 {
    164         set maxspeed;
    165         color: speed_15_mph#e3cc82;
    166 }
    167 way["maxspeed"="20 mph"]::maxspeed
    168 {
    169         set maxspeed;
    170         color: speed_20_mph#4d4dff;
    171 }
    172 way["maxspeed"="25 mph"]::maxspeed
    173 {
    174         set maxspeed;
    175         color: speed_25_mph#4d4d00;
    176 }
    177 way["maxspeed"="30 mph"]::maxspeed
    178 {
    179         set maxspeed;
    180         color: speed_30_mph#ff529a;
    181 }
    182 way["maxspeed"="35 mph"]::maxspeed
    183 {
    184         set maxspeed;
    185         color: speed_35_mph#07f807;
    186 }
    187 way["maxspeed"="40 mph"]::maxspeed
    188 {
    189         set maxspeed;
    190         color: speed_40_mph#9f9fff;
    191 }
    192 way["maxspeed"="45 mph"]::maxspeed
    193 {
    194         set maxspeed;
    195         color: speed_45_mph#ee8b00;
    196 }
    197 way["maxspeed"="50 mph"]::maxspeed
    198 {
    199         set maxspeed;
    200         color: speed_50_mph#f90808;
    201 }
    202 way["maxspeed"="55 mph"]::maxspeed
    203 {
    204         set maxspeed;
    205         color: speed_55_mph#07f8f8;
    206 }
    207 way["maxspeed"="60 mph"]::maxspeed
    208 {
    209         set maxspeed;
    210         color: speed_60_mph#f807f8;
    211 }
    212 way["maxspeed"="65 mph"]::maxspeed
    213 {
    214         set maxspeed;
    215         color: speed_65_mph#7807f8;
    216 }
    217 way["maxspeed"="70 mph"]::maxspeed
    218 {
    219         set maxspeed;
    220         color: speed_70_mph#ccad24;
    221 }
    222 way["maxspeed"="75 mph"]::maxspeed
    223 {
    224         set maxspeed;
    225         color: speed_75_mph#c0f100;
    226 }
    227 
    228 way.maxspeed::maxspeed
    229 {
    230         opacity: 0.75;
    231         width: 14;
    232         z-index: -1;
    233 }
    234 way|z16.maxspeed::maxspeed
    235 {
    236         width: 12;
    237 }
    238 way|z-15.maxspeed::maxspeed
    239 {
    240         width:10;
    241 }
    242 way.maxspeed[maxspeed:variable]::maxspeed
    243 {
    244         dashes: 34,6;
     198    text: none;
     199}
     200
     201/* 2.4 - read conditional maxspeed values */
     202way["maxspeed:conditional"=~/^(none|[1-9][0-9]*) @ /]::maxspeedlayer
     203{
     204    maxsp_cond: get(split(" ", tag("maxspeed:conditional")), 0);
     205    set cond_kmh;
     206}
     207way["maxspeed:forward:conditional"=~/^(none|[1-9][0-9]*) @ /]::maxspeedcasinglayer
     208{
     209    maxsp_forward_cond: get(split(" ", tag("maxspeed:forward:conditional")), 0);
     210    set cond_forward_kmh;
     211}
     212way["maxspeed:backward:conditional"=~/^(none|[1-9][0-9]*) @ /]::maxspeedcasinglayer
     213{
     214    maxsp_backward_cond: get(split(" ", tag("maxspeed:backward:conditional")), 0);
     215    set cond_backward_kmh;
     216}
     217way["maxspeed:conditional"=~/^[1-9][0-9]* mph @ /]::maxspeedlayer
     218{
     219    maxsp_cond: get(split(" ", tag("maxspeed:conditional")), 0);
     220    set cond_mph;
     221}
     222way["maxspeed:forward:conditional"=~/^[1-9][0-9]* mph @ /]::maxspeedcasinglayer
     223{
     224    maxsp_forward_cond: get(split(" ", tag("maxspeed:forward:conditional")), 0);
     225    set cond_forward_mph;
     226}
     227way["maxspeed:backward:conditional"=~/^[1-9][0-9]* mph @ /]::maxspeedcasinglayer
     228{
     229    maxsp_backward_cond: get(split(" ", tag("maxspeed:backward:conditional")), 0);
     230    set cond_backward_mph;
    245231}
    246232
    247233/*************************************/
    248234
    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
    261 {
    262         set maxspeed_right;
    263         right-casing-color: speed_10#b80022;
    264 }
    265 way["maxspeed:forward"="15"]:righthandtraffic::maxspeed,
    266 way["maxspeed:backward"="15"]!:righthandtraffic::maxspeed
    267 {
    268         set maxspeed_right;
    269         right-casing-color: speed_15#00da8b;
    270 }
    271 way["maxspeed:forward"="20"]:righthandtraffic::maxspeed,
    272 way["maxspeed:backward"="20"]!:righthandtraffic::maxspeed
    273 {
    274         set maxspeed_right;
    275         right-casing-color: speed_20#e3cc82;
    276 }
    277 way["maxspeed:forward"="30"]:righthandtraffic::maxspeed,
    278 way["maxspeed:backward"="30"]!:righthandtraffic::maxspeed
    279 {
    280         set maxspeed_right;
    281         right-casing-color: speed_30#4d4dff;
    282 }
    283 way["maxspeed:forward"="40"]:righthandtraffic::maxspeed,
    284 way["maxspeed:backward"="40"]!:righthandtraffic::maxspeed
    285 {
    286         set maxspeed_right;
    287         right-casing-color: speed_40#4d4d00;
    288 }
    289 way["maxspeed:forward"="45"]:righthandtraffic::maxspeed,
    290 way["maxspeed:backward"="45"]!:righthandtraffic::maxspeed
    291 {
    292         set maxspeed_right;
    293         right-casing-color: speed_45#ff529a;
    294 }
    295 way["maxspeed:forward"="50"]:righthandtraffic::maxspeed,
    296 way["maxspeed:backward"="50"]!:righthandtraffic::maxspeed
    297 {
    298         set maxspeed_right;
    299         right-casing-color: speed_50#07f807;
    300 }
    301 way["maxspeed:forward"="60"]:righthandtraffic::maxspeed,
    302 way["maxspeed:backward"="60"]!:righthandtraffic::maxspeed
    303 {
    304         set maxspeed_right;
    305         right-casing-color: speed_60#9f9fff;
    306 }
    307 way["maxspeed:forward"="70"]:righthandtraffic::maxspeed,
    308 way["maxspeed:backward"="70"]!:righthandtraffic::maxspeed
    309 {
    310         set maxspeed_right;
    311         right-casing-color: speed_70#ee8b00;
    312 }
    313 way["maxspeed:forward"="80"]:righthandtraffic::maxspeed,
    314 way["maxspeed:backward"="80"]!:righthandtraffic::maxspeed
    315 {
    316         set maxspeed_right;
    317         right-casing-color: speed_80#f90808;
    318 }
    319 way["maxspeed:forward"="90"]:righthandtraffic::maxspeed,
    320 way["maxspeed:backward"="90"]!:righthandtraffic::maxspeed
    321 {
    322         set maxspeed_right;
    323         right-casing-color: speed_90#07f8f8;
    324 }
    325 way["maxspeed:forward"="100"]:righthandtraffic::maxspeed,
    326 way["maxspeed:backward"="100"]!:righthandtraffic::maxspeed
    327 {
    328         set maxspeed_right;
    329         right-casing-color: speed_100#f807f8;
    330 }
    331 way["maxspeed:forward"="110"]:righthandtraffic::maxspeed,
    332 way["maxspeed:backward"="110"]!:righthandtraffic::maxspeed
    333 {
    334         set maxspeed_right;
    335         right-casing-color: speed_110#7807f8;
    336 }
    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
    345 {
    346         set maxspeed_right;
    347         right-casing-color: speed_130#c0f100;
    348 }
    349         /* mph */
    350 way["maxspeed:forward"="5 mph"]:righthandtraffic::maxspeed,
    351 way["maxspeed:backward"="5 mph"]!:righthandtraffic::maxspeed
    352 {
    353         set maxspeed_right;
    354         right-casing-color: speed_5_mph#b80022;
    355 }
    356 way["maxspeed:forward"="10 mph"]:righthandtraffic::maxspeed,
    357 way["maxspeed:backward"="10 mph"]!:righthandtraffic::maxspeed
    358 {
    359         set maxspeed_right;
    360         right-casing-color: speed_10_mph#00da8b;
    361 }
    362 way["maxspeed:forward"="15 mph"]:righthandtraffic::maxspeed,
    363 way["maxspeed:backward"="15 mph"]!:righthandtraffic::maxspeed
    364 {
    365         set maxspeed_right;
    366         right-casing-color: speed_15_mph#e3cc82;
    367 }
    368 way["maxspeed:forward"="20 mph"]:righthandtraffic::maxspeed,
    369 way["maxspeed:backward"="20 mph"]!:righthandtraffic::maxspeed
    370 {
    371         set maxspeed_right;
    372         right-casing-color: speed_20_mph#4d4dff;
    373 }
    374 way["maxspeed:forward"="25 mph"]:righthandtraffic::maxspeed,
    375 way["maxspeed:backward"="25 mph"]!:righthandtraffic::maxspeed
    376 {
    377         set maxspeed_right;
    378         right-casing-color: speed_25_mph#4d4d00;
    379 }
    380 way["maxspeed:forward"="30 mph"]:righthandtraffic::maxspeed,
    381 way["maxspeed:backward"="30 mph"]!:righthandtraffic::maxspeed
    382 {
    383         set maxspeed_right;
    384         right-casing-color: speed_30_mph#ff529a;
    385 }
    386 way["maxspeed:forward"="35 mph"]:righthandtraffic::maxspeed,
    387 way["maxspeed:backward"="35 mph"]!:righthandtraffic::maxspeed
    388 {
    389         set maxspeed_right;
    390         right-casing-color: speed_35_mph#07f807;
    391 }
    392 way["maxspeed:forward"="40 mph"]:righthandtraffic::maxspeed,
    393 way["maxspeed:backward"="40 mph"]!:righthandtraffic::maxspeed
    394 {
    395         set maxspeed_right;
    396         right-casing-color: speed_40_mph#9f9fff;
    397 }
    398 way["maxspeed:forward"="45 mph"]:righthandtraffic::maxspeed,
    399 way["maxspeed:backward"="45 mph"]!:righthandtraffic::maxspeed
    400 {
    401         set maxspeed_right;
    402         right-casing-color: speed_45_mph#ee8b00;
    403 }
    404 way["maxspeed:forward"="50 mph"]:righthandtraffic::maxspeed,
    405 way["maxspeed:backward"="50 mph"]!:righthandtraffic::maxspeed
    406 {
    407         set maxspeed_right;
    408         right-casing-color: speed_50_mph#f90808;
    409 }
    410 way["maxspeed:forward"="55 mph"]:righthandtraffic::maxspeed,
    411 way["maxspeed:backward"="55 mph"]!:righthandtraffic::maxspeed
    412 {
    413         set maxspeed_right;
    414         right-casing-color: speed_55_mph#07f8f8;
    415 }
    416 way["maxspeed:forward"="60 mph"]:righthandtraffic::maxspeed,
    417 way["maxspeed:backward"="60 mph"]!:righthandtraffic::maxspeed
    418 {
    419         set maxspeed_right;
    420         right-casing-color: speed_60_mph#f807f8;
    421 }
    422 way["maxspeed:forward"="65 mph"]:righthandtraffic::maxspeed,
    423 way["maxspeed:backward"="65 mph"]!:righthandtraffic::maxspeed
    424 {
    425         set maxspeed_right;
    426         right-casing-color: speed_65_mph#7807f8;
    427 }
    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
    436 {
    437         set maxspeed_right;
    438         right-casing-color: speed_75_mph#c0f100;
    439 }
    440 
    441 way.maxspeed_right::maxspeed
    442 {
    443         right-casing-opacity: 0.75;
    444         right-casing-width: 6;
    445         right-casing-offset: 0;
    446 }
    447 way|z16.maxspeed_right::maxspeed
    448 {
    449         right-casing-width: 5;
    450 }
    451 way|z-15.maxspeed_right::maxspeed
    452 {
    453         right-casing-width: 4;
    454 }
    455 way.maxspeed_right[maxspeed:variable:forward]:righthandtraffic::maxspeed,
    456 way.maxspeed_right[maxspeed:variable:backward]!:righthandtraffic::maxspeed
    457 {
    458         right-casing-dashes: 34,6;
     235/* 3 - display maxspeed=* */
     236/* 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.
     237This would simplify the style code a bit. However this leads to more asynchronous renderings of the dashes, see JOSM ticket #11994.
     238Also it makes a nicer rendering for dashes lines, like highway=construction or railway=tram.
     239Therefore the style is written this way. */
     240/* 3.1 - kmh */
     241way["maxspeed"="none"]::maxspeedlayer
     242{
     243    set maxspeed;
     244    color: speed_none#febede;
     245}
     246way["maxspeed"="5"]::maxspeedlayer
     247{
     248    set maxspeed;
     249    color: speed_5#ff5656;
     250}
     251way["maxspeed"="10"]::maxspeedlayer,
     252way["maxspeed"="RS:living_street"][setting("implicit")]::maxspeedlayer
     253{
     254    set maxspeed;
     255    color: speed_10#b80022;
     256}
     257way["maxspeed"="15"]::maxspeedlayer
     258{
     259    set maxspeed;
     260    color: speed_15#00da8b;
     261}
     262way["maxspeed"="20"]::maxspeedlayer,
     263way["maxspeed"="BY:living_street"][setting("implicit")]::maxspeedlayer,
     264way["maxspeed"="RU:living_street"][setting("implicit")]::maxspeedlayer
     265{
     266    set maxspeed;
     267    color: speed_20#e3cc82;
     268}
     269way["maxspeed"="30"]::maxspeedlayer,
     270way["maxspeed"="FR:zone30"][setting("implicit")]::maxspeedlayer
     271{
     272    set maxspeed;
     273    color: speed_30#4d4dff;
     274}
     275way["maxspeed"="40"]::maxspeedlayer
     276{
     277    set maxspeed;
     278    color: speed_40#4d4d00;
     279}
     280way["maxspeed"="45"]::maxspeedlayer
     281{
     282    set maxspeed;
     283    color: speed_45#fd6eaa;
     284}
     285way["maxspeed"="50"]::maxspeedlayer,
     286way["maxspeed"="FR:urban"][setting("implicit")]::maxspeedlayer,
     287way["maxspeed"="RO:urban"][setting("implicit")]::maxspeedlayer,
     288way["maxspeed"="RS:urban"][setting("implicit")]::maxspeedlayer
     289{
     290    set maxspeed;
     291    color: speed_50#07f807;
     292}
     293way["maxspeed"="60"]::maxspeedlayer,
     294way["maxspeed"="BY:urban"][setting("implicit")]::maxspeedlayer,
     295way["maxspeed"="RU:urban"][setting("implicit")]::maxspeedlayer
     296{
     297    set maxspeed;
     298    color: speed_60#9f9fff;
     299}
     300way["maxspeed"="70"]::maxspeedlayer
     301{
     302    set maxspeed;
     303    color: speed_70#ee8b00;
     304}
     305way["maxspeed"="80"]::maxspeedlayer,
     306way["maxspeed"="FR:rural"][setting("implicit")]::maxspeedlayer,
     307way["maxspeed"="RS:rural"][setting("implicit")]::maxspeedlayer
     308{
     309    set maxspeed;
     310    color: speed_80#f90808;
     311}
     312way["maxspeed"="90"]::maxspeedlayer,
     313way["maxspeed"="BY:rural"][setting("implicit")]::maxspeedlayer,
     314way["maxspeed"="RO:rural"][setting("implicit")]::maxspeedlayer,
     315way["maxspeed"="RU:rural"][setting("implicit")]::maxspeedlayer
     316{
     317    set maxspeed;
     318    color: speed_90#07f8f8;
     319}
     320way["maxspeed"="100"]::maxspeedlayer,
     321way["maxspeed"="RO:trunk"][setting("implicit")]::maxspeedlayer,
     322way["maxspeed"="RS:trunk"][setting("implicit")]::maxspeedlayer
     323{
     324    set maxspeed;
     325    color: speed_100#f807f8;
     326}
     327way["maxspeed"="110"]::maxspeedlayer,
     328way["maxspeed"="BY:motorway"][setting("implicit")]::maxspeedlayer,
     329way["maxspeed"="RU:motorway"][setting("implicit")]::maxspeedlayer
     330{
     331    set maxspeed;
     332    color: speed_110#7807f8;
     333}
     334way["maxspeed"="120"]::maxspeedlayer
     335{
     336    set maxspeed;
     337    color: speed_120#b69b20;
     338}
     339way["maxspeed"="130"]::maxspeedlayer,
     340way["maxspeed"="FR:motorway"][setting("implicit")]::maxspeedlayer,
     341way["maxspeed"="RO:motorway"][setting("implicit")]::maxspeedlayer,
     342way["maxspeed"="RS:motorway"][setting("implicit")]::maxspeedlayer
     343{
     344    set maxspeed;
     345    color: speed_130#c0f100;
     346}
     347way["maxspeed"="140"]::maxspeedlayer
     348{
     349    set maxspeed;
     350    color: speed_140#438100;
     351}
     352/* 3.2 - mph */
     353way["maxspeed"="5 mph"]::maxspeedlayer
     354{
     355    set maxspeed;
     356    color: speed_5_mph#b80022;
     357}
     358way["maxspeed"="10 mph"]::maxspeedlayer
     359{
     360    set maxspeed;
     361    color: speed_10_mph#00da8b;
     362}
     363way["maxspeed"="15 mph"]::maxspeedlayer
     364{
     365    set maxspeed;
     366    color: speed_15_mph#e3cc82;
     367}
     368way["maxspeed"="20 mph"]::maxspeedlayer
     369{
     370    set maxspeed;
     371    color: speed_20_mph#4d4dff;
     372}
     373way["maxspeed"="25 mph"]::maxspeedlayer
     374{
     375    set maxspeed;
     376    color: speed_25_mph#4d4d00;
     377}
     378way["maxspeed"="30 mph"]::maxspeedlayer
     379{
     380    set maxspeed;
     381    color: speed_30_mph#fd6eaa;
     382}
     383way["maxspeed"="35 mph"]::maxspeedlayer
     384{
     385    set maxspeed;
     386    color: speed_35_mph#07f807;
     387}
     388way["maxspeed"="40 mph"]::maxspeedlayer
     389{
     390    set maxspeed;
     391    color: speed_40_mph#9f9fff;
     392}
     393way["maxspeed"="45 mph"]::maxspeedlayer
     394{
     395    set maxspeed;
     396    color: speed_45_mph#ee8b00;
     397}
     398way["maxspeed"="50 mph"]::maxspeedlayer
     399{
     400    set maxspeed;
     401    color: speed_50_mph#f90808;
     402}
     403way["maxspeed"="55 mph"]::maxspeedlayer
     404{
     405    set maxspeed;
     406    color: speed_55_mph#07f8f8;
     407}
     408way["maxspeed"="60 mph"]::maxspeedlayer
     409{
     410    set maxspeed;
     411    color: speed_60_mph#f807f8;
     412}
     413way["maxspeed"="65 mph"]::maxspeedlayer
     414{
     415    set maxspeed;
     416    color: speed_65_mph#7807f8;
     417}
     418way["maxspeed"="70 mph"]::maxspeedlayer
     419{
     420    set maxspeed;
     421    color: speed_70_mph#b69b20;
     422}
     423way["maxspeed"="75 mph"]::maxspeedlayer
     424{
     425    set maxspeed;
     426    color: speed_75_mph#c0f100;
     427}
     428way["maxspeed"="80 mph"]::maxspeedlayer
     429{
     430    set maxspeed;
     431    color: speed_80_mph#438100;
     432}
     433way["maxspeed"="85 mph"]::maxspeedlayer
     434{
     435    set maxspeed;
     436    color: speed_85_mph#725600;
     437}
     438
     439/* 3.3 - conditional maxspeed */
     440way.cond_kmh::maxspeedlayer,
     441way.cond_mph::maxspeedlayer
     442{
     443    dashes: 55,25;
     444}
     445/* 3.3.1 - kmh */
     446way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="none"]::maxspeedlayer
     447{
     448    dashes-background-color:  speed_none#febede;
     449}
     450way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="5"]::maxspeedlayer
     451{
     452    dashes-background-color:  speed_5#ff5656;
     453}
     454way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="10"]::maxspeedlayer
     455{
     456    dashes-background-color:  speed_10#b80022;
     457}
     458way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="15"]::maxspeedlayer
     459{
     460    dashes-background-color:  speed_15#00da8b;
     461}
     462way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="20"]::maxspeedlayer
     463/* 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, ...).  */
     464{
     465    dashes-background-color:  speed_20#e3cc82;
     466}
     467way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="30"]::maxspeedlayer
     468{
     469    dashes-background-color:  speed_30#4d4dff;
     470}
     471way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="40"]::maxspeedlayer
     472{
     473    dashes-background-color:  speed_40#4d4d00;
     474}
     475way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="45"]::maxspeedlayer
     476{
     477    dashes-background-color:  speed_45#fd6eaa;
     478}
     479way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="50"]::maxspeedlayer
     480{
     481    dashes-background-color:  speed_50#07f807;
     482}
     483way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="60"]::maxspeedlayer
     484{
     485    dashes-background-color:  speed_60#9f9fff;
     486}
     487way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="70"]::maxspeedlayer
     488{
     489    dashes-background-color:  speed_70#ee8b00;
     490}
     491way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="80"]::maxspeedlayer
     492{
     493    dashes-background-color:  speed_80#f90808;
     494}
     495way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="90"]::maxspeedlayer
     496{
     497    dashes-background-color:  speed_90#07f8f8;
     498}
     499way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="100"]::maxspeedlayer
     500{
     501    dashes-background-color:  speed_100#f807f8;
     502}
     503way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="110"]::maxspeedlayer
     504{
     505    dashes-background-color:  speed_110#7807f8;
     506}
     507way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="120"]::maxspeedlayer
     508{
     509    dashes-background-color:  speed_120#b69b20;
     510}
     511way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="130"]::maxspeedlayer
     512{
     513    dashes-background-color:  speed_130#c0f100;
     514}
     515way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="140"]::maxspeedlayer
     516{
     517    dashes-background-color:  speed_140#438100;
     518}
     519/* 3.3.2 -  mph */
     520way.cond_mph[prop(maxsp_cond, maxspeedlayer)="5"]::maxspeedlayer
     521{
     522    dashes-background-color:  speed_5_mph#b80022;
     523}
     524way.cond_mph[prop(maxsp_cond, maxspeedlayer)="10"]::maxspeedlayer
     525{
     526    dashes-background-color:  speed_10_mph#00da8b;
     527}
     528way.cond_mph[prop(maxsp_cond, maxspeedlayer)="15"]::maxspeedlayer
     529{
     530    dashes-background-color:  speed_15_mph#e3cc82;
     531}
     532way.cond_mph[prop(maxsp_cond, maxspeedlayer)="20"]::maxspeedlayer
     533{
     534    dashes-background-color:  speed_20_mph#4d4dff;
     535}
     536way.cond_mph[prop(maxsp_cond, maxspeedlayer)="25"]::maxspeedlayer
     537{
     538    dashes-background-color:  speed_25_mph#4d4d00;
     539}
     540way.cond_mph[prop(maxsp_cond, maxspeedlayer)="30"]::maxspeedlayer
     541{
     542    dashes-background-color:  speed_30_mph#fd6eaa;
     543}
     544way.cond_mph[prop(maxsp_cond, maxspeedlayer)="35"]::maxspeedlayer
     545{
     546    dashes-background-color:  speed_35_mph#07f807;
     547}
     548way.cond_mph[prop(maxsp_cond, maxspeedlayer)="40"]::maxspeedlayer
     549{
     550    dashes-background-color:  speed_40_mph#9f9fff;
     551}
     552way.cond_mph[prop(maxsp_cond, maxspeedlayer)="45"]::maxspeedlayer
     553{
     554    dashes-background-color:  speed_45_mph#ee8b00;
     555}
     556way.cond_mph[prop(maxsp_cond, maxspeedlayer)="50"]::maxspeedlayer
     557{
     558    dashes-background-color:  speed_50_mph#f90808;
     559}
     560way.cond_mph[prop(maxsp_cond, maxspeedlayer)="55"]::maxspeedlayer
     561{
     562    dashes-background-color:  speed_55_mph#07f8f8;
     563}
     564way.cond_mph[prop(maxsp_cond, maxspeedlayer)="60"]::maxspeedlayer
     565{
     566    dashes-background-color:  speed_60_mph#f807f8;
     567}
     568way.cond_mph[prop(maxsp_cond, maxspeedlayer)="65"]::maxspeedlayer
     569{
     570    dashes-background-color:  speed_65_mph#7807f8;
     571}
     572way.cond_mph[prop(maxsp_cond, maxspeedlayer)="70"]::maxspeedlayer
     573{
     574    dashes-background-color:  speed_70_mph#b69b20;
     575}
     576way.cond_mph[prop(maxsp_cond, maxspeedlayer)="75"]::maxspeedlayer
     577{
     578    dashes-background-color:  speed_75_mph#c0f100;
     579}
     580way.cond_mph[prop(maxsp_cond, maxspeedlayer)="80"]::maxspeedlayer
     581{
     582    dashes-background-color:  speed_80_mph#438100;
     583}
     584way.cond_mph[prop(maxsp_cond, maxspeedlayer)="85"]::maxspeedlayer
     585{
     586    dashes-background-color:  speed_85_mph#725600;
     587}
     588
     589/* 3.4 - general rules */
     590way.maxspeed::maxspeedlayer
     591{
     592    width: 14;
     593    z-index: -1;
     594}
     595way|z16.maxspeed::maxspeedlayer
     596{
     597    width: 12;
     598}
     599way|z-15.maxspeed::maxspeedlayer
     600{
     601    width:10;
     602}
     603way.maxspeed[maxspeed:variable]::maxspeedlayer
     604{
     605    dashes: 34,6;
     606    /* *variable* overrides the dashes scheme of *conditional*, but the colors of conditional stay.
     607    This way you can see conditional and variable together */
    459608}
    460609
    461610/*************************************/
    462611
    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
    475 {
    476         set maxspeed_left;
    477         left-casing-color: speed_10#b80022;
    478 }
    479 way["maxspeed:forward"="15"]!:righthandtraffic::maxspeed,
    480 way["maxspeed:backward"="15"]:righthandtraffic::maxspeed
    481 {
    482         set maxspeed_left;
    483         left-casing-color: speed_15#00da8b;
    484 }
    485 way["maxspeed:forward"="20"]!:righthandtraffic::maxspeed,
    486 way["maxspeed:backward"="20"]:righthandtraffic::maxspeed
    487 {
    488         set maxspeed_left;
    489         left-casing-color: speed_20#e3cc82;
    490 }
    491 way["maxspeed:forward"="30"]!:righthandtraffic::maxspeed,
    492 way["maxspeed:backward"="30"]:righthandtraffic::maxspeed
    493 {
    494         set maxspeed_left;
    495         left-casing-color: speed_30#4d4dff;
    496 }
    497 way["maxspeed:forward"="40"]!:righthandtraffic::maxspeed,
    498 way["maxspeed:backward"="40"]:righthandtraffic::maxspeed
    499 {
    500         set maxspeed_left;
    501         left-casing-color: speed_40#4d4d00;
    502 }
    503 way["maxspeed:forward"="45"]!:righthandtraffic::maxspeed,
    504 way["maxspeed:backward"="45"]:righthandtraffic::maxspeed
    505 {
    506         set maxspeed_left;
    507         left-casing-color: speed_45#ff529a;
    508 }
    509 way["maxspeed:forward"="50"]!:righthandtraffic::maxspeed,
    510 way["maxspeed:backward"="50"]:righthandtraffic::maxspeed
    511 {
    512         set maxspeed_left;
    513         left-casing-color: speed_50#07f807;
    514 }
    515 way["maxspeed:forward"="60"]!:righthandtraffic::maxspeed,
    516 way["maxspeed:backward"="60"]:righthandtraffic::maxspeed
    517 {
    518         set maxspeed_left;
    519         left-casing-color: speed_60#9f9fff;
    520 }
    521 way["maxspeed:forward"="70"]!:righthandtraffic::maxspeed,
    522 way["maxspeed:backward"="70"]:righthandtraffic::maxspeed
    523 {
    524         set maxspeed_left;
    525         left-casing-color: speed_70#ee8b00;
    526 }
    527 way["maxspeed:forward"="80"]!:righthandtraffic::maxspeed,
    528 way["maxspeed:backward"="80"]:righthandtraffic::maxspeed
    529 {
    530         set maxspeed_left;
    531         left-casing-color: speed_80#f90808;
    532 }
    533 way["maxspeed:forward"="90"]!:righthandtraffic::maxspeed,
    534 way["maxspeed:backward"="90"]:righthandtraffic::maxspeed
    535 {
    536         set maxspeed_left;
    537         left-casing-color: speed_90#07f8f8;
    538 }
    539 way["maxspeed:forward"="100"]!:righthandtraffic::maxspeed,
    540 way["maxspeed:backward"="100"]:righthandtraffic::maxspeed
    541 {
    542         set maxspeed_left;
    543         left-casing-color: speed_100#f807f8;
    544 }
    545 way["maxspeed:forward"="110"]!:righthandtraffic::maxspeed,
    546 way["maxspeed:backward"="110"]:righthandtraffic::maxspeed
    547 {
    548         set maxspeed_left;
    549         left-casing-color: speed_110#7807f8;
    550 }
    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
    559 {
    560         set maxspeed_left;
    561         left-casing-color: speed_130#c0f100;
    562 }
    563         /* mph */
    564 way["maxspeed:forward"="5 mph"]!:righthandtraffic::maxspeed,
    565 way["maxspeed:backward"="5 mph"]:righthandtraffic::maxspeed
    566 {
    567         set maxspeed_left;
    568         left-casing-color: speed_5_mph#b80022;
    569 }
    570 way["maxspeed:forward"="10 mph"]!:righthandtraffic::maxspeed,
    571 way["maxspeed:backward"="10 mph"]:righthandtraffic::maxspeed
    572 {
    573         set maxspeed_left;
    574         left-casing-color: speed_10_mph#00da8b;
    575 }
    576 way["maxspeed:forward"="15 mph"]!:righthandtraffic::maxspeed,
    577 way["maxspeed:backward"="15 mph"]:righthandtraffic::maxspeed
    578 {
    579         set maxspeed_left;
    580         left-casing-color: speed_15_mph#e3cc82;
    581 }
    582 way["maxspeed:forward"="20 mph"]!:righthandtraffic::maxspeed,
    583 way["maxspeed:backward"="20 mph"]:righthandtraffic::maxspeed
    584 {
    585         set maxspeed_left;
    586         left-casing-color: speed_20_mph#4d4dff;
    587 }
    588 way["maxspeed:forward"="25 mph"]!:righthandtraffic::maxspeed,
    589 way["maxspeed:backward"="25 mph"]:righthandtraffic::maxspeed
    590 {
    591         set maxspeed_left;
    592         left-casing-color: speed_25_mph#4d4d00;
    593 }
    594 way["maxspeed:forward"="30 mph"]!:righthandtraffic::maxspeed,
    595 way["maxspeed:backward"="30 mph"]:righthandtraffic::maxspeed
    596 {
    597         set maxspeed_left;
    598         left-casing-color: speed_30_mph#ff529a;
    599 }
    600 way["maxspeed:forward"="35 mph"]!:righthandtraffic::maxspeed,
    601 way["maxspeed:backward"="35 mph"]:righthandtraffic::maxspeed
    602 {
    603         set maxspeed_left;
    604         left-casing-color: speed_35_mph#07f807;
    605 }
    606 way["maxspeed:forward"="40 mph"]!:righthandtraffic::maxspeed,
    607 way["maxspeed:backward"="40 mph"]:righthandtraffic::maxspeed
    608 {
    609         set maxspeed_left;
    610         left-casing-color: speed_40_mph#9f9fff;
    611 }
    612 way["maxspeed:forward"="45 mph"]!:righthandtraffic::maxspeed,
    613 way["maxspeed:backward"="45 mph"]:righthandtraffic::maxspeed
    614 {
    615         set maxspeed_left;
    616         left-casing-color: speed_45_mph#ee8b00;
    617 }
    618 way["maxspeed:forward"="50 mph"]!:righthandtraffic::maxspeed,
    619 way["maxspeed:backward"="50 mph"]:righthandtraffic::maxspeed
    620 {
    621         set maxspeed_left;
    622         left-casing-color: speed_50_mph#f90808;
    623 }
    624 way["maxspeed:forward"="55 mph"]!:righthandtraffic::maxspeed,
    625 way["maxspeed:backward"="55 mph"]:righthandtraffic::maxspeed
    626 {
    627         set maxspeed_left;
    628         left-casing-color: speed_55_mph#07f8f8;
    629 }
    630 way["maxspeed:forward"="60 mph"]!:righthandtraffic::maxspeed,
    631 way["maxspeed:backward"="60 mph"]:righthandtraffic::maxspeed
    632 {
    633         set maxspeed_left;
    634         left-casing-color: speed_60_mph#f807f8;
    635 }
    636 way["maxspeed:forward"="65 mph"]!:righthandtraffic::maxspeed,
    637 way["maxspeed:backward"="65 mph"]:righthandtraffic::maxspeed
    638 {
    639         set maxspeed_left;
    640         left-casing-color: speed_65_mph#7807f8;
    641 }
    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
    650 {
    651         set maxspeed_left;
    652         left-casing-color: speed_75_mph#c0f100;
    653 }
    654 
    655 way.maxspeed_left::maxspeed
    656 {
    657         left-casing-opacity: 0.75;
    658         left-casing-width: 6;
    659         left-casing-offset: 0;
    660 }
    661 way|z16.maxspeed_left::maxspeed
    662 {
    663         left-casing-width: 5;
    664 }
    665 way|z-15.maxspeed_left::maxspeed
    666 {
    667         left-casing-width: 4;
    668 }
    669 way.maxspeed_left[maxspeed:variable:forward]!:righthandtraffic::maxspeed,
    670 way.maxspeed_left[maxspeed:variable:backward]:righthandtraffic::maxspeed
    671 {
    672         left-casing-dashes: 34,6;
     612/* 4 - display maxspeed:forward=* for righthandtraffic and maxspeed:backward=* for lefthandtraffic */
     613/* 4.1 - kmh */
     614way["maxspeed:forward"="none"]:righthandtraffic::maxspeedcasinglayer,
     615way["maxspeed:backward"="none"]!:righthandtraffic::maxspeedcasinglayer
     616{
     617    set maxspeed_right;
     618    right-casing-color: speed_none#febede;
     619}
     620way["maxspeed:forward"="5"]:righthandtraffic::maxspeedcasinglayer,
     621way["maxspeed:backward"="5"]!:righthandtraffic::maxspeedcasinglayer
     622{
     623    set maxspeed_right;
     624    right-casing-color: speed_5#ff5656;
     625}
     626way["maxspeed:forward"="10"]:righthandtraffic::maxspeedcasinglayer,
     627way["maxspeed:backward"="10"]!:righthandtraffic::maxspeedcasinglayer,
     628way["maxspeed:forward"="RS:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     629{
     630    set maxspeed_right;
     631    right-casing-color: speed_10#b80022;
     632}
     633way["maxspeed:forward"="15"]:righthandtraffic::maxspeedcasinglayer,
     634way["maxspeed:backward"="15"]!:righthandtraffic::maxspeedcasinglayer
     635{
     636    set maxspeed_right;
     637    right-casing-color: speed_15#00da8b;
     638}
     639way["maxspeed:forward"="20"]:righthandtraffic::maxspeedcasinglayer,
     640way["maxspeed:backward"="20"]!:righthandtraffic::maxspeedcasinglayer,
     641way["maxspeed:forward"="BY:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     642way["maxspeed:forward"="RU:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     643/* 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 */
     644{
     645    set maxspeed_right;
     646    right-casing-color: speed_20#e3cc82;
     647}
     648way["maxspeed:forward"="30"]:righthandtraffic::maxspeedcasinglayer,
     649way["maxspeed:backward"="30"]!:righthandtraffic::maxspeedcasinglayer,
     650way["maxspeed:forward"="FR:zone30"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     651{
     652    set maxspeed_right;
     653    right-casing-color: speed_30#4d4dff;
     654}
     655way["maxspeed:forward"="40"]:righthandtraffic::maxspeedcasinglayer,
     656way["maxspeed:backward"="40"]!:righthandtraffic::maxspeedcasinglayer
     657{
     658    set maxspeed_right;
     659    right-casing-color: speed_40#4d4d00;
     660}
     661way["maxspeed:forward"="45"]:righthandtraffic::maxspeedcasinglayer,
     662way["maxspeed:backward"="45"]!:righthandtraffic::maxspeedcasinglayer
     663{
     664    set maxspeed_right;
     665    right-casing-color: speed_45#fd6eaa;
     666}
     667way["maxspeed:forward"="50"]:righthandtraffic::maxspeedcasinglayer,
     668way["maxspeed:backward"="50"]!:righthandtraffic::maxspeedcasinglayer,
     669way["maxspeed:forward"="FR:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     670way["maxspeed:forward"="RO:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     671way["maxspeed:forward"="RS:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     672{
     673    set maxspeed_right;
     674    right-casing-color: speed_50#07f807;
     675}
     676way["maxspeed:forward"="60"]:righthandtraffic::maxspeedcasinglayer,
     677way["maxspeed:backward"="60"]!:righthandtraffic::maxspeedcasinglayer,
     678way["maxspeed:forward"="BY:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     679way["maxspeed:forward"="RU:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     680{
     681    set maxspeed_right;
     682    right-casing-color: speed_60#9f9fff;
     683}
     684way["maxspeed:forward"="70"]:righthandtraffic::maxspeedcasinglayer,
     685way["maxspeed:backward"="70"]!:righthandtraffic::maxspeedcasinglayer
     686{
     687    set maxspeed_right;
     688    right-casing-color: speed_70#ee8b00;
     689}
     690way["maxspeed:forward"="80"]:righthandtraffic::maxspeedcasinglayer,
     691way["maxspeed:backward"="80"]!:righthandtraffic::maxspeedcasinglayer,
     692way["maxspeed:forward"="FR:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     693way["maxspeed:forward"="RS:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     694{
     695    set maxspeed_right;
     696    right-casing-color: speed_80#f90808;
     697}
     698way["maxspeed:forward"="90"]:righthandtraffic::maxspeedcasinglayer,
     699way["maxspeed:backward"="90"]!:righthandtraffic::maxspeedcasinglayer,
     700way["maxspeed:forward"="BY:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     701way["maxspeed:forward"="RO:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     702way["maxspeed:forward"="RU:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     703{
     704    set maxspeed_right;
     705    right-casing-color: speed_90#07f8f8;
     706}
     707way["maxspeed:forward"="100"]:righthandtraffic::maxspeedcasinglayer,
     708way["maxspeed:backward"="100"]!:righthandtraffic::maxspeedcasinglayer,
     709way["maxspeed:forward"="RO:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     710way["maxspeed:forward"="RS:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     711{
     712    set maxspeed_right;
     713    right-casing-color: speed_100#f807f8;
     714}
     715way["maxspeed:forward"="110"]:righthandtraffic::maxspeedcasinglayer,
     716way["maxspeed:backward"="110"]!:righthandtraffic::maxspeedcasinglayer,
     717way["maxspeed:forward"="BY:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     718way["maxspeed:forward"="RU:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     719{
     720    set maxspeed_right;
     721    right-casing-color: speed_110#7807f8;
     722}
     723way["maxspeed:forward"="120"]:righthandtraffic::maxspeedcasinglayer,
     724way["maxspeed:backward"="120"]!:righthandtraffic::maxspeedcasinglayer
     725{
     726    set maxspeed_right;
     727    right-casing-color: speed_120#b69b20;
     728}
     729way["maxspeed:forward"="130"]:righthandtraffic::maxspeedcasinglayer,
     730way["maxspeed:backward"="130"]!:righthandtraffic::maxspeedcasinglayer,
     731way["maxspeed:forward"="FR:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     732way["maxspeed:forward"="RO:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     733way["maxspeed:forward"="RS:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     734{
     735    set maxspeed_right;
     736    right-casing-color: speed_130#c0f100;
     737}
     738way["maxspeed:forward"="140"]:righthandtraffic::maxspeedcasinglayer,
     739way["maxspeed:backward"="140"]!:righthandtraffic::maxspeedcasinglayer
     740{
     741    set maxspeed_right;
     742    right-casing-color: speed_140#438100;
     743}
     744/* 4.2 - mph */
     745way["maxspeed:forward"="5 mph"]:righthandtraffic::maxspeedcasinglayer,
     746way["maxspeed:backward"="5 mph"]!:righthandtraffic::maxspeedcasinglayer
     747{
     748    set maxspeed_right;
     749    right-casing-color: speed_5_mph#b80022;
     750}
     751way["maxspeed:forward"="10 mph"]:righthandtraffic::maxspeedcasinglayer,
     752way["maxspeed:backward"="10 mph"]!:righthandtraffic::maxspeedcasinglayer
     753{
     754    set maxspeed_right;
     755    right-casing-color: speed_10_mph#00da8b;
     756}
     757way["maxspeed:forward"="15 mph"]:righthandtraffic::maxspeedcasinglayer,
     758way["maxspeed:backward"="15 mph"]!:righthandtraffic::maxspeedcasinglayer
     759{
     760    set maxspeed_right;
     761    right-casing-color: speed_15_mph#e3cc82;
     762}
     763way["maxspeed:forward"="20 mph"]:righthandtraffic::maxspeedcasinglayer,
     764way["maxspeed:backward"="20 mph"]!:righthandtraffic::maxspeedcasinglayer
     765{
     766    set maxspeed_right;
     767    right-casing-color: speed_20_mph#4d4dff;
     768}
     769way["maxspeed:forward"="25 mph"]:righthandtraffic::maxspeedcasinglayer,
     770way["maxspeed:backward"="25 mph"]!:righthandtraffic::maxspeedcasinglayer
     771{
     772    set maxspeed_right;
     773    right-casing-color: speed_25_mph#4d4d00;
     774}
     775way["maxspeed:forward"="30 mph"]:righthandtraffic::maxspeedcasinglayer,
     776way["maxspeed:backward"="30 mph"]!:righthandtraffic::maxspeedcasinglayer
     777{
     778    set maxspeed_right;
     779    right-casing-color: speed_30_mph#fd6eaa;
     780}
     781way["maxspeed:forward"="35 mph"]:righthandtraffic::maxspeedcasinglayer,
     782way["maxspeed:backward"="35 mph"]!:righthandtraffic::maxspeedcasinglayer
     783{
     784    set maxspeed_right;
     785    right-casing-color: speed_35_mph#07f807;
     786}
     787way["maxspeed:forward"="40 mph"]:righthandtraffic::maxspeedcasinglayer,
     788way["maxspeed:backward"="40 mph"]!:righthandtraffic::maxspeedcasinglayer
     789{
     790    set maxspeed_right;
     791    right-casing-color: speed_40_mph#9f9fff;
     792}
     793way["maxspeed:forward"="45 mph"]:righthandtraffic::maxspeedcasinglayer,
     794way["maxspeed:backward"="45 mph"]!:righthandtraffic::maxspeedcasinglayer
     795{
     796    set maxspeed_right;
     797    right-casing-color: speed_45_mph#ee8b00;
     798}
     799way["maxspeed:forward"="50 mph"]:righthandtraffic::maxspeedcasinglayer,
     800way["maxspeed:backward"="50 mph"]!:righthandtraffic::maxspeedcasinglayer
     801{
     802    set maxspeed_right;
     803    right-casing-color: speed_50_mph#f90808;
     804}
     805way["maxspeed:forward"="55 mph"]:righthandtraffic::maxspeedcasinglayer,
     806way["maxspeed:backward"="55 mph"]!:righthandtraffic::maxspeedcasinglayer
     807{
     808    set maxspeed_right;
     809    right-casing-color: speed_55_mph#07f8f8;
     810}
     811way["maxspeed:forward"="60 mph"]:righthandtraffic::maxspeedcasinglayer,
     812way["maxspeed:backward"="60 mph"]!:righthandtraffic::maxspeedcasinglayer
     813{
     814    set maxspeed_right;
     815    right-casing-color: speed_60_mph#f807f8;
     816}
     817way["maxspeed:forward"="65 mph"]:righthandtraffic::maxspeedcasinglayer,
     818way["maxspeed:backward"="65 mph"]!:righthandtraffic::maxspeedcasinglayer
     819{
     820    set maxspeed_right;
     821    right-casing-color: speed_65_mph#7807f8;
     822}
     823way["maxspeed:forward"="70 mph"]:righthandtraffic::maxspeedcasinglayer,
     824way["maxspeed:backward"="70 mph"]!:righthandtraffic::maxspeedcasinglayer
     825{
     826    set maxspeed_right;
     827    right-casing-color: speed_70_mph#b69b20;
     828}
     829way["maxspeed:forward"="75 mph"]:righthandtraffic::maxspeedcasinglayer,
     830way["maxspeed:backward"="75 mph"]!:righthandtraffic::maxspeedcasinglayer
     831{
     832    set maxspeed_right;
     833    right-casing-color: speed_75_mph#c0f100;
     834}
     835way["maxspeed:forward"="80 mph"]:righthandtraffic::maxspeedcasinglayer,
     836way["maxspeed:backward"="80 mph"]!:righthandtraffic::maxspeedcasinglayer
     837{
     838    set maxspeed_right;
     839    right-casing-color: speed_80_mph#438100;
     840}
     841way["maxspeed:forward"="85 mph"]:righthandtraffic::maxspeedcasinglayer,
     842way["maxspeed:backward"="85 mph"]!:righthandtraffic::maxspeedcasinglayer
     843{
     844    set maxspeed_right;
     845    right-casing-color: speed_85_mph#725600;
     846}
     847
     848/* 4.3 - conditional righthand-forward and lefthand-backward maxspeed */
     849way.cond_forward_kmh:righthandtraffic::maxspeedcasinglayer,
     850way.cond_backward_kmh!:righthandtraffic::maxspeedcasinglayer,
     851way.cond_forward_mph:righthandtraffic::maxspeedcasinglayer,
     852way.cond_backward_mph!:righthandtraffic::maxspeedcasinglayer
     853{
     854    set maxspeed_right_cond;
     855    right-casing-dashes: 55,25;
     856}
     857/* 4.3.1 - kmh */
     858way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="none"]:righthandtraffic::maxspeedcasinglayer,
     859way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="none"]!:righthandtraffic::maxspeedcasinglayer
     860{
     861    right-casing-dashes-background-color: speed_none#febede;
     862}
     863way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer,
     864way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer
     865{
     866    right-casing-dashes-background-color: speed_5#ff5656;
     867}
     868way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer,
     869way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer
     870{
     871    right-casing-dashes-background-color: speed_10#b80022;
     872}
     873way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer,
     874way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer
     875{
     876    right-casing-dashes-background-color: speed_15#00da8b;
     877}
     878way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer,
     879way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer
     880{
     881    right-casing-dashes-background-color: speed_20#e3cc82;
     882}
     883way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer,
     884way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer
     885{
     886    right-casing-dashes-background-color: speed_30#4d4dff;
     887}
     888way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer,
     889way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer
     890{
     891    right-casing-dashes-background-color: speed_40#4d4d00;
     892}
     893way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer,
     894way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer
     895{
     896    right-casing-dashes-background-color: speed_45#fd6eaa;
     897}
     898way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer,
     899way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer
     900{
     901    right-casing-dashes-background-color: speed_50#07f807;
     902}
     903way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer,
     904way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer
     905{
     906    right-casing-dashes-background-color: speed_60#9f9fff;
     907}
     908way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer,
     909way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer
     910{
     911    right-casing-dashes-background-color: speed_70#ee8b00;
     912}
     913way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="80"]:righthandtraffic::maxspeedcasinglayer,
     914way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="80"]!:righthandtraffic::maxspeedcasinglayer
     915{
     916    right-casing-dashes-background-color: speed_80#f90808;
     917}
     918way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="90"]:righthandtraffic::maxspeedcasinglayer,
     919way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="90"]!:righthandtraffic::maxspeedcasinglayer
     920{
     921    right-casing-dashes-background-color: speed_90#07f8f8;
     922}
     923way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="100"]:righthandtraffic::maxspeedcasinglayer,
     924way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="100"]!:righthandtraffic::maxspeedcasinglayer
     925{
     926    right-casing-dashes-background-color: speed_100#f807f8;
     927}
     928way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="110"]:righthandtraffic::maxspeedcasinglayer,
     929way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="110"]!:righthandtraffic::maxspeedcasinglayer
     930{
     931    right-casing-dashes-background-color: speed_110#7807f8;
     932}
     933way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="120"]:righthandtraffic::maxspeedcasinglayer,
     934way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="120"]!:righthandtraffic::maxspeedcasinglayer
     935{
     936    right-casing-dashes-background-color: speed_120#b69b20;
     937}
     938way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="130"]:righthandtraffic::maxspeedcasinglayer,
     939way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="130"]!:righthandtraffic::maxspeedcasinglayer
     940{
     941    right-casing-dashes-background-color: speed_130#c0f100;
     942}
     943way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="140"]:righthandtraffic::maxspeedcasinglayer,
     944way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="140"]!:righthandtraffic::maxspeedcasinglayer
     945{
     946    right-casing-dashes-background-color: speed_140#438100;
     947}
     948/* 4.3.2 - mph */
     949way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer,
     950way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer
     951{
     952    right-casing-dashes-background-color: speed_5_mph#b80022;
     953}
     954way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer,
     955way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer
     956{
     957    right-casing-dashes-background-color: speed_10_mph#00da8b;
     958}
     959way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer,
     960way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer
     961{
     962    right-casing-dashes-background-color: speed_15_mph#e3cc82;
     963}
     964way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer,
     965way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer
     966{
     967    right-casing-dashes-background-color: speed_20_mph#4d4dff;
     968}
     969way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="25"]:righthandtraffic::maxspeedcasinglayer,
     970way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="25"]!:righthandtraffic::maxspeedcasinglayer
     971{
     972    right-casing-dashes-background-color: speed_25_mph#4d4d00;
     973}
     974way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer,
     975way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer
     976{
     977    right-casing-dashes-background-color: speed_30_mph#fd6eaa;
     978}
     979way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="35"]:righthandtraffic::maxspeedcasinglayer,
     980way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="35"]!:righthandtraffic::maxspeedcasinglayer
     981{
     982    right-casing-dashes-background-color: speed_35_mph#07f807;
     983}
     984way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer,
     985way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer
     986{
     987    right-casing-dashes-background-color: speed_40_mph#9f9fff;
     988}
     989way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer,
     990way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer
     991{
     992    right-casing-dashes-background-color: speed_45_mph#ee8b00;
     993}
     994way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer,
     995way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer
     996{
     997    right-casing-dashes-background-color: speed_50_mph#f90808;
     998}
     999way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="55"]:righthandtraffic::maxspeedcasinglayer,
     1000way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="55"]!:righthandtraffic::maxspeedcasinglayer
     1001{
     1002    right-casing-dashes-background-color: speed_55_mph#07f8f8;
     1003}
     1004way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer,
     1005way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer
     1006{
     1007    right-casing-dashes-background-color: speed_60_mph#f807f8;
     1008}
     1009way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="65"]:righthandtraffic::maxspeedcasinglayer,
     1010way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="65"]!:righthandtraffic::maxspeedcasinglayer
     1011{
     1012    right-casing-dashes-background-color: speed_65_mph#7807f8;
     1013}
     1014way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer,
     1015way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer
     1016{
     1017    right-casing-dashes-background-color: speed_70_mph#b69b20;
     1018}
     1019way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="75"]:righthandtraffic::maxspeedcasinglayer,
     1020way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="75"]!:righthandtraffic::maxspeedcasinglayer
     1021{
     1022    right-casing-dashes-background-color: speed_75_mph#c0f100;
     1023}
     1024way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="80"]:righthandtraffic::maxspeedcasinglayer,
     1025way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="80"]!:righthandtraffic::maxspeedcasinglayer
     1026{
     1027    right-casing-dashes-background-color: speed_80_mph#438100;
     1028}
     1029way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="85"]:righthandtraffic::maxspeedcasinglayer,
     1030way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="85"]!:righthandtraffic::maxspeedcasinglayer
     1031{
     1032    right-casing-dashes-background-color: speed_85_mph#725600;
     1033}
     1034
     1035/* 4.4 - general rules */
     1036way.maxspeed_right::maxspeedcasinglayer,
     1037way.maxspeed_right_cond::maxspeedcasinglayer
     1038{
     1039    right-casing-width: 6;
     1040    right-casing-offset: 0;
     1041    major-z-index: 3;
     1042    z-index: -1;
     1043}
     1044way|z16.maxspeed_right::maxspeedcasinglayer,
     1045way|z16.maxspeed_right_cond::maxspeedcasinglayer
     1046{
     1047    right-casing-width: 5;
     1048}
     1049way|z-15.maxspeed_right::maxspeedcasinglayer,
     1050way|z-15.maxspeed_right_cond::maxspeedcasinglayer
     1051{
     1052    right-casing-width: 4;
     1053}
     1054way.maxspeed_right_cond!.maxspeed_right::maxspeedcasinglayer
     1055{
     1056    right-casing-opacity: 0;
     1057    right-casing-dashes-background-opacity: 1;
     1058}
     1059way.maxspeed_right[maxspeed:variable:forward]:righthandtraffic::maxspeedcasinglayer,
     1060way.maxspeed_right[maxspeed:variable:backward]!:righthandtraffic::maxspeedcasinglayer,
     1061way.maxspeed_right_cond[maxspeed:variable:forward]:righthandtraffic::maxspeedcasinglayer,
     1062way.maxspeed_right_cond[maxspeed:variable:backward]!:righthandtraffic::maxspeedcasinglayer
     1063{
     1064    right-casing-dashes: 34,6;
    6731065}
    6741066
    6751067/*************************************/
     1068
     1069/* 5 - display maxspeed:forward=* for lefthandtraffic and maxspeed:backward=* for righthandtraffic */
     1070/* 5.1 - kmh */
     1071way["maxspeed:forward"="none"]!:righthandtraffic::maxspeedcasinglayer,
     1072way["maxspeed:backward"="none"]:righthandtraffic::maxspeedcasinglayer
     1073{
     1074    set maxspeed_left;
     1075    left-casing-color: speed_none#febede;
     1076}
     1077way["maxspeed:forward"="5"]!:righthandtraffic::maxspeedcasinglayer,
     1078way["maxspeed:backward"="5"]:righthandtraffic::maxspeedcasinglayer
     1079{
     1080    set maxspeed_left;
     1081    left-casing-color: speed_5#ff5656;
     1082}
     1083way["maxspeed:forward"="10"]!:righthandtraffic::maxspeedcasinglayer,
     1084way["maxspeed:backward"="10"]:righthandtraffic::maxspeedcasinglayer,
     1085way["maxspeed:backward"="RS:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1086{
     1087    set maxspeed_left;
     1088    left-casing-color: speed_10#b80022;
     1089}
     1090way["maxspeed:forward"="15"]!:righthandtraffic::maxspeedcasinglayer,
     1091way["maxspeed:backward"="15"]:righthandtraffic::maxspeedcasinglayer
     1092{
     1093    set maxspeed_left;
     1094    left-casing-color: speed_15#00da8b;
     1095}
     1096way["maxspeed:forward"="20"]!:righthandtraffic::maxspeedcasinglayer,
     1097way["maxspeed:backward"="20"]:righthandtraffic::maxspeedcasinglayer,
     1098way["maxspeed:backward"="BY:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1099way["maxspeed:backward"="RU:living_street"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1100{
     1101    set maxspeed_left;
     1102    left-casing-color: speed_20#e3cc82;
     1103}
     1104way["maxspeed:forward"="30"]!:righthandtraffic::maxspeedcasinglayer,
     1105way["maxspeed:backward"="30"]:righthandtraffic::maxspeedcasinglayer,
     1106way["maxspeed:backward"="FR:zone30"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1107{
     1108    set maxspeed_left;
     1109    left-casing-color: speed_30#4d4dff;
     1110}
     1111way["maxspeed:forward"="40"]!:righthandtraffic::maxspeedcasinglayer,
     1112way["maxspeed:backward"="40"]:righthandtraffic::maxspeedcasinglayer
     1113{
     1114    set maxspeed_left;
     1115    left-casing-color: speed_40#4d4d00;
     1116}
     1117way["maxspeed:forward"="45"]!:righthandtraffic::maxspeedcasinglayer,
     1118way["maxspeed:backward"="45"]:righthandtraffic::maxspeedcasinglayer
     1119{
     1120    set maxspeed_left;
     1121    left-casing-color: speed_45#fd6eaa;
     1122}
     1123way["maxspeed:forward"="50"]!:righthandtraffic::maxspeedcasinglayer,
     1124way["maxspeed:backward"="50"]:righthandtraffic::maxspeedcasinglayer,
     1125way["maxspeed:backward"="FR:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1126way["maxspeed:backward"="RO:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1127way["maxspeed:backward"="RS:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1128{
     1129    set maxspeed_left;
     1130    left-casing-color: speed_50#07f807;
     1131}
     1132way["maxspeed:forward"="60"]!:righthandtraffic::maxspeedcasinglayer,
     1133way["maxspeed:backward"="60"]:righthandtraffic::maxspeedcasinglayer,
     1134way["maxspeed:backward"="BY:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1135way["maxspeed:backward"="RU:urban"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1136{
     1137    set maxspeed_left;
     1138    left-casing-color: speed_60#9f9fff;
     1139}
     1140way["maxspeed:forward"="70"]!:righthandtraffic::maxspeedcasinglayer,
     1141way["maxspeed:backward"="70"]:righthandtraffic::maxspeedcasinglayer
     1142{
     1143    set maxspeed_left;
     1144    left-casing-color: speed_70#ee8b00;
     1145}
     1146way["maxspeed:forward"="80"]!:righthandtraffic::maxspeedcasinglayer,
     1147way["maxspeed:backward"="80"]:righthandtraffic::maxspeedcasinglayer,
     1148way["maxspeed:backward"="FR:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1149way["maxspeed:backward"="RS:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1150{
     1151    set maxspeed_left;
     1152    left-casing-color: speed_80#f90808;
     1153}
     1154way["maxspeed:forward"="90"]!:righthandtraffic::maxspeedcasinglayer,
     1155way["maxspeed:backward"="90"]:righthandtraffic::maxspeedcasinglayer,
     1156way["maxspeed:backward"="BY:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1157way["maxspeed:backward"="RO:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1158way["maxspeed:backward"="RU:rural"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1159{
     1160    set maxspeed_left;
     1161    left-casing-color: speed_90#07f8f8;
     1162}
     1163way["maxspeed:forward"="100"]!:righthandtraffic::maxspeedcasinglayer,
     1164way["maxspeed:backward"="100"]:righthandtraffic::maxspeedcasinglayer,
     1165way["maxspeed:backward"="RO:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1166way["maxspeed:backward"="RS:trunk"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1167{
     1168    set maxspeed_left;
     1169    left-casing-color: speed_100#f807f8;
     1170}
     1171way["maxspeed:forward"="110"]!:righthandtraffic::maxspeedcasinglayer,
     1172way["maxspeed:backward"="110"]:righthandtraffic::maxspeedcasinglayer,
     1173way["maxspeed:backward"="BY:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1174way["maxspeed:backward"="RU:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1175{
     1176    set maxspeed_left;
     1177    left-casing-color: speed_110#7807f8;
     1178}
     1179way["maxspeed:forward"="120"]!:righthandtraffic::maxspeedcasinglayer,
     1180way["maxspeed:backward"="120"]:righthandtraffic::maxspeedcasinglayer
     1181{
     1182    set maxspeed_left;
     1183    left-casing-color: speed_120#b69b20;
     1184}
     1185way["maxspeed:forward"="130"]!:righthandtraffic::maxspeedcasinglayer,
     1186way["maxspeed:backward"="130"]:righthandtraffic::maxspeedcasinglayer,
     1187way["maxspeed:backward"="FR:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1188way["maxspeed:backward"="RO:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer,
     1189way["maxspeed:backward"="RS:motorway"][setting("implicit")]:righthandtraffic::maxspeedcasinglayer
     1190{
     1191    set maxspeed_left;
     1192    left-casing-color: speed_130#c0f100;
     1193}
     1194way["maxspeed:forward"="140"]!:righthandtraffic::maxspeedcasinglayer,
     1195way["maxspeed:backward"="140"]:righthandtraffic::maxspeedcasinglayer
     1196{
     1197    set maxspeed_left;
     1198    left-casing-color: speed_140#438100;
     1199}
     1200/* 5.2 - mph */
     1201way["maxspeed:forward"="5 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1202way["maxspeed:backward"="5 mph"]:righthandtraffic::maxspeedcasinglayer
     1203{
     1204    set maxspeed_left;
     1205    left-casing-color: speed_5_mph#b80022;
     1206}
     1207way["maxspeed:forward"="10 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1208way["maxspeed:backward"="10 mph"]:righthandtraffic::maxspeedcasinglayer
     1209{
     1210    set maxspeed_left;
     1211    left-casing-color: speed_10_mph#00da8b;
     1212}
     1213way["maxspeed:forward"="15 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1214way["maxspeed:backward"="15 mph"]:righthandtraffic::maxspeedcasinglayer
     1215{
     1216    set maxspeed_left;
     1217    left-casing-color: speed_15_mph#e3cc82;
     1218}
     1219way["maxspeed:forward"="20 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1220way["maxspeed:backward"="20 mph"]:righthandtraffic::maxspeedcasinglayer
     1221{
     1222    set maxspeed_left;
     1223    left-casing-color: speed_20_mph#4d4dff;
     1224}
     1225way["maxspeed:forward"="25 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1226way["maxspeed:backward"="25 mph"]:righthandtraffic::maxspeedcasinglayer
     1227{
     1228    set maxspeed_left;
     1229    left-casing-color: speed_25_mph#4d4d00;
     1230}
     1231way["maxspeed:forward"="30 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1232way["maxspeed:backward"="30 mph"]:righthandtraffic::maxspeedcasinglayer
     1233{
     1234    set maxspeed_left;
     1235    left-casing-color: speed_30_mph#fd6eaa;
     1236}
     1237way["maxspeed:forward"="35 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1238way["maxspeed:backward"="35 mph"]:righthandtraffic::maxspeedcasinglayer
     1239{
     1240    set maxspeed_left;
     1241    left-casing-color: speed_35_mph#07f807;
     1242}
     1243way["maxspeed:forward"="40 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1244way["maxspeed:backward"="40 mph"]:righthandtraffic::maxspeedcasinglayer
     1245{
     1246    set maxspeed_left;
     1247    left-casing-color: speed_40_mph#9f9fff;
     1248}
     1249way["maxspeed:forward"="45 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1250way["maxspeed:backward"="45 mph"]:righthandtraffic::maxspeedcasinglayer
     1251{
     1252    set maxspeed_left;
     1253    left-casing-color: speed_45_mph#ee8b00;
     1254}
     1255way["maxspeed:forward"="50 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1256way["maxspeed:backward"="50 mph"]:righthandtraffic::maxspeedcasinglayer
     1257{
     1258    set maxspeed_left;
     1259    left-casing-color: speed_50_mph#f90808;
     1260}
     1261way["maxspeed:forward"="55 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1262way["maxspeed:backward"="55 mph"]:righthandtraffic::maxspeedcasinglayer
     1263{
     1264    set maxspeed_left;
     1265    left-casing-color: speed_55_mph#07f8f8;
     1266}
     1267way["maxspeed:forward"="60 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1268way["maxspeed:backward"="60 mph"]:righthandtraffic::maxspeedcasinglayer
     1269{
     1270    set maxspeed_left;
     1271    left-casing-color: speed_60_mph#f807f8;
     1272}
     1273way["maxspeed:forward"="65 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1274way["maxspeed:backward"="65 mph"]:righthandtraffic::maxspeedcasinglayer
     1275{
     1276    set maxspeed_left;
     1277    left-casing-color: speed_65_mph#7807f8;
     1278}
     1279way["maxspeed:forward"="70 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1280way["maxspeed:backward"="70 mph"]:righthandtraffic::maxspeedcasinglayer
     1281{
     1282    set maxspeed_left;
     1283    left-casing-color: speed_70_mph#b69b20;
     1284}
     1285way["maxspeed:forward"="75 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1286way["maxspeed:backward"="75 mph"]:righthandtraffic::maxspeedcasinglayer
     1287{
     1288    set maxspeed_left;
     1289    left-casing-color: speed_75_mph#c0f100;
     1290}
     1291way["maxspeed:forward"="80 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1292way["maxspeed:backward"="80 mph"]:righthandtraffic::maxspeedcasinglayer
     1293{
     1294    set maxspeed_left;
     1295    left-casing-color: speed_80_mph#438100;
     1296}
     1297way["maxspeed:forward"="85 mph"]!:righthandtraffic::maxspeedcasinglayer,
     1298way["maxspeed:backward"="85 mph"]:righthandtraffic::maxspeedcasinglayer
     1299{
     1300    set maxspeed_left;
     1301    left-casing-color: speed_85_mph#725600;
     1302}
     1303
     1304/* 5.3 - conditional lefthand-forward and righthand-backward maxspeed */
     1305way.cond_forward_kmh!:righthandtraffic::maxspeedcasinglayer,
     1306way.cond_backward_kmh:righthandtraffic::maxspeedcasinglayer,
     1307way.cond_forward_mph!:righthandtraffic::maxspeedcasinglayer,
     1308way.cond_backward_mph:righthandtraffic::maxspeedcasinglayer
     1309{
     1310    set maxspeed_left_cond;
     1311    left-casing-dashes: 55,25;
     1312}
     1313/* 5.3.1 - kmh */
     1314way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="none"]!:righthandtraffic::maxspeedcasinglayer,
     1315way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="none"]:righthandtraffic::maxspeedcasinglayer
     1316{
     1317    left-casing-dashes-background-color: speed_none#febede;
     1318}
     1319way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer,
     1320way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer
     1321{
     1322    left-casing-dashes-background-color: speed_5#ff5656;
     1323}
     1324way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer,
     1325way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer
     1326{
     1327    left-casing-dashes-background-color: speed_10#b80022;
     1328}
     1329way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer,
     1330way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer
     1331{
     1332    left-casing-dashes-background-color: speed_15#00da8b;
     1333}
     1334way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer,
     1335way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer
     1336{
     1337    left-casing-dashes-background-color: speed_20#e3cc82;
     1338}
     1339way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer,
     1340way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer
     1341{
     1342    left-casing-dashes-background-color: speed_30#4d4dff;
     1343}
     1344way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer,
     1345way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer
     1346{
     1347    left-casing-dashes-background-color: speed_40#4d4d00;
     1348}
     1349way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer,
     1350way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer
     1351{
     1352    left-casing-dashes-background-color: speed_45#fd6eaa;
     1353}
     1354way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer,
     1355way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer
     1356{
     1357    left-casing-dashes-background-color: speed_50#07f807;
     1358}
     1359way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer,
     1360way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer
     1361{
     1362    left-casing-dashes-background-color: speed_60#9f9fff;
     1363}
     1364way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer,
     1365way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer
     1366{
     1367    left-casing-dashes-background-color: speed_70#ee8b00;
     1368}
     1369way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="80"]!:righthandtraffic::maxspeedcasinglayer,
     1370way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="80"]:righthandtraffic::maxspeedcasinglayer
     1371{
     1372    left-casing-dashes-background-color: speed_80#f90808;
     1373}
     1374way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="90"]!:righthandtraffic::maxspeedcasinglayer,
     1375way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="90"]:righthandtraffic::maxspeedcasinglayer
     1376{
     1377    left-casing-dashes-background-color: speed_90#07f8f8;
     1378}
     1379way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="100"]!:righthandtraffic::maxspeedcasinglayer,
     1380way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="100"]:righthandtraffic::maxspeedcasinglayer
     1381{
     1382    left-casing-dashes-background-color: speed_100#f807f8;
     1383}
     1384way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="110"]!:righthandtraffic::maxspeedcasinglayer,
     1385way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="110"]:righthandtraffic::maxspeedcasinglayer
     1386{
     1387    left-casing-dashes-background-color: speed_110#7807f8;
     1388}
     1389way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="120"]!:righthandtraffic::maxspeedcasinglayer,
     1390way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="120"]:righthandtraffic::maxspeedcasinglayer
     1391{
     1392    left-casing-dashes-background-color: speed_120#b69b20;
     1393}
     1394way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="130"]!:righthandtraffic::maxspeedcasinglayer,
     1395way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="130"]:righthandtraffic::maxspeedcasinglayer
     1396{
     1397    left-casing-dashes-background-color: speed_130#c0f100;
     1398}
     1399way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedcasinglayer)="140"]!:righthandtraffic::maxspeedcasinglayer,
     1400way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedcasinglayer)="140"]:righthandtraffic::maxspeedcasinglayer
     1401{
     1402    left-casing-dashes-background-color: speed_140#438100;
     1403}
     1404/* 5.3.2 - mph */
     1405way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="5"]!:righthandtraffic::maxspeedcasinglayer,
     1406way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="5"]:righthandtraffic::maxspeedcasinglayer
     1407{
     1408    left-casing-dashes-background-color: speed_5_mph#b80022;
     1409}
     1410way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="10"]!:righthandtraffic::maxspeedcasinglayer,
     1411way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="10"]:righthandtraffic::maxspeedcasinglayer
     1412{
     1413    left-casing-dashes-background-color: speed_10_mph#00da8b;
     1414}
     1415way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="15"]!:righthandtraffic::maxspeedcasinglayer,
     1416way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="15"]:righthandtraffic::maxspeedcasinglayer
     1417{
     1418    left-casing-dashes-background-color: speed_15_mph#e3cc82;
     1419}
     1420way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="20"]!:righthandtraffic::maxspeedcasinglayer,
     1421way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="20"]:righthandtraffic::maxspeedcasinglayer
     1422{
     1423    left-casing-dashes-background-color: speed_20_mph#4d4dff;
     1424}
     1425way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="25"]!:righthandtraffic::maxspeedcasinglayer,
     1426way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="25"]:righthandtraffic::maxspeedcasinglayer
     1427{
     1428    left-casing-dashes-background-color: speed_25_mph#4d4d00;
     1429}
     1430way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="30"]!:righthandtraffic::maxspeedcasinglayer,
     1431way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="30"]:righthandtraffic::maxspeedcasinglayer
     1432{
     1433    left-casing-dashes-background-color: speed_30_mph#fd6eaa;
     1434}
     1435way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="35"]!:righthandtraffic::maxspeedcasinglayer,
     1436way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="35"]:righthandtraffic::maxspeedcasinglayer
     1437{
     1438    left-casing-dashes-background-color: speed_35_mph#07f807;
     1439}
     1440way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="40"]!:righthandtraffic::maxspeedcasinglayer,
     1441way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="40"]:righthandtraffic::maxspeedcasinglayer
     1442{
     1443    left-casing-dashes-background-color: speed_40_mph#9f9fff;
     1444}
     1445way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="45"]!:righthandtraffic::maxspeedcasinglayer,
     1446way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="45"]:righthandtraffic::maxspeedcasinglayer
     1447{
     1448    left-casing-dashes-background-color: speed_45_mph#ee8b00;
     1449}
     1450way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="50"]!:righthandtraffic::maxspeedcasinglayer,
     1451way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="50"]:righthandtraffic::maxspeedcasinglayer
     1452{
     1453    left-casing-dashes-background-color: speed_50_mph#f90808;
     1454}
     1455way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="55"]!:righthandtraffic::maxspeedcasinglayer,
     1456way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="55"]:righthandtraffic::maxspeedcasinglayer
     1457{
     1458    left-casing-dashes-background-color: speed_55_mph#07f8f8;
     1459}
     1460way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="60"]!:righthandtraffic::maxspeedcasinglayer,
     1461way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="60"]:righthandtraffic::maxspeedcasinglayer
     1462{
     1463    left-casing-dashes-background-color: speed_60_mph#f807f8;
     1464}
     1465way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="65"]!:righthandtraffic::maxspeedcasinglayer,
     1466way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="65"]:righthandtraffic::maxspeedcasinglayer
     1467{
     1468    left-casing-dashes-background-color: speed_65_mph#7807f8;
     1469}
     1470way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="70"]!:righthandtraffic::maxspeedcasinglayer,
     1471way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="70"]:righthandtraffic::maxspeedcasinglayer
     1472{
     1473    left-casing-dashes-background-color: speed_70_mph#b69b20;
     1474}
     1475way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="75"]!:righthandtraffic::maxspeedcasinglayer,
     1476way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="75"]:righthandtraffic::maxspeedcasinglayer
     1477{
     1478    left-casing-dashes-background-color: speed_75_mph#c0f100;
     1479}
     1480way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="80"]!:righthandtraffic::maxspeedcasinglayer,
     1481way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="80"]:righthandtraffic::maxspeedcasinglayer
     1482{
     1483    left-casing-dashes-background-color: speed_80_mph#438100;
     1484}
     1485way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedcasinglayer)="85"]!:righthandtraffic::maxspeedcasinglayer,
     1486way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedcasinglayer)="85"]:righthandtraffic::maxspeedcasinglayer
     1487{
     1488    left-casing-dashes-background-color: speed_85_mph#725600;
     1489}
     1490
     1491/* 5.4 - general rules */
     1492way.maxspeed_left::maxspeedcasinglayer,
     1493way.maxspeed_left_cond::maxspeedcasinglayer
     1494{
     1495    left-casing-width: 6;
     1496    left-casing-offset: 0;
     1497    major-z-index: 3;
     1498    z-index: -1;
     1499}
     1500way|z16.maxspeed_left::maxspeedcasinglayer,
     1501way|z16.maxspeed_left_cond::maxspeedcasinglayer
     1502{
     1503    left-casing-width: 5;
     1504}
     1505way|z-15.maxspeed_left::maxspeedcasinglayer,
     1506way|z-15.maxspeed_left_cond::maxspeedcasinglayer
     1507{
     1508    left-casing-width: 4;
     1509}
     1510way.maxspeed_left_cond!.maxspeed_left::maxspeedcasinglayer
     1511{
     1512    left-casing-opacity: 0;
     1513    left-casing-dashes-background-opacity: 1;
     1514}
     1515way.maxspeed_left[maxspeed:variable:forward]!:righthandtraffic::maxspeedcasinglayer,
     1516way.maxspeed_left[maxspeed:variable:backward]:righthandtraffic::maxspeedcasinglayer,
     1517way.maxspeed_left_cond[maxspeed:variable:forward]!:righthandtraffic::maxspeedcasinglayer,
     1518way.maxspeed_left_cond[maxspeed:variable:backward]:righthandtraffic::maxspeedcasinglayer
     1519{
     1520    left-casing-dashes: 34,6;
     1521}
     1522
    6761523/*************************************/
     1524
     1525/* 6 - display maxspeed values as text (text always in default layer) */
     1526way[setting("textdisplay")][maxspeed]
     1527{
     1528    maxspeedvalues: tag(maxspeed);
     1529    set text_available;
     1530}
     1531way[setting("textdisplay")][maxspeed:forward]
     1532{
     1533    maxspeedvalues: concat(prop(maxspeedvalues), "  fw", tag("maxspeed:forward"));
     1534    set text_available;
     1535}
     1536way[setting("textdisplay")][maxspeed:backward]
     1537{
     1538    maxspeedvalues: concat(prop(maxspeedvalues), "  bw", tag("maxspeed:backward"));
     1539    set text_available;
     1540}
     1541
     1542/* get rid of the text after "@" as it can be a long text while keeping mph and knots */
     1543way[setting("textdisplay")][maxspeed:conditional]
     1544{
     1545    maxspeedvalues: concat(prop(maxspeedvalues), "  c", get(split(" @", tag("maxspeed:conditional")), 0));
     1546    set text_available;
     1547}
     1548way[setting("textdisplay")][maxspeed:forward:conditional]
     1549{
     1550    maxspeedvalues: concat(prop(maxspeedvalues), "  fwc", get(split(" @", tag("maxspeed:forward:conditional")), 0));
     1551    set text_available;
     1552}
     1553way[setting("textdisplay")][maxspeed:backward:conditional]
     1554{
     1555    maxspeedvalues: concat(prop(maxspeedvalues), "  bwc", get(split(" @", tag("maxspeed:backward:conditional")), 0));
     1556    set text_available;
     1557}
     1558
     1559way[setting("textdisplay")][maxspeed:advisory]
     1560{
     1561    maxspeedvalues: concat(prop(maxspeedvalues), "  a", tag("maxspeed:advisory"));
     1562    set text_available;
     1563}
     1564way[setting("textdisplay")][maxspeed:advisory:forward]
     1565{
     1566    maxspeedvalues: concat(prop(maxspeedvalues), "  afw", tag("maxspeed:advisory:forward"));
     1567    set text_available;
     1568}
     1569way[setting("textdisplay")][maxspeed:advisory:backward]
     1570{
     1571    maxspeedvalues: concat(prop(maxspeedvalues), "  abw", tag("maxspeed:advisory:backward"));
     1572    set text_available;
     1573}
     1574
     1575/* display "v" only for the values yes or other reasons (as the reason can be a long text), but not for value no */
     1576way[setting("textdisplay")][maxspeed:variable][maxspeed:variable!=no]
     1577{
     1578    maxspeedvalues: concat(prop(maxspeedvalues), "  v");
     1579    set text_available;
     1580}
     1581way[setting("textdisplay")][maxspeed:variable:forward][maxspeed:variable:forward!=no]
     1582{
     1583    maxspeedvalues: concat(prop(maxspeedvalues), "  vfw");
     1584    set text_available;
     1585}
     1586way[setting("textdisplay")][maxspeed:variable:backward][maxspeed:variable:backward!=no]
     1587{
     1588    maxspeedvalues: concat(prop(maxspeedvalues), "  vbw");
     1589    set text_available;
     1590}
     1591
     1592way|z18-[setting("textdisplay")].text_available
     1593{
     1594    font-size: 13;
     1595    text-color: black;
     1596    text-halo-radius: 2;
     1597    text-halo-color: white;
     1598    text: prop(maxspeedvalues);
     1599}
     1600
     1601
    6771602/*************************************/
    6781603
    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
    686 {
    687         set correct_value;
    688 }
    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
    695 {
    696         set correct_value_forward;
    697 }
    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
    704 {
    705         set correct_value_backward;
    706 }
    707 
    708 way["maxspeed"]!.correct_value::maxspeed,
    709 way["maxspeed:forward"]!.correct_value_forward::maxspeed,
    710 way["maxspeed:backward"]!.correct_value_backward::maxspeed
    711 {
    712         color: yellow;
    713         dashes-background-color: red;
    714         dashes: 4,24;
    715         opacity: 1;
    716         width: 5;
    717         text: tr("no correct value for maxspeed!");
    718         text-color: black;
    719         font-size: 11;
    720         text-halo-color: red;
    721         text-halo-radius: 2;
    722         casing-width: 1;
    723         casing-color: yellow;
    724 }
    725 
    726 /* report if maxspeed direction is opposed to oneway direction */
     1604/* 7 - error reporting (text always in default layer, overwrites text: prop(maxspeedvalues))*/
     1605/* 7.1 - report wrong value of maxspeed (knots has no style support but should not produce a warning anyway) */
     1606way[maxspeed=~/^[1-9][0-9]*( mph| knots)?$/],
     1607way[maxspeed=signals],
     1608way[maxspeed=none],
     1609way[maxspeed=~/^(BY|FR|RO|RS|RU):(urban|rural|motorway)/][setting("implicit")],
     1610way[maxspeed=~/^(FR):(zone30)/][setting("implicit")],
     1611way[maxspeed=~/^(RO|RS):(trunk)/][setting("implicit")],
     1612way[maxspeed=~/^(BY|RS|RU):(living_street)/][setting("implicit")]
     1613{
     1614    set correct_value;
     1615}
     1616way[maxspeed:forward=~/^[1-9][0-9]*( mph| knots)?$/],
     1617way[maxspeed:forward=signals],
     1618way[maxspeed:forward=none],
     1619way[maxspeed:forward=~/^(BY|FR|RO|RS|RU):(urban|rural|motorway)/][setting("implicit")],
     1620way[maxspeed:forward=~/^(FR):(zone30)/][setting("implicit")],
     1621way[maxspeed:forward=~/^(RO|RS):(trunk)/][setting("implicit")],
     1622way[maxspeed:forward=~/^(BY|RS|RU):(living_street)/][setting("implicit")]
     1623{
     1624    set correct_value_forward;
     1625}
     1626way[maxspeed:backward=~/^[1-9][0-9]*( mph| knots)?$/],
     1627way[maxspeed:backward=signals],
     1628way[maxspeed:backward=none],
     1629way[maxspeed:backward=~/^(BY|FR|RO|RS|RU):(urban|rural|motorway)/][setting("implicit")],
     1630way[maxspeed:backward=~/^(FR):(zone30)/][setting("implicit")],
     1631way[maxspeed:backward=~/^(RO|RS):(trunk)/][setting("implicit")],
     1632way[maxspeed:backward=~/^(BY|RS|RU):(living_street)/][setting("implicit")]
     1633{
     1634    set correct_value_backward;
     1635}
     1636
     1637way["maxspeed"]!.correct_value,
     1638way["maxspeed:forward"]!.correct_value_forward,
     1639way["maxspeed:backward"]!.correct_value_backward
     1640{
     1641    color: yellow;
     1642    dashes-background-color: red;
     1643    dashes: 4,24;
     1644    width: 5;
     1645    text: tr("wrong maxspeed value!");
     1646    text-color: black;
     1647    font-size: 11;
     1648    text-halo-color: red;
     1649    text-halo-radius: 2;
     1650    left-casing-width: 1;
     1651    left-casing-color: yellow;
     1652    right-casing-width: 1;
     1653    right-casing-color: yellow;
     1654    major-z-index: 3;
     1655}
     1656
     1657
     1658/* 7.2 - report wrong value of maxspeed:conditional */
     1659way["maxspeed:conditional"=~/^(none|[1-9][0-9]*( mph| knots)?) @ /]
     1660{
     1661    set correct_value_cond;
     1662}
     1663
     1664way["maxspeed:forward:conditional"=~/^(none|[1-9][0-9]*( mph| knots)?) @ /]
     1665{
     1666    set correct_value_forward_cond;
     1667}
     1668
     1669
     1670way["maxspeed:backward:conditional"=~/^(none|[1-9][0-9]*( mph| knots)?) @ /]
     1671{
     1672    set correct_value_backward_cond;
     1673}
     1674
     1675
     1676way["maxspeed:conditional"]!.correct_value_cond,
     1677way["maxspeed:forward:conditional"]!.correct_value_forward_cond,
     1678way["maxspeed:backward:conditional"]!.correct_value_backward_cond
     1679{
     1680    color: yellow;
     1681    dashes-background-color: red;
     1682    dashes: 4,24;
     1683    width: 5;
     1684    text: tr("wrong conditional maxspeed value!");
     1685    text-color: black;
     1686    font-size: 11;
     1687    text-halo-color: red;
     1688    text-halo-radius: 2;
     1689    left-casing-width: 1;
     1690    left-casing-color: yellow;
     1691    right-casing-width: 1;
     1692    right-casing-color: yellow;
     1693    major-z-index: 3;
     1694}
     1695
     1696/* 7.3 - report conditional maxspeed without default maxspeed */
     1697way["maxspeed:conditional"][!"maxspeed"],
     1698way["maxspeed:forward:conditional"][!"maxspeed:forward"][!"maxspeed"],
     1699way["maxspeed:backward:conditional"][!"maxspeed:backward"][!"maxspeed"]
     1700{
     1701    color: yellow;
     1702    dashes-background-color: red;
     1703    dashes: 4,24;
     1704    width: 5;
     1705    text: tr("conditional maxspeed without default maxspeed!");
     1706    text-color: black;
     1707    font-size: 11;
     1708    text-halo-color: red;
     1709    text-halo-radius: 2;
     1710    left-casing-width: 1;
     1711    left-casing-color: yellow;
     1712    right-casing-width: 1;
     1713    right-casing-color: yellow;
     1714    major-z-index: 3;
     1715
     1716}
     1717
     1718/* 7.4 - report wrong value of maxspeed:advisory */
     1719way[maxspeed:advisory=~/^[1-9][0-9]*( mph| knots)?$/]
     1720{
     1721    set correct_value_advisory;
     1722}
     1723way[maxspeed:advisory:forward=~/^[1-9][0-9]*( mph| knots)?$/]
     1724{
     1725    set correct_value_advisory_forward;
     1726}
     1727way[maxspeed:advisory:backward=~/^[1-9][0-9]*( mph| knots)?$/]
     1728{
     1729    set correct_value_advisory_backward;
     1730}
     1731
     1732way["maxspeed:advisory"]!.correct_value_advisory,
     1733way["maxspeed:advisory:forward"]!.correct_value_advisory_forward,
     1734way["maxspeed:advisory:backward"]!.correct_value_advisory_backward
     1735{
     1736    color: yellow;
     1737    dashes-background-color: red;
     1738    dashes: 4,24;
     1739    width: 5;
     1740    text: tr("wrong maxspeed:advisory value!");
     1741    text-color: black;
     1742    font-size: 11;
     1743    text-halo-color: red;
     1744    text-halo-radius: 2;
     1745    left-casing-width: 1;
     1746    left-casing-color: yellow;
     1747    right-casing-width: 1;
     1748    right-casing-color: yellow;
     1749    major-z-index: 3;
     1750}
     1751
     1752/* 7.5 - report if maxspeed direction is opposed to oneway direction */
    7271753way["maxspeed:backward"][oneway?],
    7281754way["maxspeed:forward"][oneway=-1]
    7291755{
    730         color: yellow;
    731         dashes-background-color: red;
    732         dashes: 4,24;
    733         opacity: 1;
    734         width: 5;
    735         text: tr("maxspeed opposed to oneway direction!");
    736         text-color: black;
    737         font-size: 11;
    738         text-halo-color: red;
    739         text-halo-radius: 2;
    740         casing-width: 1;
    741         casing-color: yellow;
     1756    color: yellow;
     1757    dashes-background-color: red;
     1758    dashes: 4,24;
     1759    width: 5;
     1760    text: tr("maxspeed opposed to oneway direction!");
     1761    text-color: black;
     1762    font-size: 11;
     1763    text-halo-color: red;
     1764    text-halo-radius: 2;
     1765    left-casing-width: 1;
     1766    left-casing-color: yellow;
     1767    right-casing-width: 1;
     1768    right-casing-color: yellow;
     1769    major-z-index: 3;
    7421770}
    7431771}}}