File: opencyclemap.css

package info (click to toggle)
josm 0.0.svn7643%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 67,480 kB
  • ctags: 25,960
  • sloc: java: 177,482; xml: 8,896; perl: 1,570; sh: 102; makefile: 81
file content (150 lines) | stat: -rw-r--r-- 9,345 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/*

	Stylesheet that mimicks, to a certain extent, opencyclemap
        Andy Allan, June 2010

	Based heavily on:
	MapCSS demonstration stylesheet
	Richard Fairhurst, October 2009
	
*/

/* This rule applies to all areas (closed ways). Note that rules are applied in the order
  they appear in the file, so later rules may replace this one for some ways.
  This is used as a debugger for finding unstyled areas; it's obviously oversimplistic since
  it picks up closed-loop highways. */

way :area { color: grey; width: 1; fill-color: red; fill-opacity: 0.1; }

/* A set of fairly standard rules.
  We use z-index to make sure high-priority roads appear above minor ones.
  The default z-index is 5. If an object matches multiple rules with the same
  z-index then the rules are "merged" (but individual properties become one or the other)  */

/*way[highway=motorway],way[highway=motorway_link],
way[highway=trunk],way[highway=trunk_link],
way[highway=primary],way[highway=primary_link],
way[highway=secondary],way[highway=secondary_link],
way[highway=tertiary],way[highway=tertiary_link],
way[highway=residential]                             { text: name; text-color: black; font-size: 7; text-position: line;}*/
way[highway=motorway],way[highway=motorway_link]    { z-index: 9; color: #bfbfcf; width: 7; casing-color: #506077; casing-width: 1; }
way[highway=trunk],way[highway=trunk_link]          { z-index: 9; color: #c8d8c8; width: 7; casing-color: #477147; casing-width: 1; }
way[highway=primary],way[highway=primary_link]      { z-index: 8; color: #d8c8c8; width: 7; casing-color: #8d4346; casing-width: 1; }
way[highway=secondary],way[highway=secondary_link]  { z-index: 7; color: #eeeec9; width: 7; casing-color: #a37b48; casing-width: 1; }
way[highway=tertiary],way[highway=unclassified]     { z-index: 6; color: #eeeec9; width: 5; casing-color: #999999; casing-width: 1; }
way[highway=residential]                            { z-index: 5; color: white; width: 5; casing-color: #999; casing-width: 1; }
way[highway=service]                                { color: white; width: 3; casing-color: #999; casing-width: 1; }

/* Pedestrian precincts need to be treated carefully. Only closed-loops with an explicit
area=yes tag should be filled. The below doesn't yet work as intended. */
way[highway=pedestrian] !:area { color: #ddddee; width: 5; casing-color: #555555; casing-width: 1; }
way[highway=pedestrian] :area  { color: #555555; width: 1; fill-color: #ddddee; fill-opacity: 0.8; }

way[highway=steps]     { color: #be6c6c; width: 2; dashes: 4, 2; }
way[highway=footway]   { color: #be6c6c; width: 2; dashes: 6, 3; }
way[highway=cycleway]  { color: blue; width: 1.6; dashes: 5, 4; }
way[highway=bridleway] { z-index:9; color: #996644; width: 2; dashes: 4, 2, 2, 2; }
way[highway=track]     { color: #996644; width: 2; dashes: 4, 2; }
way[highway=path]      { color: lightgreen; width: 2; dashes: 2, 2; }

way[waterway=river], way[waterway=canal] { color: blue; width: 2; text:name; text-color:blue; font-size:9; text-position: offset; text-offset: 7;}

way[barrier] {color: #000000; width: 1}

/* Fills can be solid colour or bitmap images */


way[natural] :area                          { color: #ADD6A5; width: 1; fill-color: #ADD6A5; fill-opacity: 0.2; }
way[landuse] :area                          { color: #efefef; width: 1; fill-color: #f5f5f5; fill-opacity: 0.3; }
way[amenity],way[shop] :area                { color: #ADCEB5; width: 1; fill-color: #ADCEB5; fill-opacity: 0.2; }
way[leisure],way[sport] :area               { color: #8CD6B5; width: 1; fill-color: #8CD6B5; fill-opacity: 0.2; }
way[tourism] :area                          { color: #F7CECE; width: 1; fill-color: #F7CECE; fill-opacity: 0.2; }
way[historic],way[ruins] :area              { color: #F7F7DE; width: 1; fill-color: #F7F7DE; fill-opacity: 0.2; }
way[military] :area                         { color: #D6D6D6; width: 1; fill-color: #D6D6D6; fill-opacity: 0.2; }
way[building] :area                         { color: #8d8d8d; width: 1; fill-color: #e0e0e0; fill-opacity: 0.2; }
way[natural=water],
way[waterway] :area               { color: blue;    width: 2; fill-color: blue;    fill-opacity: 0.2; }
way[landuse=forest],way[natural=wood] :area { color: green;   width: 2; fill-color: green;   fill-opacity: 0.2; }
way[leisure=pitch],way[leisure=park]        { color: #44ff44; width: 1; fill-color: #44ff44; fill-opacity: 0.2; }
way[amenity=parking] :area                  { color: gray;    width: 1; fill-color: gray;    fill-opacity: 0.2; }
way[public_transport=pay_scale_area] :area  { color: gray;    width: 1; fill-color: gray;    fill-opacity: 0.1; }

/* Addressing. Nodes with addresses *and* match POIs should have a poi icon, so we put addressing first */ 

node[addr:housenumber],
node[addr:housename] { icon-image: circle; icon-width: 8; color: #B0E0E6; casing-color:blue; casing-width: 1; }
way[addr:interpolation] { color: #B0E0E6; width: 3; dashes: 3,3;}

/* POIs, too, can have bitmap icons - they can even be transparent */

node[amenity=pub] { icon-image: icons/pub.png; text-offset: 15; font-family: DejaVu; text: name; font-size: 9; }
/*node[place] { icon-image: icons/place.png; text-offset: 17; font-family: DejaVu; text: name; font-size: 9; font-weight: bold; text-decoration: underline; }
node[railway=station] { icon-image: icons/station.png; text-offset: 13; font-family: DejaVu; text: name; font-size: 9; font-weight: bold; }
node[aeroway=aerodrome] { icon-image: icons/airport.png; text-offset: 13; font-family: DejaVu; text: name; font-size: 10; }
node[amenity=atm] { icon-image: icons/atm.png; }
node[amenity=bank] { icon-image: icons/bank.png; text-offset: 15; text: name; }
node[highway=bus_stop] { icon-image: icons/bus_stop.png; }
node[amenity=cafe] { icon-image: icons/cafe.png; text-offset: 15; text: name; }
node[shop=convenience] { icon-image: icons/convenience.png; text-offset:15; text:name; }
node[shop=supermarket] { icon-image: icons/supermarket.png; text-offset:15; text:name; }
node[amenity=fast_food] { icon-image: icons/fast_food.png; text-offset:15; text: name; }
node[amenity=fire_station] { icon-image: icons/fire_station.png; }
node[amenity=hospital] { icon-image: icons/hospital.png; }
node[tourism=hotel] { icon-image: icons/hotel.png; }
node[amenity=parking] { icon-image: icons/parking.png; } */
node[amenity=bicycle_parking] { icon-image: icons/parking_cycle.png; text-offset: 15; text: capacity; text-color: blue }
/* node[amenity=pharmacy] { icon-image: icons/pharmacy.png; }
node[amenity=pharmacy][dispensing=yes] { icon-image: icons/pharmacy_dispensing.png; }
node[amenity=police] { icon-image: icons/police.png; }
node[amenity=post_box] { icon-image: icons/post_box.png; }
node[amenity=recycling] { icon-image: icons/recycling.png; }
node[amenity=restaurant] { icon-image: icons/restaurant.png; }
node[amenity=school] { icon-image: icons/school.png; }
node[amenity=taxi] { icon-image: icons/taxi.png; }
node[amenity=telephone] { icon-image: icons/telephone.png; }
way node[barrier=gate], way node[highway=gate] { icon-image: icons/gate.png; }
node[barrier=cattle_grid] { icon-image: icons/cattle_grid.png; }*/

/* Important shops */
node[shop=bicycle] { icon-image: icons/shopping_bicycle.n.16.png; text-offset: 15; text: name; }

/* We can stack styles at different z-index (depth) */

way[railway=rail] { z-index: 6; color: #444444; width: 5; }
way[railway=rail]::dashes { z-index: 7; color: white; width: 3; dashes: 12,12; }
way[railway=platform] { color:black; width: 2; }
way[railway=subway] { z-index: 6; color: #444444; width: 5; }
way[railway=subway]::dashes { z-index: 7; color: white; width: 3; dashes: 8,8; }

/* Bridge */
way[bridge=yes]::bridge1, way[bridge=viaduct]::bridge1, way[bridge=suspension]::bridge1  { z-index: 4; color: white; width: eval('_width+3'); }
way[bridge=yes]::bridge2, way[bridge=viaduct]::bridge2, way[bridge=suspension]::bridge2  { z-index: 3; color: black; width: eval('_width+6'); }
    
/* Tunnel */
way[tunnel=yes]::tunnel1 { z-index: 4; color: white; width: eval('_width+2'); }
way[tunnel=yes]::tunnel2 { z-index: 3; color: black; width: eval('_width+6'); dashes: 4,4; }

/* Oneway */
way[oneway=yes]::arrows { z-index: 10; color: #6c70d5; width: 2; dashes: 10,30; line-style: arrows; }


/* Change the road colour based on dynamically set "highlighted" tag (see earlier) */

way .highlighted { color: pink; }

/* Interactive editors may choose different behaviour when a user mouses-over or selects
   an object. Potlatch 2 supports these but the stand-alone Halcyon viewer does not */

@import("stylesheets/core_interactive.css");

/* Descendant selectors provide an easy way to style relations: this example means "any way
   which is part of a relation whose type=route". */

relation[type=route] way::routeline { z-index: 1; width: 17; color: yellow; opacity: 0.3; }
relation[type=route][route=bicycle][network=ncn] way::routeline { z-index: 1; width: 12; color: red; opacity: 0.3; }
relation[type=route][route=bicycle][network=rcn] way::routeline { z-index: 1; width: 12; color: cyan; opacity: 0.3; }
relation[type=route][route=bicycle][network=lcn] way::routeline { z-index: 1; width: 12; color: blue; opacity: 0.3; }
relation[type=route][route=bicycle][network=mtb] way::routeline { z-index: 1; width: 12; color: #48a448; opacity: 0.3; }