Changes between Initial Version and Version 1 of Styles/CyclewaysStylingBNA


Ignore:
Timestamp:
2023-02-15T20:04:43+01:00 (3 years ago)
Author:
anonymous
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Styles/CyclewaysStylingBNA

    v1 v1  
     1= Cycleway Styling (BNA)
     2
     3This style was developed to aid in editing for the [https://bna.peopleforbikes.org/#/ PeopleforBikes Bicycle Network Analysis (BNA)]. It adds line decorations to visualize on and off-road cycle tags, as well as relevant on-street parking. Notably, it displays individual sides of the road, and includes cycleway buffers. Deprecated tags are shown in different colors to suggest edits. The style works with the internal JOSM Default style, but is optimized for use with the Potlatch 2 style enabled as well.
     4
     5[[Image(cyclewaylegend.jpg)]][[BR]]
     6
     7{{{
     8#!style type="mapcss"
     9
     10meta
     11{
     12        title: "Cycleway Styles (BNA)";
     13        description: "This style was developed to aid in editing for the PeopleforBikes Bicycle Network Analysis (BNA). It adds line decorations to visualize on and off-road cycle tags, as well as relevant on-street parking. Notably, it displays individual sides of the road, and includes cycleway buffers. Deprecated tags are shown in different colors to suggest edits.";
     14        version: "0.[[revision]]_[[date]]";
     15        author: "pkoby";
     16        link: "https://josm.openstreetmap.de/wiki/Styles/Modified";
     17}
     18
     19way::base {
     20        offset: 0; 
     21}
     22
     23way::justlane {
     24        offset: prop("offset", "base");
     25}
     26way[highway][cycleway=lane]::justlane {
     27        color: #55f;
     28        dashes: 5,2;
     29        width: 4;
     30        offset: prop("offset")-10;
     31}
     32way::justlane2 {
     33        offset: prop("offset", "base");
     34}
     35way[highway][cycleway=lane]::justlane2 {
     36        color: #55f;
     37        dashes: 5,2;
     38        width: 4;
     39        offset: prop("offset")+10;
     40}
     41
     42way::lane {
     43        offset: prop("offset", "base");
     44}
     45way[highway][cycleway:both=lane]::lane,way[highway][cycleway:right=lane]::lane {
     46        color: blue;
     47        dashes: 5,2;
     48        width: 4;
     49        offset: prop("offset")-10;
     50}
     51way::lane2 {
     52        offset: prop("offset", "base");
     53}
     54way[highway][cycleway:both=lane]::lane2,way[highway][cycleway:left=lane]::lane2 {
     55        color: blue;
     56        dashes: 5,2;
     57        width: 4;
     58        offset: prop("offset")+10;
     59}
     60
     61way::twolanesnobuff {
     62        offset: prop("offset", "base");
     63}
     64way[highway][cycleway:left=lane][cycleway:right=lane][!cycleway:left:buffer][!cycleway:right:buffer]::twolanesnobuff {
     65        color: #ff4400;
     66        dashes: 5,2;
     67        width: 4;
     68        offset: prop("offset")-10;
     69        z-index: 10;
     70}
     71way::twolanesnobuff2 {
     72        offset: prop("offset", "base");
     73}
     74way[highway][cycleway:left=lane][cycleway:right=lane][!cycleway:left:buffer][!cycleway:right:buffer]::twolanesnobuff2 {
     75        color: #ff4400;
     76        dashes: 5,2;
     77        width: 4;
     78        offset: prop("offset")+10;
     79        z-index: 10;
     80}
     81
     82way::advisorylane {
     83        offset: prop("offset", "base");
     84}
     85way[highway][cycleway:lane=advisory]::advisorylane,way[highway][cycleway:both:lane=advisory]::advisorylane,way[highway][cycleway:right:lane=advisory]::advisorylane {
     86        color: orange;
     87        dashes: 5,9;
     88        width: 4;
     89        offset: prop("offset")-10;
     90        z-index: 5;
     91}
     92way::advisorylane2 {
     93        offset: prop("offset", "base");
     94}
     95way[highway][cycleway:lane=advisory]::advisorylane2,way[highway][cycleway:both:lane=advisory]::advisorylane2,way[highway][cycleway:left:lane=advisory]::advisorylane2 {
     96        color: orange;
     97        dashes: 5,9;
     98        width: 4;
     99        offset: prop("offset")+10;
     100        z-index: 5;
     101}
     102
     103way::sharedparking {
     104        offset: prop("offset", "base");
     105}
     106way[highway][cycleway=shared_parking_lane]::sharedparking,way[highway][cycleway:both=shared_parking_lane]::sharedparking,way[highway][cycleway:right=shared_parking_lane]::sharedparking {
     107        color: yellow;
     108        dashes: 5,2;
     109        width: 4;
     110        offset: prop("offset")-10;
     111        opacity: 0.7;
     112}
     113way::sharedparking2 {
     114        offset: prop("offset", "base");
     115}
     116way[highway][cycleway=shared_parking_lane]::sharedparking2,way[highway][cycleway:both=shared_parking_lane]::sharedparking2,way[highway][cycleway:left=shared_parking_lane]::sharedparking2 {
     117        color: yellow;
     118        dashes: 5,2;
     119        width: 4;
     120        offset: prop("offset")+10;
     121        opacity: 0.7;
     122}
     123
     124way::buffered_lane {
     125        offset: prop("offset", "base");
     126}
     127way[highway][cycleway=buffered_lane]::buffered_lane,way[highway][cycleway:both=buffered_lane]::buffered_lane,way[highway][cycleway:right=buffered_lane]::buffered_lane {
     128        color: #f50;
     129        dashes: 5,2;
     130        width: 4;
     131        offset: prop("offset")-10;
     132}
     133way::buffered_lane2 {
     134        offset: prop("offset", "base");
     135}
     136way[highway][cycleway=buffered_lane]::buffered_lane2,way[highway][cycleway:both=buffered_lane]::buffered_lane2,way[highway][cycleway:left=buffered_lane]::buffered_lane2 {
     137        color: #f50;
     138        dashes: 5,2;
     139        width: 4;
     140        offset: prop("offset")+10;
     141}
     142
     143way::opplane {
     144        offset: prop("offset", "base");
     145}
     146way[highway][cycleway:right=opposite_lane]::opplane {
     147        color: #0af;
     148        dashes: 5,2;
     149        width: 4;
     150        offset: prop("offset")-10;
     151}
     152way::opplane2 {
     153        offset: prop("offset", "base");
     154}
     155way[highway][cycleway:left=opposite_lane]::opplane2 {
     156        color: #0af;
     157        dashes: 5,2;
     158        width: 4;
     159        offset: prop("offset")+10;
     160}
     161
     162way::busway {
     163        offset: prop("offset", "base");
     164}
     165way[highway][cycleway=share_busway]::busway,way[highway][cycleway:both=share_busway]::busway,way[highway][cycleway:right=share_busway]::busway {
     166        color: #f33;
     167        dashes: 24,4;
     168        width: 4;
     169        offset: prop("offset")-10;
     170}
     171way::busway2 {
     172        offset: prop("offset", "base");
     173}
     174way[highway][cycleway=share_busway]::busway2,way[highway][cycleway:both=share_busway]::busway2,way[highway][cycleway:left=share_busway]::busway2 {
     175        color: #f33;
     176        dashes: 24,4;
     177        width: 4;
     178        offset: prop("offset")+10;
     179}
     180
     181way::shoulder {
     182        offset: prop("offset", "base");
     183}
     184way[highway][cycleway=shoulder]::shoulder,way[highway][cycleway:both=shoulder]::shoulder,way[highway][cycleway:right=shoulder]::shoulder {
     185        color: #248;
     186        dashes: 8,18;
     187        width: 4;
     188        offset: prop("offset")-10;
     189}
     190way::shoulder2 {
     191        offset: prop("offset", "base");
     192}
     193way[highway][cycleway=shoulder]::shoulder2,way[highway][cycleway:both=shoulder]::shoulder2,way[highway][cycleway:left=shoulder]::shoulder2 {
     194        color: #248;
     195        dashes: 8,18;
     196        width: 4;
     197        offset: prop("offset")+10;
     198}
     199
     200way::separate {
     201        offset: prop("offset", "base");
     202}
     203way[highway][cycleway=separate]::separate,way[highway][cycleway:both=separate]::separate,way[highway][cycleway:right=separate]::separate {
     204        color: blue;
     205        dashes: 2,8;
     206        width: 4;
     207        offset: prop("offset")-10;
     208}
     209way::separate2 {
     210        offset: prop("offset", "base");
     211}
     212way[highway][cycleway=separate]::separate2,way[highway][cycleway:both=separate]::separate2,way[highway][cycleway:left=separate]::separate2 {
     213        color: blue;
     214        dashes: 2,8;
     215        width: 4;
     216        offset: prop("offset")+10;
     217}
     218
     219way::justtrack {
     220        offset: prop("offset", "base");
     221}
     222way[highway][cycleway=track]::justtrack {
     223        color: #55f;
     224        dashes: 24,4;
     225        width: 4;
     226        offset: prop("offset")-10;
     227}
     228way::justtrack2 {
     229        offset: prop("offset", "base");
     230}
     231way[highway][cycleway=track]::justtrack2 {
     232        color: #55f;
     233        dashes: 24,4;
     234        width: 4;
     235        offset: prop("offset")+10;
     236}
     237
     238way::track {
     239        offset: prop("offset", "base");
     240}
     241way[highway][cycleway:both=track]::track,way[highway][cycleway:right=track]::track {
     242        color: blue;
     243        dashes: 24,4;
     244        width: 4;
     245        offset: prop("offset")-10;
     246}
     247way::track2 {
     248        offset: prop("offset", "base");
     249}
     250way[highway][cycleway=track]::track2,way[highway][cycleway:both=track]::track2,way[highway][cycleway:left=track]::track2 {
     251        color: blue;
     252        dashes: 24,4;
     253        width: 4;
     254        offset: prop("offset")+10;
     255}
     256
     257way::twotrack {
     258        offset: prop("offset", "base");
     259}
     260way[highway][cycleway:right=track][cycleway:right:oneway=no]::twotrack {
     261        color: #0af;
     262        dashes: 24,4;
     263        width: 4;
     264        offset: prop("offset")-15;
     265}
     266way::twotrack2 {
     267        offset: prop("offset", "base");
     268}
     269way[highway][cycleway:left=track][cycleway:left:oneway=no]::twotrack2 {
     270        color: #0af;
     271        dashes: 24,4;
     272        width: 4;
     273        offset: prop("offset")+15;
     274}
     275
     276way::opptrack {
     277        offset: prop("offset", "base");
     278}
     279way[highway][cycleway:right=track][oneway=yes][oneway:bicycle=no]::opptrack,way[highway][cycleway:right=opposite_track][oneway=yes]::opptrack {
     280        color: #0af;
     281        dashes: 24,4;
     282        width: 4;
     283        offset: prop("offset")-10;
     284}
     285way::opptrack2 {
     286        offset: prop("offset", "base");
     287}
     288way[highway][cycleway:left=track][oneway=yes][oneway:bicycle=no]::opptrack2,way[highway][cycleway:left=opposite_track][oneway=yes]::opptrack2 {
     289        color: #0af;
     290        dashes: 24,4;
     291        width: 4;
     292        offset: prop("offset")+10;
     293}
     294
     295way::sharedlane {
     296        offset: prop("offset", "base");
     297}
     298way[highway][cycleway:both=shared_lane]::sharedlane,way[highway][cycleway:right=shared_lane]::sharedlane {
     299        color: blue;
     300        dashes: 4,10;
     301        width: 4;
     302        offset: prop("offset")-10;
     303}
     304way::sharedlane2 {
     305        offset: prop("offset", "base");
     306}
     307way[highway][cycleway:both=shared_lane]::sharedlane2,way[highway][cycleway:left=shared_lane]::sharedlane2 {
     308        color: blue;
     309        dashes: 4,10;
     310        width: 4;
     311        offset: prop("offset")+10;
     312}
     313
     314way::justsharedlane {
     315        offset: prop("offset", "base");
     316}
     317way[highway][cycleway=shared_lane]::justsharedlane {
     318        color: #55f;
     319        dashes: 4,10;
     320        width: 4;
     321        offset: prop("offset")-10;
     322}
     323way::justsharedlane2 {
     324        offset: prop("offset", "base");
     325}
     326way[highway][cycleway=shared_lane]::justsharedlane2 {
     327        color: #55f;
     328        dashes: 4,10;
     329        width: 4;
     330        offset: prop("offset")+10;
     331}
     332
     333way::buffer {
     334        offset: prop("offset", "base");
     335}
     336way[highway][cycleway:both:buffer=yes]::buffer,way[highway][cycleway:right:buffer=yes]::buffer {
     337        color: #0f0;
     338        width: 4;
     339        offset: prop("offset")-6;
     340}
     341way::buffer2 {
     342        offset: prop("offset", "base");
     343}
     344way[highway][cycleway:both:buffer=yes]::buffer2,way[highway][cycleway:left:buffer=yes]::buffer2 {
     345        color: #0f0;
     346        width: 4;
     347        offset: prop("offset")+6;
     348}
     349
     350way::nobuffer {
     351        offset: prop("offset", "base");
     352}
     353way[highway][cycleway:both:buffer=no]::nobuffer,way[highway][cycleway:right:buffer=no]::nobuffer {
     354        color: red;
     355        width: 4;
     356        offset: prop("offset")-6;
     357}
     358way::nobuffer2 {
     359        offset: prop("offset", "base");
     360}
     361way[highway][cycleway:both:buffer=no]::nobuffer2,way[highway][cycleway:left:buffer=no]::nobuffer2 {
     362        color: red;
     363        width: 4;
     364        offset: prop("offset")+6;
     365}
     366
     367way::wrongbuffer {
     368        offset: prop("offset", "base");
     369}
     370way[highway][cycleway:buffer=yes]::wrongbuffer,way[highway][cycleway:buffer=no]::wrongbuffer {
     371        color: yellow;
     372        width: 4;
     373        offset: prop("offset")-6;
     374}
     375way::wrongbuffer2 {
     376        offset: prop("offset", "base");
     377}
     378way[highway][cycleway:buffer=yes]::wrongbuffer2,way[highway][cycleway:buffer=no]::wrongbuffer2 {
     379        color: yellow;
     380        width: 4;
     381        offset: prop("offset")+6;
     382}
     383
     384way::parkparallel {
     385        offset: prop("offset", "base");
     386}
     387way[highway][parking:both=lane][parking:both:orientation=parallel]::parkparallel,way[highway][parking:right=lane][parking:right:orientation=parallel]::parkparallel {
     388        color: #ff0;
     389        dashes: 10,4;
     390        width: 5;
     391        offset: prop("offset")-15;
     392        opacity: 0.5;
     393}
     394way::parkparallel2 {
     395        offset: prop("offset", "base");
     396}
     397way[highway][parking:both=lane][parking:both:orientation=parallel]::parkparallel2,way[highway][parking:left=lane][parking:left:orientation=parallel]::parkparallel2 {
     398        color: #ff0;
     399        dashes: 10,4;
     400        width: 5;
     401        offset: prop("offset")+15;
     402        opacity: 0.5;
     403}
     404
     405way::parkparallelold {
     406        offset: prop("offset", "base");
     407}
     408way[highway][parking:lane=parallel]::parkparallelold,way[highway][parking:lane:both=parallel]::parkparallelold,way[highway][parking:lane:right=parallel]::parkparallelold {
     409        color: #f00;
     410        dashes: 10,4;
     411        width: 5;
     412        offset: prop("offset")-15;
     413        opacity: 0.8;
     414}
     415way::parkparallelold2 {
     416        offset: prop("offset", "base");
     417}
     418way[highway][parking:lane=parallel]::parkparallelold2,way[highway][parking:lane:both=parallel]::parkparallelold2,way[highway][parking:lane:left=parallel]::parkparallelold2 {
     419        color: #f00;
     420        dashes: 10,4;
     421        width: 5;
     422        offset: prop("offset")+15;
     423        opacity: 0.8;
     424}
     425
     426way::parkperp {
     427        offset: prop("offset", "base");
     428}
     429way[highway][parking:both=lane][parking:both:orientation=perpendicular]::parkperp,way[highway][parking:right=lane][parking:right:orientation=perpendicular]::parkperp {
     430        color: #ff0;
     431        dashes: 5,5;
     432        width: 12;
     433        offset: prop("offset")-15;
     434        opacity: 0.5;
     435}
     436way::parkperp2 {
     437        offset: prop("offset", "base");
     438}
     439way[highway][parking:both=lane][parking:both:orientation=perpendicular]::parkperp2,way[highway][parking:left=lane][parking:left:orientation=perpendicular]::parkperp2 {
     440        color: #ff0;
     441        dashes: 5,5;
     442        width: 12;
     443        offset: prop("offset")+15;
     444        opacity: 0.5;
     445}
     446
     447way::parkperpold {
     448        offset: prop("offset", "base");
     449}
     450way[highway][parking:lane=perpendicular]::parkperpold,way[highway][parking:lane:both=perpendicular]::parkperpold,way[highway][parking:lane:right=perpendicular]::parkperpold {
     451        color: #f00;
     452        dashes: 5,5;
     453        width: 12;
     454        offset: prop("offset")-15;
     455        opacity: 0.8;
     456}
     457way::parkperpold2 {
     458        offset: prop("offset", "base");
     459}
     460way[highway][parking:lane=perpendicular]::parkperpold2,way[highway][parking:lane:both=perpendicular]::parkperpold2,way[highway][parking:lane:left=perpendicular]::parkperpold2 {
     461        color: #f00;
     462        dashes: 5,5;
     463        width: 12;
     464        offset: prop("offset")+15;
     465        opacity: 0.8;
     466}
     467
     468way::parkdiag {
     469        offset: prop("offset", "base");
     470}
     471way[highway][parking:both=lane][parking:both:orientation=diagonal]::parkdiag,way[highway][parking:right=lane][parking:right:orientation=diagonal]::parkdiag {
     472        color: #fa0;
     473        dashes: 8,5;
     474        width: 10;
     475        offset: prop("offset")-15;
     476        opacity: 0.5;
     477}
     478way::parkdiag2 {
     479        offset: prop("offset", "base");
     480}
     481way[highway][parking:both=lane][parking:both:orientation=diagonal]::parkdiag2,way[highway][parking:left=lane][parking:left:orientation=diagonal]::parkdiag2 {
     482        color: #fa0;
     483        dashes: 8,5;
     484        width: 10;
     485        offset: prop("offset")+15;
     486        opacity: 0.5;
     487}
     488
     489way::parkdiagold {
     490        offset: prop("offset", "base");
     491}
     492way[highway][parking:lane=diagonal]::parkdiagold,way[highway][parking:lane:both=diagonal]::parkdiagold,way[highway][parking:lane:right=diagonal]::parkdiagold {
     493        color: #f00;
     494        dashes: 8,5;
     495        width: 10;
     496        offset: prop("offset")-15;
     497        opacity: 0.8;
     498}
     499way::parkdiagold2 {
     500        offset: prop("offset", "base");
     501}
     502way[highway][parking:lane=diagonal]::parkdiagold2,way[highway][parking:lane:both=diagonal]::parkdiagold2,way[highway][parking:lane:left=diagonal]::parkdiagold2 {
     503        color: #f00;
     504        dashes: 8,5;
     505        width: 10;
     506        offset: prop("offset")+15;
     507        opacity: 0.8;
     508}
     509
     510way[highway=footway][bicycle=yes]::bike { z-index: 0; color: #55f; width: 4; }
     511way[highway=footway][bicycle=permissive]::bike { z-index: 0; color: #55f; width: 4; }
     512way[highway=footway][bicycle=designated]::bike { z-index: 0; color: blue; width: 4; }
     513way[highway=footway][bicycle=no]::bike { z-index: 0; color: #f00; width: 4; }
     514way[highway=bridleway][bicycle=yes]::bike { z-index: 0; color: #55f; width: 4; }
     515way[highway=bridleway][bicycle=permissive]::bike { z-index: 0; color: #55f; width: 4; }
     516way[highway=bridleway][bicycle=designated]::bike { z-index: 0; color: blue; width: 4; }
     517way[highway=bridleway][bicycle=no]::bike { z-index: 0; color: #f00; width: 4; }
     518way[highway=path][bicycle=yes]::bike { z-index: 0; color: #55f; width: 4; }
     519way[highway=path][bicycle=permissive]::bike { z-index: 0; color: #55f; width: 4; }
     520way[highway=path][bicycle=designated]::bike { z-index: 0; color: blue; width: 4; }
     521way[highway=path][bicycle=no]::bike { z-index: 0; color: #f00; width: 4; }
     522way[highway=pedestrian][bicycle=yes]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     523way[highway=pedestrian][bicycle=permissive]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     524way[highway=pedestrian][bicycle=designated]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     525way[highway=pedestrian][bicycle=no]::bike { z-index: 6; color: #f00; width: 2; dashes: 4,4;}
     526way[highway=service][bicycle=yes]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     527way[highway=service][bicycle=permissive]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     528way[highway=service][bicycle=designated]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     529way[highway=service][bicycle=no]::bike { z-index: 6; color: #f00; width: 2; dashes: 4,4;}
     530way[highway=residential][bicycle=yes]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     531way[highway=residential][bicycle=permissive]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     532way[highway=residential][bicycle=designated]::bike { z-index: 6; color: blue; width: 2; dashes: 4,4;}
     533}}}