Changes between Version 25 and Version 26 of Styles/Maxspeed


Ignore:
Timestamp:
2015-10-20T02:06:53+02:00 (10 years ago)
Author:
Klumbumbus
Comment:

update to version 2.5 - code

Legend:

Unmodified
Added
Removed
Modified
  • Styles/Maxspeed

    v25 v26  
    4242#!style type="mapcss"
    4343
     44/*
     45table of contents
     46
     471 - meta data
     482 - general settings
     49 2.1 - create user settings
     50 2.2 - disable tiger layer from default internal mappaint style
     51 2.3 - disable street names from default internal mappaint style
     52 2.4 - read conditional maxspeed values
     533 - display maxspeed=*
     54 3.1 - kmh
     55 3.2 - mph
     56 3.3 - general rules
     57 3.4 - conditional maxspeed
     58 3.4.1 - kmh
     59 3.4.2 - mph
     604 - display maxspeed:forward=* for righthandtraffic and maxspeed:backward=* for lefthandtraffic
     61 4.1 - kmh
     62 4.2 - mph
     63 4.3 - general rules
     64 4.4 - conditional righthand-forward and lefthand-backward maxspeed
     65 4.4.1 - kmh
     66 4.4.2 - mph
     675 - display maxspeed:forward=* for lefthandtraffic and maxspeed:backward=* for righthandtraffic
     68 5.1 - kmh
     69 5.2 - mph
     70 5.3 - general rules
     71 5.4 - conditional lefthand-forward and righthand-backward maxspeed
     72 5.4.1 - kmh
     73 5.4.2 - mph
     746 - error reporting
     75 6.1 - report wrong value of maxspeed
     76 6.2 - report wrong value of maxspeed:conditional
     77 6.3 - report conditional maxspeed without default maxspeed
     78 6.4 - report if maxspeed direction is opposed to oneway direction
     79 
     80*/
     81
     82/*************************************/
     83
     84/* 1 - meta data */
    4485meta
    4586{
    4687        title: "Maxspeed";
    47         version: "2.1.[[revision]]_[[date]]";
     88        version: "2.5.[[revision]]_[[date]]";
    4889        description: "Display maxspeed values in JOSM map display.";
    4990        icon: "maxspeed_icon.svg";
     
    5192        link: "http://josm.openstreetmap.de/wiki/Styles/Maxspeed";
    5293        watch-modified: true;
    53         min-josm-version: "7193"; /* because of pseudoclass :righthandtraffic */
    54 }
    55 
     94        min-josm-version: "7450"; /* because of user settings */
     95}
    5696meta[lang=de]
    5797{
     
    60100        link: "http://josm.openstreetmap.de/wiki/De:Styles/Maxspeed";
    61101}
    62 /* create settings */
     102
     103/*************************************/
     104
     105/* 2 - general settings */
     106/* 2.1 - create user settings */
    63107setting::RU {
    64108  type: boolean;
     
    66110  default: true;
    67111}
    68 /* disable tiger layer from default internal mappaint style */
     112
     113/* 2.2 - disable tiger layer from default internal mappaint style */
    69114way["tiger:reviewed"=no]::core_tiger
    70115{
    71116        opacity: 0;
    72117}
    73 /* disable street names from default internal mappaint style */
     118
     119/* 2.3 - disable street names from default internal mappaint style */
    74120way[highway]
    75121{
     
    77123}
    78124
    79 /* display maxspeed=* */
     125/* 2.4 - read conditional maxspeed values */
     126way["maxspeed:conditional"=~/^(none|[1-9][0-9]*) @/]::maxspeedlayer
     127{
     128        maxsp_cond: get(split(" ", tag("maxspeed:conditional")), 0);
     129        set cond_kmh;
     130}
     131way["maxspeed:forward:conditional"=~/^(none|[1-9][0-9]*) @/]::maxspeedlayer
     132{
     133        maxsp_forward_cond: get(split(" ", tag("maxspeed:forward:conditional")), 0);
     134        set cond_forward_kmh;
     135}
     136way["maxspeed:backward:conditional"=~/^(none|[1-9][0-9]*) @/]::maxspeedlayer
     137{
     138        maxsp_backward_cond: get(split(" ", tag("maxspeed:backward:conditional")), 0);
     139        set cond_backward_kmh;
     140}
     141way["maxspeed:conditional"=~/^[1-9][0-9]* mph @/]::maxspeedlayer
     142{
     143        maxsp_cond: get(split(" ", tag("maxspeed:conditional")), 0);
     144        set cond_mph;
     145}
     146way["maxspeed:forward:conditional"=~/^[1-9][0-9]* mph @/]::maxspeedlayer
     147{
     148        maxsp_forward_cond: get(split(" ", tag("maxspeed:forward:conditional")), 0);
     149        set cond_forward_mph;
     150}
     151way["maxspeed:backward:conditional"=~/^[1-9][0-9]* mph @/]::maxspeedlayer
     152{
     153        maxsp_backward_cond: get(split(" ", tag("maxspeed:backward:conditional")), 0);
     154        set cond_backward_mph;
     155}
     156
     157/*************************************/
     158
     159/* 3 - display maxspeed=* */
     160/* 3.1 - kmh */
    80161way["maxspeed"="none"]::maxspeedlayer
    81162{
     
    83164        color: speed_none#febede;
    84165}
    85         /* km/h */
    86166way["maxspeed"="5"]::maxspeedlayer
    87167{
     
    168248        color: speed_130#c0f100;
    169249}
    170         /* mph */
     250/* 3.2 - mph */
    171251way["maxspeed"="5 mph"]::maxspeedlayer
    172252{
     
    245325}
    246326
     327/* 3.3 - general rules */
    247328way.maxspeed::maxspeedlayer
    248329{
     
    264345}
    265346
     347/* 3.4 - conditional maxspeed */
     348way.cond_kmh::maxspeedlayer,
     349way.cond_mph::maxspeedlayer
     350{
     351        dashes: 55,25;
     352        /* dashes-background-opacity is automatic adopted from opacity. */
     353}
     354/* 3.4.1 - kmh */
     355way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="none"]::maxspeedlayer
     356{
     357        dashes-background-color:  speed_none#febede;
     358}
     359way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="5"]::maxspeedlayer
     360{
     361        dashes-background-color:  speed_5#ff5656;
     362}
     363way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="10"]::maxspeedlayer
     364{
     365        dashes-background-color:  speed_10#b80022;
     366}
     367way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="15"]::maxspeedlayer
     368{
     369        dashes-background-color:  speed_15#00da8b;
     370}
     371way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="20"]::maxspeedlayer
     372/* A selector for RU scheme is not needed here because "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).  */
     373{
     374        dashes-background-color:  speed_20#e3cc82;
     375}
     376way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="30"]::maxspeedlayer
     377{
     378        dashes-background-color:  speed_30#4d4dff;
     379}
     380way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="40"]::maxspeedlayer
     381{
     382        dashes-background-color:  speed_40#4d4d00;
     383}
     384way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="45"]::maxspeedlayer
     385{
     386        dashes-background-color:  speed_45#ff529a;
     387}
     388way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="50"]::maxspeedlayer
     389{
     390        dashes-background-color:  speed_50#07f807;
     391}
     392way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="60"]::maxspeedlayer
     393{
     394        dashes-background-color:  speed_60#9f9fff;
     395}
     396way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="70"]::maxspeedlayer
     397{
     398        dashes-background-color:  speed_70#ee8b00;
     399}
     400way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="80"]::maxspeedlayer
     401{
     402        dashes-background-color:  speed_80#f90808;
     403}
     404way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="90"]::maxspeedlayer
     405{
     406        dashes-background-color:  speed_90#07f8f8;
     407}
     408way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="100"]::maxspeedlayer
     409{
     410        dashes-background-color:  speed_100#f807f8;
     411}
     412way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="110"]::maxspeedlayer
     413{
     414        dashes-background-color:  speed_110#7807f8;
     415}
     416way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="120"]::maxspeedlayer
     417{
     418        dashes-background-color:  speed_120#ccad24;
     419}
     420way.cond_kmh[prop(maxsp_cond, maxspeedlayer)="130"]::maxspeedlayer
     421{
     422        dashes-background-color:  speed_130#c0f100;
     423}
     424/* 3.4.2 -  mph */
     425way.cond_mph[prop(maxsp_cond, maxspeedlayer)="5"]::maxspeedlayer
     426{
     427        dashes-background-color:  speed_5_mph#b80022;
     428}
     429way.cond_mph[prop(maxsp_cond, maxspeedlayer)="10"]::maxspeedlayer
     430{
     431        dashes-background-color:  speed_10_mph#00da8b;
     432}
     433way.cond_mph[prop(maxsp_cond, maxspeedlayer)="15"]::maxspeedlayer
     434{
     435        dashes-background-color:  speed_15_mph#e3cc82;
     436}
     437way.cond_mph[prop(maxsp_cond, maxspeedlayer)="20"]::maxspeedlayer
     438{
     439        dashes-background-color:  speed_20_mph#4d4dff;
     440}
     441way.cond_mph[prop(maxsp_cond, maxspeedlayer)="25"]::maxspeedlayer
     442{
     443        dashes-background-color:  speed_25_mph#4d4d00;
     444}
     445way.cond_mph[prop(maxsp_cond, maxspeedlayer)="30"]::maxspeedlayer
     446{
     447        dashes-background-color:  speed_30_mph#ff529a;
     448}
     449way.cond_mph[prop(maxsp_cond, maxspeedlayer)="35"]::maxspeedlayer
     450{
     451        dashes-background-color:  speed_35_mph#07f807;
     452}
     453way.cond_mph[prop(maxsp_cond, maxspeedlayer)="40"]::maxspeedlayer
     454{
     455        dashes-background-color:  speed_40_mph#9f9fff;
     456}
     457way.cond_mph[prop(maxsp_cond, maxspeedlayer)="45"]::maxspeedlayer
     458{
     459        dashes-background-color:  speed_45_mph#ee8b00;
     460}
     461way.cond_mph[prop(maxsp_cond, maxspeedlayer)="50"]::maxspeedlayer
     462{
     463        dashes-background-color:  speed_50_mph#f90808;
     464}
     465way.cond_mph[prop(maxsp_cond, maxspeedlayer)="55"]::maxspeedlayer
     466{
     467        dashes-background-color:  speed_55_mph#07f8f8;
     468}
     469way.cond_mph[prop(maxsp_cond, maxspeedlayer)="60"]::maxspeedlayer
     470{
     471        dashes-background-color:  speed_60_mph#f807f8;
     472}
     473way.cond_mph[prop(maxsp_cond, maxspeedlayer)="65"]::maxspeedlayer
     474{
     475        dashes-background-color:  speed_65_mph#7807f8;
     476}
     477way.cond_mph[prop(maxsp_cond, maxspeedlayer)="70"]::maxspeedlayer
     478{
     479        dashes-background-color:  speed_70_mph#ccad24;
     480}
     481way.cond_mph[prop(maxsp_cond, maxspeedlayer)="75"]::maxspeedlayer
     482{
     483        dashes-background-color:  speed_75_mph#c0f100;
     484}
     485
    266486/*************************************/
    267487
    268 /* display maxspeed:forward=* for righthandtraffic */
    269 /* display maxspeed:backward=* for lefthandtraffic */
    270 
     488/* 4 - display maxspeed:forward=* for righthandtraffic and maxspeed:backward=* for lefthandtraffic */
     489/* 4.1 - kmh */
    271490way["maxspeed:forward"="none"]:righthandtraffic::maxspeedlayer,
    272491way["maxspeed:backward"="none"]!:righthandtraffic::maxspeedlayer
     
    275494        right-casing-color: speed_none#febede;
    276495}
    277         /* km/h */
    278496way["maxspeed:forward"="5"]:righthandtraffic::maxspeedlayer,
    279497way["maxspeed:backward"="5"]!:righthandtraffic::maxspeedlayer
     
    297515way["maxspeed:backward"="20"]!:righthandtraffic::maxspeedlayer,
    298516way["maxspeed:forward"="RU:living_street"][setting("RU")]:righthandtraffic::maxspeedlayer
    299 /* no left hand traffic in RU, so this selector is not needed */
     517/* no left hand traffic in RU, so a selector is not needed */
    300518{
    301519        set maxspeed_right;
     
    377595        right-casing-color: speed_130#c0f100;
    378596}
    379         /* mph */
     597/* 4.2 - mph */
    380598way["maxspeed:forward"="5 mph"]:righthandtraffic::maxspeedlayer,
    381599way["maxspeed:backward"="5 mph"]!:righthandtraffic::maxspeedlayer
     
    469687}
    470688
     689/* 4.3 - general rules */
    471690way.maxspeed_right::maxspeedlayer
    472691{
     
    489708}
    490709
     710/* 4.4 - conditional righthand-forward and lefthand-backward maxspeed */
     711way.cond_forward_kmh:righthandtraffic::maxspeedlayer,
     712way.cond_backward_kmh!:righthandtraffic::maxspeedlayer,
     713way.cond_forward_mph:righthandtraffic::maxspeedlayer,
     714way.cond_backward_mph!:righthandtraffic::maxspeedlayer
     715{
     716        right-casing-dashes: 55,25;
     717}
     718/* 4.4.1 - kmh */
     719way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="none"]:righthandtraffic::maxspeedlayer,
     720way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="none"]!:righthandtraffic::maxspeedlayer
     721{
     722        right-casing-dashes-background-color: speed_none#febede;
     723}
     724way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="5"]:righthandtraffic::maxspeedlayer,
     725way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="5"]!:righthandtraffic::maxspeedlayer
     726{
     727        right-casing-dashes-background-color: speed_5#ff5656;
     728}
     729way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="10"]:righthandtraffic::maxspeedlayer,
     730way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="10"]!:righthandtraffic::maxspeedlayer
     731{
     732        right-casing-dashes-background-color: speed_10#b80022;
     733}
     734way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="15"]:righthandtraffic::maxspeedlayer,
     735way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="15"]!:righthandtraffic::maxspeedlayer
     736{
     737        right-casing-dashes-background-color: speed_15#00da8b;
     738}
     739way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="20"]:righthandtraffic::maxspeedlayer,
     740way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="20"]!:righthandtraffic::maxspeedlayer
     741{
     742        right-casing-dashes-background-color: speed_20#e3cc82;
     743}
     744way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="30"]:righthandtraffic::maxspeedlayer,
     745way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="30"]!:righthandtraffic::maxspeedlayer
     746{
     747        right-casing-dashes-background-color: speed_30#4d4dff;
     748}
     749way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="40"]:righthandtraffic::maxspeedlayer,
     750way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="40"]!:righthandtraffic::maxspeedlayer
     751{
     752        right-casing-dashes-background-color: speed_40#4d4d00;
     753}
     754way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="45"]:righthandtraffic::maxspeedlayer,
     755way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="45"]!:righthandtraffic::maxspeedlayer
     756{
     757        right-casing-dashes-background-color: speed_45#ff529a;
     758}
     759way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="50"]:righthandtraffic::maxspeedlayer,
     760way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="50"]!:righthandtraffic::maxspeedlayer
     761{
     762        right-casing-dashes-background-color: speed_50#07f807;
     763}
     764way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="60"]:righthandtraffic::maxspeedlayer,
     765way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="60"]!:righthandtraffic::maxspeedlayer
     766{
     767        right-casing-dashes-background-color: speed_60#9f9fff;
     768}
     769way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="70"]:righthandtraffic::maxspeedlayer,
     770way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="70"]!:righthandtraffic::maxspeedlayer
     771{
     772        right-casing-dashes-background-color: speed_70#ee8b00;
     773}
     774way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="80"]:righthandtraffic::maxspeedlayer,
     775way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="80"]!:righthandtraffic::maxspeedlayer
     776{
     777        right-casing-dashes-background-color: speed_80#f90808;
     778}
     779way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="90"]:righthandtraffic::maxspeedlayer,
     780way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="90"]!:righthandtraffic::maxspeedlayer
     781{
     782        right-casing-dashes-background-color: speed_90#07f8f8;
     783}
     784way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="100"]:righthandtraffic::maxspeedlayer,
     785way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="100"]!:righthandtraffic::maxspeedlayer
     786{
     787        right-casing-dashes-background-color: speed_100#f807f8;
     788}
     789way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="110"]:righthandtraffic::maxspeedlayer,
     790way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="110"]!:righthandtraffic::maxspeedlayer
     791{
     792        right-casing-dashes-background-color: speed_110#7807f8;
     793}
     794way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="120"]:righthandtraffic::maxspeedlayer,
     795way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="120"]!:righthandtraffic::maxspeedlayer
     796{
     797        right-casing-dashes-background-color: speed_120#ccad24;
     798}
     799way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="130"]:righthandtraffic::maxspeedlayer,
     800way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="130"]!:righthandtraffic::maxspeedlayer
     801{
     802        right-casing-dashes-background-color: speed_130#c0f100;
     803}
     804/* 4.4.2 - mph */
     805way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="5"]:righthandtraffic::maxspeedlayer,
     806way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="5"]!:righthandtraffic::maxspeedlayer
     807{
     808        right-casing-dashes-background-color: speed_5_mph#b80022;
     809}
     810way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="10"]:righthandtraffic::maxspeedlayer,
     811way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="10"]!:righthandtraffic::maxspeedlayer
     812{
     813        right-casing-dashes-background-color: speed_10_mph#00da8b;
     814}
     815way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="15"]:righthandtraffic::maxspeedlayer,
     816way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="15"]!:righthandtraffic::maxspeedlayer
     817{
     818        right-casing-dashes-background-color: speed_15_mph#e3cc82;
     819}
     820way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="20"]:righthandtraffic::maxspeedlayer,
     821way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="20"]!:righthandtraffic::maxspeedlayer
     822{
     823        right-casing-dashes-background-color: speed_20_mph#4d4dff;
     824}
     825way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="25"]:righthandtraffic::maxspeedlayer,
     826way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="25"]!:righthandtraffic::maxspeedlayer
     827{
     828        right-casing-dashes-background-color: speed_25_mph#4d4d00;
     829}
     830way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="30"]:righthandtraffic::maxspeedlayer,
     831way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="30"]!:righthandtraffic::maxspeedlayer
     832{
     833        right-casing-dashes-background-color: speed_30_mph#ff529a;
     834}
     835way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="35"]:righthandtraffic::maxspeedlayer,
     836way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="35"]!:righthandtraffic::maxspeedlayer
     837{
     838        right-casing-dashes-background-color: speed_35_mph#07f807;
     839}
     840way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="40"]:righthandtraffic::maxspeedlayer,
     841way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="40"]!:righthandtraffic::maxspeedlayer
     842{
     843        right-casing-dashes-background-color: speed_40_mph#9f9fff;
     844}
     845way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="45"]:righthandtraffic::maxspeedlayer,
     846way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="45"]!:righthandtraffic::maxspeedlayer
     847{
     848        right-casing-dashes-background-color: speed_45_mph#ee8b00;
     849}
     850way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="50"]:righthandtraffic::maxspeedlayer,
     851way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="50"]!:righthandtraffic::maxspeedlayer
     852{
     853        right-casing-dashes-background-color: speed_50_mph#f90808;
     854}
     855way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="55"]:righthandtraffic::maxspeedlayer,
     856way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="55"]!:righthandtraffic::maxspeedlayer
     857{
     858        right-casing-dashes-background-color: speed_55_mph#07f8f8;
     859}
     860way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="60"]:righthandtraffic::maxspeedlayer,
     861way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="60"]!:righthandtraffic::maxspeedlayer
     862{
     863        right-casing-dashes-background-color: speed_60_mph#f807f8;
     864}
     865way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="65"]:righthandtraffic::maxspeedlayer,
     866way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="65"]!:righthandtraffic::maxspeedlayer
     867{
     868        right-casing-dashes-background-color: speed_65_mph#7807f8;
     869}
     870way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="70"]:righthandtraffic::maxspeedlayer,
     871way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="70"]!:righthandtraffic::maxspeedlayer
     872{
     873        right-casing-dashes-background-color: speed_70_mph#ccad24;
     874}
     875way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="75"]:righthandtraffic::maxspeedlayer,
     876way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="75"]!:righthandtraffic::maxspeedlayer
     877{
     878        right-casing-dashes-background-color: speed_75_mph#c0f100;
     879}
     880
    491881/*************************************/
    492882
    493 /* display maxspeed:forward=* for lefthandtraffic */
    494 /* display maxspeed:backward=* for righthandtraffic */
    495 
     883/* 5 - display maxspeed:forward=* for lefthandtraffic and maxspeed:backward=* for righthandtraffic */
     884/* 5.1 - kmh */
    496885way["maxspeed:forward"="none"]!:righthandtraffic::maxspeedlayer,
    497886way["maxspeed:backward"="none"]:righthandtraffic::maxspeedlayer
     
    500889        left-casing-color: speed_none#febede;
    501890}
    502         /* km/h */
    503891way["maxspeed:forward"="5"]!:righthandtraffic::maxspeedlayer,
    504892way["maxspeed:backward"="5"]:righthandtraffic::maxspeedlayer
     
    601989        left-casing-color: speed_130#c0f100;
    602990}
    603         /* mph */
     991/* 5.2 - mph */
    604992way["maxspeed:forward"="5 mph"]!:righthandtraffic::maxspeedlayer,
    605993way["maxspeed:backward"="5 mph"]:righthandtraffic::maxspeedlayer
     
    6931081}
    6941082
     1083/* 5.3 - general rules */
    6951084way.maxspeed_left::maxspeedlayer
    6961085{
     
    7131102}
    7141103
     1104/* 5.4 - conditional lefthand-forward and righthand-backward maxspeed */
     1105way.cond_forward_kmh!:righthandtraffic::maxspeedlayer,
     1106way.cond_backward_kmh:righthandtraffic::maxspeedlayer,
     1107way.cond_forward_mph!:righthandtraffic::maxspeedlayer,
     1108way.cond_backward_mph:righthandtraffic::maxspeedlayer
     1109{
     1110        left-casing-dashes: 55,25;
     1111}
     1112/* 5.4.1 - kmh */
     1113way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="none"]!:righthandtraffic::maxspeedlayer,
     1114way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="none"]:righthandtraffic::maxspeedlayer
     1115{
     1116        left-casing-dashes-background-color: speed_none#febede;
     1117}
     1118way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="5"]!:righthandtraffic::maxspeedlayer,
     1119way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="5"]:righthandtraffic::maxspeedlayer
     1120{
     1121        left-casing-dashes-background-color: speed_5#ff5656;
     1122}
     1123way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="10"]!:righthandtraffic::maxspeedlayer,
     1124way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="10"]:righthandtraffic::maxspeedlayer
     1125{
     1126        left-casing-dashes-background-color: speed_10#b80022;
     1127}
     1128way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="15"]!:righthandtraffic::maxspeedlayer,
     1129way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="15"]:righthandtraffic::maxspeedlayer
     1130{
     1131        left-casing-dashes-background-color: speed_15#00da8b;
     1132}
     1133way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="20"]!:righthandtraffic::maxspeedlayer,
     1134way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="20"]:righthandtraffic::maxspeedlayer
     1135{
     1136        left-casing-dashes-background-color: speed_20#e3cc82;
     1137}
     1138way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="30"]!:righthandtraffic::maxspeedlayer,
     1139way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="30"]:righthandtraffic::maxspeedlayer
     1140{
     1141        left-casing-dashes-background-color: speed_30#4d4dff;
     1142}
     1143way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="40"]!:righthandtraffic::maxspeedlayer,
     1144way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="40"]:righthandtraffic::maxspeedlayer
     1145{
     1146        left-casing-dashes-background-color: speed_40#4d4d00;
     1147}
     1148way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="45"]!:righthandtraffic::maxspeedlayer,
     1149way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="45"]:righthandtraffic::maxspeedlayer
     1150{
     1151        left-casing-dashes-background-color: speed_45#ff529a;
     1152}
     1153way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="50"]!:righthandtraffic::maxspeedlayer,
     1154way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="50"]:righthandtraffic::maxspeedlayer
     1155{
     1156        left-casing-dashes-background-color: speed_50#07f807;
     1157}
     1158way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="60"]!:righthandtraffic::maxspeedlayer,
     1159way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="60"]:righthandtraffic::maxspeedlayer
     1160{
     1161        left-casing-dashes-background-color: speed_60#9f9fff;
     1162}
     1163way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="70"]!:righthandtraffic::maxspeedlayer,
     1164way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="70"]:righthandtraffic::maxspeedlayer
     1165{
     1166        left-casing-dashes-background-color: speed_70#ee8b00;
     1167}
     1168way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="80"]!:righthandtraffic::maxspeedlayer,
     1169way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="80"]:righthandtraffic::maxspeedlayer
     1170{
     1171        left-casing-dashes-background-color: speed_80#f90808;
     1172}
     1173way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="90"]!:righthandtraffic::maxspeedlayer,
     1174way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="90"]:righthandtraffic::maxspeedlayer
     1175{
     1176        left-casing-dashes-background-color: speed_90#07f8f8;
     1177}
     1178way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="100"]!:righthandtraffic::maxspeedlayer,
     1179way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="100"]:righthandtraffic::maxspeedlayer
     1180{
     1181        left-casing-dashes-background-color: speed_100#f807f8;
     1182}
     1183way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="110"]!:righthandtraffic::maxspeedlayer,
     1184way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="110"]:righthandtraffic::maxspeedlayer
     1185{
     1186        left-casing-dashes-background-color: speed_110#7807f8;
     1187}
     1188way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="120"]!:righthandtraffic::maxspeedlayer,
     1189way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="120"]:righthandtraffic::maxspeedlayer
     1190{
     1191        left-casing-dashes-background-color: speed_120#ccad24;
     1192}
     1193way.cond_forward_kmh[prop(maxsp_forward_cond, maxspeedlayer)="130"]!:righthandtraffic::maxspeedlayer,
     1194way.cond_backward_kmh[prop(maxsp_backward_cond, maxspeedlayer)="130"]:righthandtraffic::maxspeedlayer
     1195{
     1196        left-casing-dashes-background-color: speed_130#c0f100;
     1197}
     1198/* 5.4.2 - mph */
     1199way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="5"]!:righthandtraffic::maxspeedlayer,
     1200way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="5"]:righthandtraffic::maxspeedlayer
     1201{
     1202        left-casing-dashes-background-color: speed_5_mph#b80022;
     1203}
     1204way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="10"]!:righthandtraffic::maxspeedlayer,
     1205way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="10"]:righthandtraffic::maxspeedlayer
     1206{
     1207        left-casing-dashes-background-color: speed_10_mph#00da8b;
     1208}
     1209way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="15"]!:righthandtraffic::maxspeedlayer,
     1210way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="15"]:righthandtraffic::maxspeedlayer
     1211{
     1212        left-casing-dashes-background-color: speed_15_mph#e3cc82;
     1213}
     1214way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="20"]!:righthandtraffic::maxspeedlayer,
     1215way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="20"]:righthandtraffic::maxspeedlayer
     1216{
     1217        left-casing-dashes-background-color: speed_20_mph#4d4dff;
     1218}
     1219way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="25"]!:righthandtraffic::maxspeedlayer,
     1220way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="25"]:righthandtraffic::maxspeedlayer
     1221{
     1222        left-casing-dashes-background-color: speed_25_mph#4d4d00;
     1223}
     1224way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="30"]!:righthandtraffic::maxspeedlayer,
     1225way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="30"]:righthandtraffic::maxspeedlayer
     1226{
     1227        left-casing-dashes-background-color: speed_30_mph#ff529a;
     1228}
     1229way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="35"]!:righthandtraffic::maxspeedlayer,
     1230way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="35"]:righthandtraffic::maxspeedlayer
     1231{
     1232        left-casing-dashes-background-color: speed_35_mph#07f807;
     1233}
     1234way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="40"]!:righthandtraffic::maxspeedlayer,
     1235way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="40"]:righthandtraffic::maxspeedlayer
     1236{
     1237        left-casing-dashes-background-color: speed_40_mph#9f9fff;
     1238}
     1239way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="45"]!:righthandtraffic::maxspeedlayer,
     1240way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="45"]:righthandtraffic::maxspeedlayer
     1241{
     1242        left-casing-dashes-background-color: speed_45_mph#ee8b00;
     1243}
     1244way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="50"]!:righthandtraffic::maxspeedlayer,
     1245way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="50"]:righthandtraffic::maxspeedlayer
     1246{
     1247        left-casing-dashes-background-color: speed_50_mph#f90808;
     1248}
     1249way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="55"]!:righthandtraffic::maxspeedlayer,
     1250way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="55"]:righthandtraffic::maxspeedlayer
     1251{
     1252        left-casing-dashes-background-color: speed_55_mph#07f8f8;
     1253}
     1254way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="60"]!:righthandtraffic::maxspeedlayer,
     1255way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="60"]:righthandtraffic::maxspeedlayer
     1256{
     1257        left-casing-dashes-background-color: speed_60_mph#f807f8;
     1258}
     1259way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="65"]!:righthandtraffic::maxspeedlayer,
     1260way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="65"]:righthandtraffic::maxspeedlayer
     1261{
     1262        left-casing-dashes-background-color: speed_65_mph#7807f8;
     1263}
     1264way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="70"]!:righthandtraffic::maxspeedlayer,
     1265way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="70"]:righthandtraffic::maxspeedlayer
     1266{
     1267        left-casing-dashes-background-color: speed_70_mph#ccad24;
     1268}
     1269way.cond_forward_mph[prop(maxsp_forward_cond, maxspeedlayer)="75"]!:righthandtraffic::maxspeedlayer,
     1270way.cond_backward_mph[prop(maxsp_backward_cond, maxspeedlayer)="75"]:righthandtraffic::maxspeedlayer
     1271{
     1272        left-casing-dashes-background-color: speed_75_mph#c0f100;
     1273}
     1274
    7151275/*************************************/
    716 /*************************************/
    717 /*************************************/
    718 
    719 /* report wrong value of maxspeed */
     1276
     1277/* 6 - error reporting */
     1278/* 6.1 - report wrong value of maxspeed */
    7201279way[maxspeed=~/^[0-9]+$/]::maxspeedlayer,
    7211280way[maxspeed=signals]::maxspeedlayer,
     
    7761335}
    7771336
    778 /* report if maxspeed direction is opposed to oneway direction */
     1337/* 6.2 - report wrong value of maxspeed:conditional */
     1338way["maxspeed:conditional"=~/^[1-9][0-9]* knots @/]::maxspeedlayer,
     1339way["maxspeed:forward:conditional"=~/^[1-9][0-9]* knots @/]::maxspeedlayer,
     1340way["maxspeed:backward:conditional"=~/^[1-9][0-9]* knots @/]::maxspeedlayer
     1341{
     1342        set cond_knots;
     1343}
     1344way["maxspeed:conditional"]!.cond_kmh!.cond_mph!.cond_knots::maxspeedlayer,
     1345way["maxspeed:forward:conditional"]!.cond_forward_kmh!.cond_forward_mph!.cond_knots::maxspeedlayer,
     1346way["maxspeed:backward:conditional"]!.cond_backward_kmh!.cond_backward_mph!.cond_knots::maxspeedlayer
     1347{
     1348        color: yellow;
     1349        dashes-background-color: red;
     1350        dashes: 4,24;
     1351        opacity: 1;
     1352        width: 5;
     1353        text: tr("wrong conditional maxspeed value!");
     1354        text-color: black;
     1355        font-size: 11;
     1356        text-halo-color: red;
     1357        text-halo-radius: 2;
     1358        casing-width: 1;
     1359        casing-color: yellow;
     1360}
     1361
     1362/* 6.3 - report conditional maxspeed without default maxspeed */
     1363way["maxspeed:conditional"][!"maxspeed"]::maxspeedlayer,
     1364way["maxspeed:forward:conditional"][!"maxspeed:forward"]::maxspeedlayer,
     1365way["maxspeed:backward:conditional"][!"maxspeed:backward"]::maxspeedlayer
     1366{
     1367        color: yellow;
     1368        dashes-background-color: red;
     1369        dashes: 4,24;
     1370        opacity: 1;
     1371        width: 5;
     1372        text: tr("conditional maxspeed without default maxspeed!");
     1373        text-color: black;
     1374        font-size: 11;
     1375        text-halo-color: red;
     1376        text-halo-radius: 2;
     1377        casing-width: 1;
     1378        casing-color: yellow;
     1379}
     1380
     1381/* 6.4 - report if maxspeed direction is opposed to oneway direction */
    7791382way["maxspeed:backward"][oneway?],
    7801383way["maxspeed:forward"][oneway=-1]