Changes between Version 22 and Version 52 of Styles/Maxspeed


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

Legend:

Unmodified
Added
Removed
Modified
  • Styles/Maxspeed

    v22 v52  
    11[[TranslatedPages]]
    2 = [[Image(maxspeed_icon.svg,36,middle)]] Maxspeed style =
     2= [[Image(maxspeed_icon.svg,36,middle,inline)]] Maxspeed style =
    33[[PageOutline(2-9)]]
    44== Description ==
    5 This style adds display of driving speed related information to the map. Therefore the keys [[osmwiki:Key:maxspeed|maxspeed]], maxspeed:forward and maxspeed:backward are evaluated. [[left-right-hand-traffic|Left-hand and right-hand traffic]] are taken into account. Example:
     5This style adds display of driving speed related information to the map view. Therefore the following keys are evaluated:
     6* [[osmwiki:Key:maxspeed|maxspeed]]
     7* maxspeed:forward
     8* maxspeed:backward
     9* [[osmwiki: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 2.0.xx to 2.1.xx ===
    19 * 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.
     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.
    2090* Add style for `maxspeed=5`
    2191* Change color of `maxspeed=none` for better visibility on aerial imagery
    22 === Version 1.5 to 2.0.xx ===
     92=== Version 2.0 ===
    2393* change from xml to mapcss
    24 * support of maxspeed:forward and maxspeed:backward (considering left and right hand traffic)
    25 * support of maxspeed:variable, maxspeed:variable:forward and maxspeed:variable:backward (dashed line)
    26 * highlight color is now below the highway line, to see the highway type (residential, secondary, motorway,...)
    27 * removed support of values without space between number and unit (e.g. ''35mph'')
    28 * added error message for wrong maxspeed values (like ''35mph'' or ''35 m/h'')
    29 * added error message if maxspeed direction is opposed to oneway direction
    30 * adjusted to most used values according to [http://taginfo.openstreetmap.org/keys/maxspeed#values taginfo]
    31  * added ''20'', ''45'', ''none''
    32  * 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`
    33103* adjusted opacities, widths and some colors for better display and distinction between the colors
    34104* widths depends on zoom level
    35 
     105=== Version 1.5 ===
     106* Start version
    36107
    37108== Code ==
     
    40111#!style type="mapcss"
    41112
     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 */
    42157meta
    43158{
    44         title: "Maxspeed";
    45         version: "2.1.[[revision]]_[[date]]";
    46         description: "Display maxspeed values in JOSM map display.";
    47         icon: "maxspeed_icon.svg";
    48         author: "Rubke, Dirk Stöcker, Vclaw, Klumbumbus";
    49         link: "http://josm.openstreetmap.de/wiki/Styles/Maxspeed";
    50         watch-modified: true;
    51         min-josm-version: "7193"; /* because of pseudoclass :righthandtraffic */
    52 }
    53 
     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}
    54167meta[lang=de]
    55168{
    56         title: "Höchstgeschwindigkeit";
    57         description: "Anzeige der Höchstgeschwindigkeiten in der JOSM-Kartenanzeige.";
    58         link: "http://josm.openstreetmap.de/wiki/De:Styles/Maxspeed";
    59 }
    60 /* create settings */
    61 setting::RU {
    62   type: boolean;
    63   label: tr("Support maxspeed=RU:* tagging scheme");
    64   default: true;
    65 }
    66 /* 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 */
    67190way["tiger:reviewed"=no]::core_tiger
    68191{
    69         opacity: 0;
    70 }
    71 /* disable street names from default internal mappaint style */
     192    opacity: 0;
     193}
     194
     195/* 2.3 - disable street names from default internal mappaint style */
    72196way[highway]
    73197{
    74         text: none;
    75 }
    76 
    77 /* display maxspeed=* */
    78 way["maxspeed"="none"]::maxspeed
    79 {
    80         set maxspeed;
    81         color: speed_none#febede;
    82 }
    83         /* km/h */
    84 way["maxspeed"="5"]::maxspeed
    85 {
    86         set maxspeed;
    87         color: speed_5#ff5656;
    88 }
    89 way["maxspeed"="10"]::maxspeed
    90 {
    91         set maxspeed;
    92         color: speed_10#b80022;
    93 }
    94 way["maxspeed"="15"]::maxspeed
    95 {
    96         set maxspeed;
    97         color: speed_15#00da8b;
    98 }
    99 way["maxspeed"="20"]::maxspeed,
    100 way["maxspeed"="RU:living_street"][setting("RU")]::maxspeed
    101 {
    102         set maxspeed;
    103         color: speed_20#e3cc82;
    104 }
    105 way["maxspeed"="30"]::maxspeed
    106 {
    107         set maxspeed;
    108         color: speed_30#4d4dff;
    109 }
    110 way["maxspeed"="40"]::maxspeed
    111 {
    112         set maxspeed;
    113         color: speed_40#4d4d00;
    114 }
    115 way["maxspeed"="45"]::maxspeed
    116 {
    117         set maxspeed;
    118         color: speed_45#ff529a;
    119 }
    120 way["maxspeed"="50"]::maxspeed
    121 {
    122         set maxspeed;
    123         color: speed_50#07f807;
    124 }
    125 way["maxspeed"="60"]::maxspeed,
    126 way["maxspeed"="RU:urban"][setting("RU")]::maxspeed
    127 {
    128         set maxspeed;
    129         color: speed_60#9f9fff;
    130 }
    131 way["maxspeed"="70"]::maxspeed
    132 {
    133         set maxspeed;
    134         color: speed_70#ee8b00;
    135 }
    136 way["maxspeed"="80"]::maxspeed
    137 {
    138         set maxspeed;
    139         color: speed_80#f90808;
    140 }
    141 way["maxspeed"="90"]::maxspeed,
    142 way["maxspeed"="RU:rural"][setting("RU")]::maxspeed
    143 {
    144         set maxspeed;
    145         color: speed_90#07f8f8;
    146 }
    147 way["maxspeed"="100"]::maxspeed
    148 {
    149         set maxspeed;
    150         color: speed_100#f807f8;
    151 }
    152 way["maxspeed"="110"]::maxspeed,
    153 way["maxspeed"="RU:motorway"][setting("RU")]::maxspeed
    154 {
    155         set maxspeed;
    156         color: speed_110#7807f8;
    157 }
    158 way["maxspeed"="120"]::maxspeed
    159 {
    160         set maxspeed;
    161         color: speed_120#ccad24;
    162 }
    163 way["maxspeed"="130"]::maxspeed
    164 {
    165         set maxspeed;
    166         color: speed_130#c0f100;
    167 }
    168         /* mph */
    169 way["maxspeed"="5 mph"]::maxspeed
    170 {
    171         set maxspeed;
    172         color: speed_5_mph#b80022;
    173 }
    174 way["maxspeed"="10 mph"]::maxspeed
    175 {
    176         set maxspeed;
    177         color: speed_10_mph#00da8b;
    178 }
    179 way["maxspeed"="15 mph"]::maxspeed
    180 {
    181         set maxspeed;
    182         color: speed_15_mph#e3cc82;
    183 }
    184 way["maxspeed"="20 mph"]::maxspeed
    185 {
    186         set maxspeed;
    187         color: speed_20_mph#4d4dff;
    188 }
    189 way["maxspeed"="25 mph"]::maxspeed
    190 {
    191         set maxspeed;
    192         color: speed_25_mph#4d4d00;
    193 }
    194 way["maxspeed"="30 mph"]::maxspeed
    195 {
    196         set maxspeed;
    197         color: speed_30_mph#ff529a;
    198 }
    199 way["maxspeed"="35 mph"]::maxspeed
    200 {
    201         set maxspeed;
    202         color: speed_35_mph#07f807;
    203 }
    204 way["maxspeed"="40 mph"]::maxspeed
    205 {
    206         set maxspeed;
    207         color: speed_40_mph#9f9fff;
    208 }
    209 way["maxspeed"="45 mph"]::maxspeed
    210 {
    211         set maxspeed;
    212         color: speed_45_mph#ee8b00;
    213 }
    214 way["maxspeed"="50 mph"]::maxspeed
    215 {
    216         set maxspeed;
    217         color: speed_50_mph#f90808;
    218 }
    219 way["maxspeed"="55 mph"]::maxspeed
    220 {
    221         set maxspeed;
    222         color: speed_55_mph#07f8f8;
    223 }
    224 way["maxspeed"="60 mph"]::maxspeed
    225 {
    226         set maxspeed;
    227         color: speed_60_mph#f807f8;
    228 }
    229 way["maxspeed"="65 mph"]::maxspeed
    230 {
    231         set maxspeed;
    232         color: speed_65_mph#7807f8;
    233 }
    234 way["maxspeed"="70 mph"]::maxspeed
    235 {
    236         set maxspeed;
    237         color: speed_70_mph#ccad24;
    238 }
    239 way["maxspeed"="75 mph"]::maxspeed
    240 {
    241         set maxspeed;
    242         color: speed_75_mph#c0f100;
    243 }
    244 
    245 way.maxspeed::maxspeed
    246 {
    247         opacity: 0.75;
    248         width: 14;
    249         z-index: -1;
    250 }
    251 way|z16.maxspeed::maxspeed
    252 {
    253         width: 12;
    254 }
    255 way|z-15.maxspeed::maxspeed
    256 {
    257         width:10;
    258 }
    259 way.maxspeed[maxspeed:variable]::maxspeed
    260 {
    261         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;
    262231}
    263232
    264233/*************************************/
    265234
    266 /* display maxspeed:forward=* for righthandtraffic */
    267 /* display maxspeed:backward=* for lefthandtraffic */
    268 
    269 way["maxspeed:forward"="none"]:righthandtraffic::maxspeed,
    270 way["maxspeed:backward"="none"]!:righthandtraffic::maxspeed
    271 {
    272         set maxspeed_right;
    273         right-casing-color: speed_none#febede;
    274 }
    275         /* km/h */
    276 way["maxspeed:forward"="5"]:righthandtraffic::maxspeed,
    277 way["maxspeed:backward"="5"]!:righthandtraffic::maxspeed
    278 {
    279         set maxspeed_right;
    280         right-casing-color: speed_5#ff5656;
    281 }
    282 way["maxspeed:forward"="10"]:righthandtraffic::maxspeed,
    283 way["maxspeed:backward"="10"]!:righthandtraffic::maxspeed
    284 {
    285         set maxspeed_right;
    286         right-casing-color: speed_10#b80022;
    287 }
    288 way["maxspeed:forward"="15"]:righthandtraffic::maxspeed,
    289 way["maxspeed:backward"="15"]!:righthandtraffic::maxspeed
    290 {
    291         set maxspeed_right;
    292         right-casing-color: speed_15#00da8b;
    293 }
    294 way["maxspeed:forward"="20"]:righthandtraffic::maxspeed,
    295 way["maxspeed:backward"="20"]!:righthandtraffic::maxspeed,
    296 way["maxspeed:forward"="RU:living_street"][setting("RU")]:righthandtraffic::maxspeed
    297 /* no left hand traffic in RU, so this selector is not needed */
    298 {
    299         set maxspeed_right;
    300         right-casing-color: speed_20#e3cc82;
    301 }
    302 way["maxspeed:forward"="30"]:righthandtraffic::maxspeed,
    303 way["maxspeed:backward"="30"]!:righthandtraffic::maxspeed
    304 {
    305         set maxspeed_right;
    306         right-casing-color: speed_30#4d4dff;
    307 }
    308 way["maxspeed:forward"="40"]:righthandtraffic::maxspeed,
    309 way["maxspeed:backward"="40"]!:righthandtraffic::maxspeed
    310 {
    311         set maxspeed_right;
    312         right-casing-color: speed_40#4d4d00;
    313 }
    314 way["maxspeed:forward"="45"]:righthandtraffic::maxspeed,
    315 way["maxspeed:backward"="45"]!:righthandtraffic::maxspeed
    316 {
    317         set maxspeed_right;
    318         right-casing-color: speed_45#ff529a;
    319 }
    320 way["maxspeed:forward"="50"]:righthandtraffic::maxspeed,
    321 way["maxspeed:backward"="50"]!:righthandtraffic::maxspeed
    322 {
    323         set maxspeed_right;
    324         right-casing-color: speed_50#07f807;
    325 }
    326 way["maxspeed:forward"="60"]:righthandtraffic::maxspeed,
    327 way["maxspeed:backward"="60"]!:righthandtraffic::maxspeed,
    328 way["maxspeed:forward"="RU:urban"][setting("RU")]:righthandtraffic::maxspeed
    329 {
    330         set maxspeed_right;
    331         right-casing-color: speed_60#9f9fff;
    332 }
    333 way["maxspeed:forward"="70"]:righthandtraffic::maxspeed,
    334 way["maxspeed:backward"="70"]!:righthandtraffic::maxspeed
    335 {
    336         set maxspeed_right;
    337         right-casing-color: speed_70#ee8b00;
    338 }
    339 way["maxspeed:forward"="80"]:righthandtraffic::maxspeed,
    340 way["maxspeed:backward"="80"]!:righthandtraffic::maxspeed
    341 {
    342         set maxspeed_right;
    343         right-casing-color: speed_80#f90808;
    344 }
    345 way["maxspeed:forward"="90"]:righthandtraffic::maxspeed,
    346 way["maxspeed:backward"="90"]!:righthandtraffic::maxspeed,
    347 way["maxspeed:forward"="RU:rural"][setting("RU")]:righthandtraffic::maxspeed
    348 {
    349         set maxspeed_right;
    350         right-casing-color: speed_90#07f8f8;
    351 }
    352 way["maxspeed:forward"="100"]:righthandtraffic::maxspeed,
    353 way["maxspeed:backward"="100"]!:righthandtraffic::maxspeed
    354 {
    355         set maxspeed_right;
    356         right-casing-color: speed_100#f807f8;
    357 }
    358 way["maxspeed:forward"="110"]:righthandtraffic::maxspeed,
    359 way["maxspeed:backward"="110"]!:righthandtraffic::maxspeed,
    360 way["maxspeed:forward"="RU:motorway"][setting("RU")]:righthandtraffic::maxspeed
    361 {
    362         set maxspeed_right;
    363         right-casing-color: speed_110#7807f8;
    364 }
    365 way["maxspeed:forward"="120"]:righthandtraffic::maxspeed,
    366 way["maxspeed:backward"="120"]!:righthandtraffic::maxspeed
    367 {
    368         set maxspeed_right;
    369         right-casing-color: speed_120#ccad24;
    370 }
    371 way["maxspeed:forward"="130"]:righthandtraffic::maxspeed,
    372 way["maxspeed:backward"="130"]!:righthandtraffic::maxspeed
    373 {
    374         set maxspeed_right;
    375         right-casing-color: speed_130#c0f100;
    376 }
    377         /* mph */
    378 way["maxspeed:forward"="5 mph"]:righthandtraffic::maxspeed,
    379 way["maxspeed:backward"="5 mph"]!:righthandtraffic::maxspeed
    380 {
    381         set maxspeed_right;
    382         right-casing-color: speed_5_mph#b80022;
    383 }
    384 way["maxspeed:forward"="10 mph"]:righthandtraffic::maxspeed,
    385 way["maxspeed:backward"="10 mph"]!:righthandtraffic::maxspeed
    386 {
    387         set maxspeed_right;
    388         right-casing-color: speed_10_mph#00da8b;
    389 }
    390 way["maxspeed:forward"="15 mph"]:righthandtraffic::maxspeed,
    391 way["maxspeed:backward"="15 mph"]!:righthandtraffic::maxspeed
    392 {
    393         set maxspeed_right;
    394         right-casing-color: speed_15_mph#e3cc82;
    395 }
    396 way["maxspeed:forward"="20 mph"]:righthandtraffic::maxspeed,
    397 way["maxspeed:backward"="20 mph"]!:righthandtraffic::maxspeed
    398 {
    399         set maxspeed_right;
    400         right-casing-color: speed_20_mph#4d4dff;
    401 }
    402 way["maxspeed:forward"="25 mph"]:righthandtraffic::maxspeed,
    403 way["maxspeed:backward"="25 mph"]!:righthandtraffic::maxspeed
    404 {
    405         set maxspeed_right;
    406         right-casing-color: speed_25_mph#4d4d00;
    407 }
    408 way["maxspeed:forward"="30 mph"]:righthandtraffic::maxspeed,
    409 way["maxspeed:backward"="30 mph"]!:righthandtraffic::maxspeed
    410 {
    411         set maxspeed_right;
    412         right-casing-color: speed_30_mph#ff529a;
    413 }
    414 way["maxspeed:forward"="35 mph"]:righthandtraffic::maxspeed,
    415 way["maxspeed:backward"="35 mph"]!:righthandtraffic::maxspeed
    416 {
    417         set maxspeed_right;
    418         right-casing-color: speed_35_mph#07f807;
    419 }
    420 way["maxspeed:forward"="40 mph"]:righthandtraffic::maxspeed,
    421 way["maxspeed:backward"="40 mph"]!:righthandtraffic::maxspeed
    422 {
    423         set maxspeed_right;
    424         right-casing-color: speed_40_mph#9f9fff;
    425 }
    426 way["maxspeed:forward"="45 mph"]:righthandtraffic::maxspeed,
    427 way["maxspeed:backward"="45 mph"]!:righthandtraffic::maxspeed
    428 {
    429         set maxspeed_right;
    430         right-casing-color: speed_45_mph#ee8b00;
    431 }
    432 way["maxspeed:forward"="50 mph"]:righthandtraffic::maxspeed,
    433 way["maxspeed:backward"="50 mph"]!:righthandtraffic::maxspeed
    434 {
    435         set maxspeed_right;
    436         right-casing-color: speed_50_mph#f90808;
    437 }
    438 way["maxspeed:forward"="55 mph"]:righthandtraffic::maxspeed,
    439 way["maxspeed:backward"="55 mph"]!:righthandtraffic::maxspeed
    440 {
    441         set maxspeed_right;
    442         right-casing-color: speed_55_mph#07f8f8;
    443 }
    444 way["maxspeed:forward"="60 mph"]:righthandtraffic::maxspeed,
    445 way["maxspeed:backward"="60 mph"]!:righthandtraffic::maxspeed
    446 {
    447         set maxspeed_right;
    448         right-casing-color: speed_60_mph#f807f8;
    449 }
    450 way["maxspeed:forward"="65 mph"]:righthandtraffic::maxspeed,
    451 way["maxspeed:backward"="65 mph"]!:righthandtraffic::maxspeed
    452 {
    453         set maxspeed_right;
    454         right-casing-color: speed_65_mph#7807f8;
    455 }
    456 way["maxspeed:forward"="70 mph"]:righthandtraffic::maxspeed,
    457 way["maxspeed:backward"="70 mph"]!:righthandtraffic::maxspeed
    458 {
    459         set maxspeed_right;
    460         right-casing-color: speed_70_mph#ccad24;
    461 }
    462 way["maxspeed:forward"="75 mph"]:righthandtraffic::maxspeed,
    463 way["maxspeed:backward"="75 mph"]!:righthandtraffic::maxspeed
    464 {
    465         set maxspeed_right;
    466         right-casing-color: speed_75_mph#c0f100;
    467 }
    468 
    469 way.maxspeed_right::maxspeed
    470 {
    471         right-casing-opacity: 0.75;
    472         right-casing-width: 6;
    473         right-casing-offset: 0;
    474 }
    475 way|z16.maxspeed_right::maxspeed
    476 {
    477         right-casing-width: 5;
    478 }
    479 way|z-15.maxspeed_right::maxspeed
    480 {
    481         right-casing-width: 4;
    482 }
    483 way.maxspeed_right[maxspeed:variable:forward]:righthandtraffic::maxspeed,
    484 way.maxspeed_right[maxspeed:variable:backward]!:righthandtraffic::maxspeed
    485 {
    486         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 */
    487608}
    488609
    489610/*************************************/
    490611
    491 /* display maxspeed:forward=* for lefthandtraffic */
    492 /* display maxspeed:backward=* for righthandtraffic */
    493 
    494 way["maxspeed:forward"="none"]!:righthandtraffic::maxspeed,
    495 way["maxspeed:backward"="none"]:righthandtraffic::maxspeed
    496 {
    497         set maxspeed_left;
    498         left-casing-color: speed_none#febede;
    499 }
    500         /* km/h */
    501 way["maxspeed:forward"="5"]!:righthandtraffic::maxspeed,
    502 way["maxspeed:backward"="5"]:righthandtraffic::maxspeed
    503 {
    504         set maxspeed_left;
    505         left-casing-color: speed_5#ff5656;
    506 }
    507 way["maxspeed:forward"="10"]!:righthandtraffic::maxspeed,
    508 way["maxspeed:backward"="10"]:righthandtraffic::maxspeed
    509 {
    510         set maxspeed_left;
    511         left-casing-color: speed_10#b80022;
    512 }
    513 way["maxspeed:forward"="15"]!:righthandtraffic::maxspeed,
    514 way["maxspeed:backward"="15"]:righthandtraffic::maxspeed
    515 {
    516         set maxspeed_left;
    517         left-casing-color: speed_15#00da8b;
    518 }
    519 way["maxspeed:forward"="20"]!:righthandtraffic::maxspeed,
    520 way["maxspeed:backward"="20"]:righthandtraffic::maxspeed,
    521 way["maxspeed:backward"="RU:living_street"][setting("RU")]:righthandtraffic::maxspeed
    522 {
    523         set maxspeed_left;
    524         left-casing-color: speed_20#e3cc82;
    525 }
    526 way["maxspeed:forward"="30"]!:righthandtraffic::maxspeed,
    527 way["maxspeed:backward"="30"]:righthandtraffic::maxspeed
    528 {
    529         set maxspeed_left;
    530         left-casing-color: speed_30#4d4dff;
    531 }
    532 way["maxspeed:forward"="40"]!:righthandtraffic::maxspeed,
    533 way["maxspeed:backward"="40"]:righthandtraffic::maxspeed
    534 {
    535         set maxspeed_left;
    536         left-casing-color: speed_40#4d4d00;
    537 }
    538 way["maxspeed:forward"="45"]!:righthandtraffic::maxspeed,
    539 way["maxspeed:backward"="45"]:righthandtraffic::maxspeed
    540 {
    541         set maxspeed_left;
    542         left-casing-color: speed_45#ff529a;
    543 }
    544 way["maxspeed:forward"="50"]!:righthandtraffic::maxspeed,
    545 way["maxspeed:backward"="50"]:righthandtraffic::maxspeed
    546 {
    547         set maxspeed_left;
    548         left-casing-color: speed_50#07f807;
    549 }
    550 way["maxspeed:forward"="60"]!:righthandtraffic::maxspeed,
    551 way["maxspeed:backward"="60"]:righthandtraffic::maxspeed,
    552 way["maxspeed:backward"="RU:urban"][setting("RU")]:righthandtraffic::maxspeed
    553 {
    554         set maxspeed_left;
    555         left-casing-color: speed_60#9f9fff;
    556 }
    557 way["maxspeed:forward"="70"]!:righthandtraffic::maxspeed,
    558 way["maxspeed:backward"="70"]:righthandtraffic::maxspeed
    559 {
    560         set maxspeed_left;
    561         left-casing-color: speed_70#ee8b00;
    562 }
    563 way["maxspeed:forward"="80"]!:righthandtraffic::maxspeed,
    564 way["maxspeed:backward"="80"]:righthandtraffic::maxspeed
    565 {
    566         set maxspeed_left;
    567         left-casing-color: speed_80#f90808;
    568 }
    569 way["maxspeed:forward"="90"]!:righthandtraffic::maxspeed,
    570 way["maxspeed:backward"="90"]:righthandtraffic::maxspeed,
    571 way["maxspeed:backward"="RU:rural"][setting("RU")]:righthandtraffic::maxspeed
    572 {
    573         set maxspeed_left;
    574         left-casing-color: speed_90#07f8f8;
    575 }
    576 way["maxspeed:forward"="100"]!:righthandtraffic::maxspeed,
    577 way["maxspeed:backward"="100"]:righthandtraffic::maxspeed
    578 {
    579         set maxspeed_left;
    580         left-casing-color: speed_100#f807f8;
    581 }
    582 way["maxspeed:forward"="110"]!:righthandtraffic::maxspeed,
    583 way["maxspeed:backward"="110"]:righthandtraffic::maxspeed,
    584 way["maxspeed:backward"="RU:motorway"][setting("RU")]:righthandtraffic::maxspeed
    585 {
    586         set maxspeed_left;
    587         left-casing-color: speed_110#7807f8;
    588 }
    589 way["maxspeed:forward"="120"]!:righthandtraffic::maxspeed,
    590 way["maxspeed:backward"="120"]:righthandtraffic::maxspeed
    591 {
    592         set maxspeed_left;
    593         left-casing-color: speed_120#ccad24;
    594 }
    595 way["maxspeed:forward"="130"]!:righthandtraffic::maxspeed,
    596 way["maxspeed:backward"="130"]:righthandtraffic::maxspeed
    597 {
    598         set maxspeed_left;
    599         left-casing-color: speed_130#c0f100;
    600 }
    601         /* mph */
    602 way["maxspeed:forward"="5 mph"]!:righthandtraffic::maxspeed,
    603 way["maxspeed:backward"="5 mph"]:righthandtraffic::maxspeed
    604 {
    605         set maxspeed_left;
    606         left-casing-color: speed_5_mph#b80022;
    607 }
    608 way["maxspeed:forward"="10 mph"]!:righthandtraffic::maxspeed,
    609 way["maxspeed:backward"="10 mph"]:righthandtraffic::maxspeed
    610 {
    611         set maxspeed_left;
    612         left-casing-color: speed_10_mph#00da8b;
    613 }
    614 way["maxspeed:forward"="15 mph"]!:righthandtraffic::maxspeed,
    615 way["maxspeed:backward"="15 mph"]:righthandtraffic::maxspeed
    616 {
    617         set maxspeed_left;
    618         left-casing-color: speed_15_mph#e3cc82;
    619 }
    620 way["maxspeed:forward"="20 mph"]!:righthandtraffic::maxspeed,
    621 way["maxspeed:backward"="20 mph"]:righthandtraffic::maxspeed
    622 {
    623         set maxspeed_left;
    624         left-casing-color: speed_20_mph#4d4dff;
    625 }
    626 way["maxspeed:forward"="25 mph"]!:righthandtraffic::maxspeed,
    627 way["maxspeed:backward"="25 mph"]:righthandtraffic::maxspeed
    628 {
    629         set maxspeed_left;
    630         left-casing-color: speed_25_mph#4d4d00;
    631 }
    632 way["maxspeed:forward"="30 mph"]!:righthandtraffic::maxspeed,
    633 way["maxspeed:backward"="30 mph"]:righthandtraffic::maxspeed
    634 {
    635         set maxspeed_left;
    636         left-casing-color: speed_30_mph#ff529a;
    637 }
    638 way["maxspeed:forward"="35 mph"]!:righthandtraffic::maxspeed,
    639 way["maxspeed:backward"="35 mph"]:righthandtraffic::maxspeed
    640 {
    641         set maxspeed_left;
    642         left-casing-color: speed_35_mph#07f807;
    643 }
    644 way["maxspeed:forward"="40 mph"]!:righthandtraffic::maxspeed,
    645 way["maxspeed:backward"="40 mph"]:righthandtraffic::maxspeed
    646 {
    647         set maxspeed_left;
    648         left-casing-color: speed_40_mph#9f9fff;
    649 }
    650 way["maxspeed:forward"="45 mph"]!:righthandtraffic::maxspeed,
    651 way["maxspeed:backward"="45 mph"]:righthandtraffic::maxspeed
    652 {
    653         set maxspeed_left;
    654         left-casing-color: speed_45_mph#ee8b00;
    655 }
    656 way["maxspeed:forward"="50 mph"]!:righthandtraffic::maxspeed,
    657 way["maxspeed:backward"="50 mph"]:righthandtraffic::maxspeed
    658 {
    659         set maxspeed_left;
    660         left-casing-color: speed_50_mph#f90808;
    661 }
    662 way["maxspeed:forward"="55 mph"]!:righthandtraffic::maxspeed,
    663 way["maxspeed:backward"="55 mph"]:righthandtraffic::maxspeed
    664 {
    665         set maxspeed_left;
    666         left-casing-color: speed_55_mph#07f8f8;
    667 }
    668 way["maxspeed:forward"="60 mph"]!:righthandtraffic::maxspeed,
    669 way["maxspeed:backward"="60 mph"]:righthandtraffic::maxspeed
    670 {
    671         set maxspeed_left;
    672         left-casing-color: speed_60_mph#f807f8;
    673 }
    674 way["maxspeed:forward"="65 mph"]!:righthandtraffic::maxspeed,
    675 way["maxspeed:backward"="65 mph"]:righthandtraffic::maxspeed
    676 {
    677         set maxspeed_left;
    678         left-casing-color: speed_65_mph#7807f8;
    679 }
    680 way["maxspeed:forward"="70 mph"]!:righthandtraffic::maxspeed,
    681 way["maxspeed:backward"="70 mph"]:righthandtraffic::maxspeed
    682 {
    683         set maxspeed_left;
    684         left-casing-color: speed_70_mph#ccad24;
    685 }
    686 way["maxspeed:forward"="75 mph"]!:righthandtraffic::maxspeed,
    687 way["maxspeed:backward"="75 mph"]:righthandtraffic::maxspeed
    688 {
    689         set maxspeed_left;
    690         left-casing-color: speed_75_mph#c0f100;
    691 }
    692 
    693 way.maxspeed_left::maxspeed
    694 {
    695         left-casing-opacity: 0.75;
    696         left-casing-width: 6;
    697         left-casing-offset: 0;
    698 }
    699 way|z16.maxspeed_left::maxspeed
    700 {
    701         left-casing-width: 5;
    702 }
    703 way|z-15.maxspeed_left::maxspeed
    704 {
    705         left-casing-width: 4;
    706 }
    707 way.maxspeed_left[maxspeed:variable:forward]!:righthandtraffic::maxspeed,
    708 way.maxspeed_left[maxspeed:variable:backward]:righthandtraffic::maxspeed
    709 {
    710         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;
    7111065}
    7121066
    7131067/*************************************/
     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
    7141523/*************************************/
     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
    7151602/*************************************/
    7161603
    717 /* report wrong value of maxspeed */
    718 way[maxspeed=~/^[0-9]+$/]::maxspeed,
    719 way[maxspeed=signals]::maxspeed,
    720 way[maxspeed=none]::maxspeed,
    721 way[maxspeed=~/^[0-9]+ mph/]::maxspeed,
    722 way[maxspeed=~/[0-9]+ km\/h/]::maxspeed,
    723 way[maxspeed=~/[0-9]+ knots/]::maxspeed,
    724 way[maxspeed="RU:living_street"][setting("RU")]::maxspeed,
    725 way[maxspeed="RU:urban"][setting("RU")]::maxspeed,
    726 way[maxspeed="RU:rural"][setting("RU")]::maxspeed,
    727 way[maxspeed="RU:motorway"][setting("RU")]::maxspeed
    728 {
    729         set correct_value;
    730 }
    731 way[maxspeed:forward=~/^[0-9]+$/]::maxspeed,
    732 way[maxspeed:forward=signals]::maxspeed,
    733 way[maxspeed:forward=none]::maxspeed,
    734 way[maxspeed:forward=~/^[0-9]+ mph/]::maxspeed,
    735 way[maxspeed:forward=~/[0-9]+ km\/h/]::maxspeed,
    736 way[maxspeed:forward=~/[0-9]+ knots/]::maxspeed,
    737 way[maxspeed:forward="RU:living_street"][setting("RU")]::maxspeed,
    738 way[maxspeed:forward="RU:urban"][setting("RU")]::maxspeed,
    739 way[maxspeed:forward="RU:rural"][setting("RU")]::maxspeed,
    740 way[maxspeed:forward="RU:motorway"][setting("RU")]::maxspeed
    741 {
    742         set correct_value_forward;
    743 }
    744 way[maxspeed:backward=~/^[0-9]+$/]::maxspeed,
    745 way[maxspeed:backward=signals]::maxspeed,
    746 way[maxspeed:backward=none]::maxspeed,
    747 way[maxspeed:backward=~/^[0-9]+ mph/]::maxspeed,
    748 way[maxspeed:backward=~/[0-9]+ km\/h/]::maxspeed,
    749 way[maxspeed:backward=~/[0-9]+ knots/]::maxspeed,
    750 way[maxspeed:backward="RU:living_street"][setting("RU")]::maxspeed,
    751 way[maxspeed:backward="RU:urban"][setting("RU")]::maxspeed,
    752 way[maxspeed:backward="RU:rural"][setting("RU")]::maxspeed,
    753 way[maxspeed:backward="RU:motorway"][setting("RU")]::maxspeed
    754 {
    755         set correct_value_backward;
    756 }
    757 
    758 way["maxspeed"]!.correct_value::maxspeed,
    759 way["maxspeed:forward"]!.correct_value_forward::maxspeed,
    760 way["maxspeed:backward"]!.correct_value_backward::maxspeed
    761 {
    762         color: yellow;
    763         dashes-background-color: red;
    764         dashes: 4,24;
    765         opacity: 1;
    766         width: 5;
    767         text: tr("no correct value for maxspeed!");
    768         text-color: black;
    769         font-size: 11;
    770         text-halo-color: red;
    771         text-halo-radius: 2;
    772         casing-width: 1;
    773         casing-color: yellow;
    774 }
    775 
    776 /* 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 */
    7771753way["maxspeed:backward"][oneway?],
    7781754way["maxspeed:forward"][oneway=-1]
    7791755{
    780         color: yellow;
    781         dashes-background-color: red;
    782         dashes: 4,24;
    783         opacity: 1;
    784         width: 5;
    785         text: tr("maxspeed opposed to oneway direction!");
    786         text-color: black;
    787         font-size: 11;
    788         text-halo-color: red;
    789         text-halo-radius: 2;
    790         casing-width: 1;
    791         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;
    7921770}
    7931771}}}