1<!--
2
3stylesheet by Markus Straub, code@ravage.at, 2011
4
5error_red: illegal value for cycleway
6attention_cyan: usage of cycleway:left or cycleway:right
7
8black street: cycling is forbidden (motorways, trunk, bicycle=no)
9
10white street: all vehicles can go in both directions
11light pink street: oneway (except for bicycles)
12dark pink street: oneway (for all vehicles)
13
14fat grey border: lane
15fat blue border: track
16
17blue: cycleway
18dashed blue-red (with little red): cycleway with pedestrians allowed
19dashed blue-red (with a lot of red): pedestrian street/way where cycling is allowed
20
21-->
22
23<!DOCTYPE mapStyle [
24<!ENTITY drivableRoads "[highway] isoneof (primary, primary_link, secondary, secondary_link, tertiary, tertiary_link, unclassified, residential, living_street, pedestrian, minor, service, ford, road)">
25<!ENTITY drivableRoads_minor "[highway] isoneof (living_street, pedestrian, minor, service, ford, road)">
26<!ENTITY error_red "#FF0000fc">
27<!ENTITY attention_cyan "#00FFFFfc">
28<!ENTITY forbidden_black "#333333fc">
29<!ENTITY pedestrian_red "#ff8888fc">
30<!ENTITY cycle_blue "#0000FFfc">
31<!ENTITY normal_road_white "#fffffffc">
32<!ENTITY open_oneway_pink "#E1CAFAfc">
33<!ENTITY closed_oneway_violet "#FF53B8fc">
34<!ENTITY lane_border_gray "#777777fc">
35]>
36
37<mapStyle>
38
39<painter
40 backgroundColor="&lane_border_gray;" backgroundScale="0.1" backgroundOffset="0.1"
41 fillColor="#777777fc"
42 drawTrafficDirectionMarks="no" labelColor="#333333fc" labelScale="5" labelOffset="5"
43 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
44  <selector expr="[area] isoneof (yes , true)"/>
45</painter>
46
47<!-- //////////////////////// SPECIAL //////////////////////// -->
48
49<!-- invalid values for cycleway -->
50<painter
51 backgroundColor="&error_red;" backgroundScale="2" backgroundOffset="3"
52 foregroundColor="&error_red;" foregroundScale="1" foregroundOffset="2"
53 zoomUnder="0.1" zoomUpper="1e+07"
54 drawTrafficDirectionMarks="yes" labelColor="#ddddddff" labelScale="1.2" labelOffset="3"
55 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelBackgroundColor="#ffffff7c" labelBackgroundTag=""
56>
57  <selector expr="not [cycleway] is _NULL_ and not [cycleway] isoneof (lane, track, opposite, opposite_lane, opposite_track)"/>
58</painter>
59
60<!-- usage of cycleway:left of cycleway:right -->
61<painter
62 backgroundColor="&attention_cyan;" backgroundScale="2" backgroundOffset="3"
63 foregroundColor="&attention_cyan;" foregroundScale="1" foregroundOffset="2"
64 zoomUnder="0.1" zoomUpper="1e+07"
65 drawTrafficDirectionMarks="yes" labelColor="#ddddddff" labelScale="1.2" labelOffset="3"
66 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelBackgroundColor="#ffffff7c" labelBackgroundTag=""
67>
68  <selector expr="not [cycleway:left] is _NULL_ or not [cycleway:right] is _NULL_"/>
69</painter>
70
71<!-- roads where bikes are not allowed: completely gray -->
72<painter
73 backgroundColor="&forbidden_black;" backgroundScale="1.2" backgroundOffset="3"
74 foregroundColor="&forbidden_black;" foregroundScale="1" foregroundOffset="2"
75>
76  <selector expr="[highway] isoneof (motorway, motorway_link, trunk, trunk_link) or [bicycle] isoneof (0, no)"/>
77</painter>
78
79<!-- in living streets cyclists can ignore oneways -->
80<painter
81 backgroundColor="&lane_border_gray;" backgroundScale="0.7" backgroundOffset="3"
82 foregroundColor="&open_oneway_pink;" foregroundScale="0.5" foregroundOffset="2"
83 drawTrafficDirectionMarks="yes"
84>
85  <selector expr="[highway] is living_street and [oneway] is yes"/>
86</painter>
87
88
89<!-- //////////////////////// ONEWAYS //////////////////////// -->
90
91<!-- drivable road & oneway & cycleway=opposite_track: slight violet with fat blue border -->
92<painter
93 backgroundColor="&cycle_blue;" backgroundScale="2.5" backgroundOffset="3"
94 foregroundColor="&open_oneway_pink;" foregroundScale="1" foregroundOffset="2"
95 drawTrafficDirectionMarks="yes"
96>
97  <selector expr="&drivableRoads; and [oneway] is yes and [cycleway] is opposite_track"/>
98</painter>
99
100<!-- drivable road & oneway & cycleway=opposite_lane: slight violet with fat border -->
101<painter
102 backgroundColor="&lane_border_gray;" backgroundScale="2.5" backgroundOffset="3"
103 foregroundColor="&open_oneway_pink;" foregroundScale="1" foregroundOffset="2"
104 drawTrafficDirectionMarks="yes"
105>
106  <selector expr="&drivableRoads; and [oneway] is yes and [cycleway] is opposite_lane"/>
107</painter>
108
109<!-- drivable road & oneway & cycleway=opposite: slight violet with gray border -->
110<painter
111 backgroundColor="&lane_border_gray;" backgroundScale="1.2" backgroundOffset="3"
112 foregroundColor="&open_oneway_pink;" foregroundScale="1" foregroundOffset="2"
113 drawTrafficDirectionMarks="yes"
114>
115  <selector expr="&drivableRoads; and [oneway] is yes and [cycleway] is opposite"/>
116</painter>
117
118<!-- drivable road & oneway & cycleway=track: heavy violet with fat blue border -->
119<painter
120 backgroundColor="&cycle_blue;" backgroundScale="2.5" backgroundOffset="3"
121 foregroundColor="&closed_oneway_violet;" foregroundScale="1" foregroundOffset="2"
122 drawTrafficDirectionMarks="yes"
123>
124  <selector expr="&drivableRoads; and [oneway] is yes and [cycleway] is track"/>
125</painter>
126
127<!-- drivable road & oneway & cycleway=lane: heavy violet with fat gray border -->
128<painter
129 backgroundColor="&lane_border_gray;" backgroundScale="2.5" backgroundOffset="3"
130 foregroundColor="&closed_oneway_violet;" foregroundScale="1" foregroundOffset="2"
131 drawTrafficDirectionMarks="yes"
132>
133  <selector expr="&drivableRoads; and [oneway] is yes and [cycleway] is lane"/>
134</painter>
135
136<!-- drivable road & oneway: heavy violet with gray border -->
137<painter
138 backgroundColor="&lane_border_gray;" backgroundScale="1.2" backgroundOffset="3"
139 foregroundColor="&closed_oneway_violet;" foregroundScale="1" foregroundOffset="2"
140 drawTrafficDirectionMarks="yes"
141>
142  <selector expr="&drivableRoads; and [oneway] is yes"/>
143</painter>
144
145
146
147
148<!-- //////////////////////// DEDICATED CYCLEWAYS / FOOTWAYS //////////////////////// -->
149
150<painter
151 backgroundColor="&cycle_blue;" backgroundScale="0.7" backgroundOffset="3"
152 foregroundColor="&pedestrian_red;" foregroundScale="0.3" foregroundOffset="2"
153 foregroundDashDown="4" foregroundDashUp="2"
154 drawTrafficDirectionMarks="yes"
155>
156  <selector expr="[highway] isoneof (pedestrian, bridleway, path, footway, steps) and [bicycle] isoneof (1, yes, permissive, destination, official, designated)"/>
157</painter>
158
159<painter
160 backgroundColor="&cycle_blue;" backgroundScale="0.7" backgroundOffset="3"
161 foregroundColor="&pedestrian_red;" foregroundScale="0.3" foregroundOffset="2"
162 foregroundDashDown="1" foregroundDashUp="5"
163 drawTrafficDirectionMarks="yes"
164>
165  <selector expr="[highway] = cycleway and [foot] isoneof (1, yes, permissive, destination, official, designated)"/>
166</painter>
167
168<painter
169 foregroundColor="&cycle_blue;" foregroundScale="0.7" foregroundOffset="2"
170 drawTrafficDirectionMarks="yes"
171>
172  <selector expr="[highway] isoneof (cycleway)"/>
173</painter>
174
175
176<!-- //////////////////////// NORMAL ROADS //////////////////////// -->
177
178<!-- drivable roads & track: white with fat blue border -->
179<painter
180 backgroundColor="&cycle_blue;" backgroundScale="3" backgroundOffset="3"
181 foregroundColor="&normal_road_white;" foregroundScale="1" foregroundOffset="2"
182>
183  <selector expr="&drivableRoads; and [cycleway] is track"/>
184</painter>
185
186<!-- drivable roads & lane: white with fat gray border -->
187<painter
188 backgroundColor="&lane_border_gray;" backgroundScale="3" backgroundOffset="3"
189 foregroundColor="&normal_road_white;" foregroundScale="1" foregroundOffset="2"
190>
191  <selector expr="&drivableRoads; and [cycleway] is lane"/>
192</painter>
193
194<!-- drivable roads (minor): white with gray border (small) -->
195<painter
196 backgroundColor="&lane_border_gray;" backgroundScale="0.7" backgroundOffset="3"
197 foregroundColor="&normal_road_white;" foregroundScale="0.5" foregroundOffset="2"
198>
199  <selector expr="&drivableRoads_minor;"/>
200</painter>
201
202<!-- drivable roads: white with gray border -->
203<painter
204 backgroundColor="&lane_border_gray;" backgroundScale="1.2" backgroundOffset="3"
205 foregroundColor="&normal_road_white;" foregroundScale="1" foregroundOffset="2"
206>
207  <selector expr="&drivableRoads;"/>
208</painter>
209
210
211
212<!-- //////////////////////// POIs //////////////////////// -->
213
214
215<painter
216 zoomUnder="0.2" zoomUpper="1e+07"
217 icon=":/MapIcons/map-icons/square.small/vehicle/bicycle_rental.png" iconScale="0" iconOffset="0"
218>
219  <selector expr="[amenity] is bicycle_rental"/>
220</painter>
221
222<painter
223 zoomUnder="0.2" zoomUpper="1e+07"
224 icon=":/MapIcons/map-icons/square.small/sports/cycling.png" iconScale="0" iconOffset="0"
225>
226  <selector expr="[shop] is bicycle"/>
227</painter>
228
229<painter
230 zoomUnder="0.2" zoomUpper="1e+07"
231 icon=":/MapIcons/map-icons/square.small/vehicle/parking/garage.png" iconScale="0" iconOffset="0"
232>
233  <selector expr="[amenity] is bicycle_parking and [covered] is yes"/>
234</painter>
235
236<painter
237 zoomUnder="0.2" zoomUpper="1e+07"
238 icon=":/MapIcons/map-icons/square.small/misc/information.png"
239>
240  <selector expr="[amenity] is bicycle_parking"/>
241</painter>
242
243
244
245<painter
246 zoomUnder="0.2" zoomUpper="1e+07"
247 icon=":/Art/Mapnik/mini_round.png" iconScale="0" iconOffset="0"
248 drawTrafficDirectionMarks="no">
249  <selector expr="[highway] is mini_roundabout"/>
250</painter>
251<painter
252 zoomUnder="0.2" zoomUpper="1e+07"
253 icon=":/MapIcons/map-icons/square.small/vehicle/restrictions/traffic-light.png" iconScale="0" iconOffset="0"
254 drawTrafficDirectionMarks="no">
255  <selector expr="[highway] is traffic_signals"/>
256</painter>
257
258
259
260<!-- //////////////////////// AREAS //////////////////////// -->
261
262<painter
263 fillColor="#999933cd"
264 drawTrafficDirectionMarks="no" labelColor="#333333ff" labelScale="1.5" labelOffset="6"
265 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
266  <selector expr="not [building] is _NULL_"/>
267</painter>
268<painter
269 zoomUnder="0.02" zoomUpper="1e+07"
270 fillColor="#b6fdb6cd"
271 drawTrafficDirectionMarks="no" labelColor="&forbidden_black;" labelScale="7" labelOffset="5.5"
272 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
273  <selector expr="[leisure] is park"/>
274</painter>
275<painter
276 zoomUnder="0.02" zoomUpper="1e+07"
277 fillColor="#8ad3afcd"
278 drawTrafficDirectionMarks="yes">
279  <selector expr="[leisure] is pitch"/>
280</painter>
281<painter
282 zoomUnder="0.02" zoomUpper="1e+07"
283 foregroundColor="#770000fc" foregroundScale="0" foregroundOffset="1"
284 fillColor="#ff777777"
285 drawTrafficDirectionMarks="yes">
286  <selector expr="[leisure] is track"/>
287</painter>
288<painter
289 zoomUnder="0.002" zoomUpper="1e+07"
290 fillColor="#aed1a0cd"
291 drawTrafficDirectionMarks="yes">
292  <selector expr="[natural] is wood"/>
293</painter>
294<painter
295 zoomUnder="0.002" zoomUpper="1e+07"
296 fillColor="#aed1a0cd"
297 drawTrafficDirectionMarks="yes">
298  <selector expr="[natural] is meadow"/>
299</painter>
300<painter
301 zoomUnder="0.002" zoomUpper="1e+07"
302 foregroundColor="#007700fc" foregroundScale="0" foregroundOffset="1"
303 fillColor="#bccf8f77"
304 drawTrafficDirectionMarks="yes">
305  <selector expr="[natural] is scrub"/>
306</painter>
307<painter
308 zoomUnder="0.002" zoomUpper="1e+07"
309 foregroundColor="#007700fc" foregroundScale="0" foregroundOffset="1"
310 fillColor="#55994477"
311 drawTrafficDirectionMarks="yes">
312  <selector expr="[natural] is heath"/>
313</painter>
314<painter
315 zoomUnder="0.002" zoomUpper="1e+07"
316 fillColor="#b5d0d0cd"
317 drawTrafficDirectionMarks="no" labelColor="#6699ccfc" labelScale="7" labelOffset="6"
318 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
319  <selector expr="[natural] is water"/>
320</painter>
321<painter
322 fillColor="#b5d0d0cd"
323 drawTrafficDirectionMarks="yes">
324  <selector expr="[natural] is fell"/>
325</painter>
326<painter
327 fillColor="#f2efe9cd"
328 drawTrafficDirectionMarks="yes">
329  <selector expr="[natural] is land"/>
330</painter>
331<painter
332 zoomUnder="0.03" zoomUpper="1e+07"
333 icon=":/Art/Mapnik/peak.png" iconScale="0" iconOffset="0"
334 drawTrafficDirectionMarks="no" labelColor="#333333ff" labelScale="4.0" labelOffset="9"
335 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
336  <selector expr="[natural] is peak"/>
337</painter>
338<painter
339 zoomUnder="0.2" zoomUpper="1e+07"
340 icon=":/MapIcons/map-icons/square.small/misc/landmark/spring.png" iconScale="0" iconOffset="0"
341 drawTrafficDirectionMarks="no" labelColor="#333333ff" labelScale="3.5" labelOffset="3"
342 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
343  <selector expr="[natural] is spring"/>
344</painter>
345<painter
346 zoomUnder="0.2" zoomUpper="1e+07"
347 foregroundColor="#797979fc" foregroundScale="0.3" foregroundOffset="1"
348 touchupColor="#000000ff" touchupScale="0.5" touchupOffset="1"
349 touchupDashDown="1" touchupDashUp="1"
350 drawTrafficDirectionMarks="yes" labelColor="#333333ff" labelScale="3.5" labelOffset="3"
351 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
352  <selector expr="[natural] is cliff"/>
353</painter>
354
355<painter
356 foregroundColor="#b5d0d0fc" foregroundScale="0" foregroundOffset="2"
357 drawTrafficDirectionMarks="yes" labelColor="#6699ccff" labelScale="1.3" labelOffset="3"
358 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
359  <selector expr="[waterway] isoneof (river , canal)"/>
360</painter>
361<painter
362 foregroundColor="#b5d0d0fc" foregroundScale="0" foregroundOffset="2"
363 drawTrafficDirectionMarks="yes" labelColor="#6699ccff" labelScale="1.1" labelOffset="3"
364 labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
365  <selector expr="[waterway] isoneof (stream , drain)"/>
366</painter>
367<painter
368 fillColor="#b5d0d0cd"
369 drawTrafficDirectionMarks="yes">
370  <selector expr="[waterway] is riverbank"/>
371</painter>
372<painter
373 fillColor="#444444cd"
374 drawTrafficDirectionMarks="yes">
375  <selector expr="[sport] is basketball"/>
376</painter>
377<painter
378 fillColor="#c85656cd"
379 drawTrafficDirectionMarks="yes">
380  <selector expr="[sport] is tennis"/>
381</painter>
382<painter
383 fillColor="#00aa7fcd"
384 drawTrafficDirectionMarks="yes">
385  <selector expr="[sport] is soccer"/>
386</painter>
387<painter
388 fillColor="#00aa7fcd"
389 drawTrafficDirectionMarks="yes">
390  <selector expr="[sport] is football"/>
391</painter>
392<painter
393 fillColor="#00aa7fcd"
394 drawTrafficDirectionMarks="yes">
395  <selector expr="[sport] is athletics"/>
396</painter>
397<painter
398 fillColor="#00aa7fcd"
399 drawTrafficDirectionMarks="yes">
400  <selector expr="[sport] is skating"/>
401</painter>
402<painter
403 fillColor="#00c38fcd"
404 drawTrafficDirectionMarks="yes">
405  <selector expr="[sport] is multi"/>
406</painter>
407<painter
408 backgroundColor="&cycle_blue;" backgroundScale="0" backgroundOffset="3"
409 fillColor="#a0b6ffcd"
410 drawTrafficDirectionMarks="yes">
411  <selector expr="[sport] is swimming"/>
412</painter>
413<painter
414 zoomUnder="0.1" zoomUpper="1e+07"
415 backgroundColor="#707070fc" backgroundScale="0.1" backgroundOffset="0"
416 drawTrafficDirectionMarks="no">
417  <selector expr="[power] is line"/>
418</painter>
419<painter
420 zoomUnder="0.2" zoomUpper="1e+07"
421 icon=":/Art/Mapnik/power_tower.png" iconScale="0" iconOffset="0"
422 drawTrafficDirectionMarks="no">
423  <selector expr="[power] is tower"/>
424</painter>
425
426</mapStyle>
427