1 # Walkabout is an outdoor style perfect for hiking or getting out and about, with
2 # mountains, ski trails, biking paths, and transit stops.
4 # Give OpenStreetMap data a professional basemap skin using the Tangram graphics library
5 # and Mapzen's versatile Vector Tiles.
7 # Please use and adapt the open source scene file in your own projects!
9 # Authors: Geraldine Sarmiento, Nathaniel V. Kelso
10 # Read more: https://github.com/tangrams/walkabout-style
17 # missing transit overlay
19 # To facilitate data visualizations several recommended sort orders are provided
21 # Your classic raster map overlay.
22 # Over all line and polygon features.
23 # Under map labels (icons and text), under UI elements
24 # (like routeline and search result pins).
25 sdk_order_over_everything_but_text_0: 490
26 sdk_order_over_everything_but_text_1: 491
27 sdk_order_over_everything_but_text_2: 492
28 sdk_order_over_everything_but_text_3: 493
29 sdk_order_over_everything_but_text_4: 494
30 sdk_order_over_everything_but_text_5: 495
31 sdk_order_over_everything_but_text_6: 496
32 sdk_order_over_everything_but_text_7: 497
33 sdk_order_over_everything_but_text_8: 498
34 sdk_order_over_everything_but_text_9: 499
36 # Your classic "underlay"
37 # Under roads. Above borders, water, landuse, and earth.
38 sdk_order_under_roads_0: 290
39 sdk_order_under_roads_1: 291
40 sdk_order_under_roads_2: 292
41 sdk_order_under_roads_3: 293
42 sdk_order_under_roads_4: 294
43 sdk_order_under_roads_5: 295
44 sdk_order_under_roads_6: 296
45 sdk_order_under_roads_7: 297
46 sdk_order_under_roads_8: 298
47 sdk_order_under_roads_9: 299
50 # Above earth and most landuse.
51 sdk_order_under_water_0: 190
52 sdk_order_under_water_1: 191
53 sdk_order_under_water_2: 192
54 sdk_order_under_water_3: 193
55 sdk_order_under_water_4: 194
56 sdk_order_under_water_5: 195
57 sdk_order_under_water_6: 196
58 sdk_order_under_water_7: 197
59 sdk_order_under_water_8: 198
60 sdk_order_under_water_9: 199
63 # Tip: disable earth layer.
64 sdk_order_under_everything_0: 0
65 sdk_order_under_everything_1: 1
66 sdk_order_under_everything_2: 2
67 sdk_order_under_everything_3: 3
68 sdk_order_under_everything_4: 4
69 sdk_order_under_everything_5: 5
70 sdk_order_under_everything_6: 6
71 sdk_order_under_everything_7: 7
72 sdk_order_under_everything_8: 8
73 sdk_order_under_everything_9: 9
75 # default order for basemap features
76 feature_order: function() { return feature.sort_rank; }
78 # TODO: YAML based globals below will move into this Tangram globals block
81 - &text_visible_continent true
82 - &text_visible_island true
83 - &text_visible_admin true
84 - &text_visible_populated_places true
85 - &icon_visible_populated_places true
86 - &text_visible_neighbourhoods true
87 - &text_visible_neighbourhoods_e true
88 - &text_visible_building true
89 - &text_visible_address true
90 - &text_visible_water_labels true
91 - &label_visible_landuse_green true
92 - &icon_visible_landuse_green true #this needs work
93 - &text_visible_landuse_green true
94 - &label_visible_poi_landuse true
95 - &icon_visible_poi_landuse false #false for default
96 - &text_visible_poi_landuse false #false for default
97 - &label_visible_poi_landuse_e true
98 - &icon_visible_poi_landuse_e false #false for default
99 - &text_visible_poi_landuse_e true
100 - &label_visible_station false #false for default
101 - &icon_visible_station false #false for default
102 - &text_visible_station false #false for default
103 - &text_visible_highway true
104 - &text_visible_highway_e false #false for default
105 - &text_visible_trunk_primary true
106 - &text_visible_trunk_primary_e2 false #false for default
107 - &text_visible_trunk_primary_e false #false for default
108 - &text_visible_secondary true
109 - &text_visible_secondary_e false #false for default
110 - &text_visible_tertiary true
111 - &text_visible_tertiary_e false #false for default
112 - &text_visible_minor_road true
113 - &text_visible_minor_road_e true
114 - &text_visible_service_road true
115 - &text_visible_path true
116 - &text_visible_piste true
117 - &text_visible_steps true
118 - &text_visible_aerialway true
119 - &text_visible_shields true
120 - &text_visible_exits true
121 - &text_visible_exits_e false #false for default
122 - &text_visible_airport_gate true
126 - &camera_settings { type: isometric, axis: [-.2, .2] }
129 - &light_settings { type: directional, direction: [1, 1, -.9], diffuse: 0.5, ambient: 0.85 }
132 - &highway1 [1.00,1.00,1.00]
133 - &highway_link1 [0.00, 0.00, 0.00]
134 - &highway_casing1 [0.894,0.906,0.914]
135 - &highway_tunnel1 [0.930,0.930,0.930]
136 - &highway_tunnel_casing1 [0.894,0.906,0.914]
137 - &highway_link_tunnel_casing1 [0.350,0.350,0.350]
138 - &ferry1 [0.410,0.750,0.833]
141 - &rail2 '#777' # less important rail (service, sidings)
142 - &major_road1 [1.0, 1.0, 1.0]
143 - &major_road1b [0.935, 0.935, 0.935]
144 - &major_road1c white #15%
145 - &major_road2 [0.935, 0.935, 0.935]
146 - &major_road2a [0.935, 0.935, 0.935]
147 - &major_road2b [0.935, 0.935, 0.935]
148 - &major_road3 [0.935, 0.935, 0.935]
149 - &major_road4 [0.00, 0.00, 0.00]
151 - &major_casing1 [0.40, 0.40, 0.40] # same as highway_casing1
152 - &major_casing2 [0.40, 0.40, 0.40] # zoomed out
153 - &major_tunnel1 [0.930,0.930,0.930]
154 - &major_tunnel_casing1 [1.00, 1.00, 1.00]
155 - &major_route1 [0.0, 0.0, 0.0]
156 - &major_route2 [0.2, 0.2, 0.2] # zoomed out
157 - &minor_route [0.97, 0.97, 0.97] # same as major_route
158 - &minor_road1 [0.935, 0.935, 0.935] # natural earth
159 - &minor_road2 [1.00,1.00,1.00] # natural earth, same as major_road2
160 - &minor_road3 [0.935, 0.935, 0.935]
161 - &minor_road4 [0.935, 0.935, 0.935] # zoomed out
162 - &minor_road5 [0.935, 0.935, 0.935] # zoomed out, again
163 - &minor_casing1 white # same as highway_casing1
164 - &minor_casing2 white # zoomed out
165 - &minor_tunnel1 [0.930,0.930,0.930]
166 - &minor_tunnel_casing1 [1.00, 1.00, 1.00]
167 - &service_road1 [0.935, 0.935, 0.935]
168 - &service_road2 white
169 - &service_road_casing1 [0.40, 0.40, 0.40]
170 - &service_road_casing2 white
171 - &path1 [0.97, 0.97, 0.97]
172 - &path2 [0.97, 0.97, 0.97] # zoomed out
173 - &path_casing1 [0.40, 0.40, 0.40]
174 - &path_bridge_casing1 [0.40, 0.40, 0.40]
175 - &path_bridge_casing2 [0.40, 0.40, 0.40] # zoomed out
177 - &path_steps1_b '#ccc'
178 - &piste_easy [0.367,0.750,0.622]
179 - &piste_intermediate [0.420,0.678,0.863]
180 - &piste_advanced [0.450,0.450,0.450]
181 - &piste_expert [0.450,0.450,0.450]
184 - &country_boundary [1.00,1.00,1.00]
185 - ®ion_boundary [1.00,1.00,1.00]
186 - &subregion_boundary [1.00,1.00,1.00]
187 - &city_wall [0.682,0.682,0.682]
188 - &retaining_wall [0.827,0.808,0.780]
189 - &snow_fence [0.827,0.808,0.780]
190 - &fence [0.827,0.808,0.780]
191 - &dam [0.827,0.808,0.780]
194 - &scene1 white # map background
195 - &water1 [0.870, 0.870, 0.870] # water wave
196 - &water2 [0.760, 0.760, 0.760] # water wave
197 - &water3 [0.5, 0.5, 0.5] # playa texture
198 - &water1_o '#fff' # water stroke (ocean coastline)
199 - &water2_o '#d1d1d1' # water stroke 2 (streams, lake outlines)
200 - &earth1 white # land color
201 - &earth2 '#e9e4e0' # urban
202 - &earth2_v false # urban
203 - &green1 [0.50,0.50,0.50] # park
204 - &green1_r '#bbbbbb' # park roads
205 - &green1_b [.65, .65, .65] # park buildings
206 - &green1_bo [.8, .8, .8] # park building outlines
207 - &green2 [0.90,0.90,0.90] # cemetery
208 - &green3 '#9a9a9a' # golf course
209 - &green4 [0.90,0.90,0.90] # farm faint
210 - &green4_v false # farm faint
211 - &green5 [0.75,0.75,0.75] # farm
212 - &green6 [0.40,0.40,0.40] # nature reserve
213 - &green7 [0.85,0.85,0.85] # forest
214 - &green8 [0.80,0.80,0.80] # conservation
215 - &green9 [0.85,0.85,0.85] # forest (landcover)
216 - &green9_e [0.90,0.90,0.90] # forest (landcover) early
217 - &green9_v true # forest (landcover) visibility
218 - &green10 [0.85,0.85,0.85] # sports_centre
219 - &green11 [0.85,0.85,0.85] # minor zoo related AOIs
220 - &green11_o [0.85,0.85,0.85] # minor zoo related AOIs outline
221 - &orange1 '#aaaaaa' # stadium
222 - &orange2 [0.40,0.40,0.40] # pitch (play field)
223 - &brown1 '#7b7b7b' # university
224 - &brown1_r '#bbbbbb' # university roads
225 - &brown1_b [.65, .65, .65] # university buildings
226 - &brown1_bo [.8, .8, .8] # university building outlines
227 - &brown2 '#aaaaaa' # school
228 - &brown3 [0.40,0.40,0.40] # playground
229 - &red1 '#a2a2a2' # hospital
230 - &red1_r '#bbbbbb' # hospital roads
231 - &red1_b [.65, .65, .65] # hospital buildings
232 - &red1_bo [.8, .8, .8] # hospital building outlines
233 - &gray-all [0.935,0.960,0.970] # default gray for landuse outdoor style
234 - &grey1 '#cccccc' # pedestrian, retail, airport apron, parking, church
235 - &grey1_e '#dad6d4' # pedestrian, retail, airport apron, parking, church early zoom 14
236 - &grey1_v true # pedestrian, retail, airport apron, parking, church
237 - &grey2 [0.5, 0.5, 0.5] # airport runway
238 - &grey3 '#bbbbbb' # railway
239 - &grey4 '#ffc52a' # airport taxiway
240 - &grey5 '#ffc52a' # airport taxiway
241 - &grey6 '#dddddd' # industrial
242 - &grey6_b [.65, .65, .65] # industrial buildings
243 - &grey6_bo [.8, .8, .8] # industrial building outlines
244 - &grey7 '#ecebe9' # pedestrian, match minor road / path color
245 - &grey7_v true # pedestrian visibility
246 - &grey8 '#ecebe9' # winter sports
247 - &grey8_v true # winter sports visibility
248 - &grey9 [.7, .0, .0, 0.5] #[.7, .7, .7] # transit platform
249 - &grey9_o [.5, .5, .5] # transit platform outline
250 - &grey9_v true # transit platform visibility
251 - &grey10 '#d4cce6' # generic major landuse (theme park, resort, aquarium, winery)
252 - &grey10_o '#bcb9c5' # generic major landuse outline
253 - &grey11 '#d7d7d7' # generic minor landuse (attraction, artwork)
254 - &grey11_o '#cccccc' # generic minor landuse outline
255 - &grey12 '#cfcfcf' # generic minor amusements (roller coasters, rides, slide, carousel)
256 - &grey12_o '#c5c5c5' # generic minor amusements
257 - &purple '#f0e1e1' # airport
258 - &purple_v true # airport
259 - &mystry1 '#aaaaaa' # recreation ground (type of park, sometimes around reservoirs)
260 - &building1 white # building
261 - &building2 white # building stroke
262 - &building_o 25 # building stroke order
263 - &building_e true # building stroke order
266 - &text_fill '#000' # WHITE
267 - &text_fill2 '#000' # WHITE
268 - &text_fill_road_e '#555' # WHITE
269 - &text_fill_exits [0.40,0.40,0.40] # motorway junctions, highway_casing1
270 - &text_fill_building '#000' # tan
271 - &text_fill_address [0.60,0.60,0.60] # HUH
272 - &text_fill_water [0.354,0.531,0.620] # blue
273 - &text_fill_park [0.175,0.175,0.175] # green
274 - &text_fill_beach [0.35,0.35,0.35] # black
275 - &text_fill_piste [0.350,0.350,0.350] # dark gray
276 - &text_fill_piste_e [0.350,0.350,0.350] # dark gray early
277 - &text_stroke [0.913,0.925,0.933] # land color
278 - &text_stroke_park [0.913,0.925,0.933] # land color
279 - &text_stroke_water [0.913,0.925,0.933]
280 - &text_stroke_address [0.913,0.925,0.933] # address stroke color
281 - &townspot_sprite townspot-m-rev # depends on land color and text settings
282 - &text_font_family 'Open Sans' # branding in asperational Unicode, yo (or Helvetica)
285 camera1: *camera_settings
289 color: [0.894,0.902,0.898]
294 url: https://fonts.gstatic.com/s/montserrat/v7/zhcz-_WihjSQC0oHJ9TCYL3hpw3pgy2gAi-Ip7WPMi0.woff
298 url: images/poi_icons_18@2x.png
301 # define sprites: [x origin, y origin, width, height]
302 'US:CA_1char': [220, 606, 82, 92]
303 'US:CA_2char': [120, 606, 94, 94]
304 'US:CA_3char': [0, 606, 112, 92]
305 'US:CA_4char': [808, 510, 124, 92]
306 'US:CA_5char': [672, 510, 128, 92]
307 'US:I_1char': [0, 710, 90, 100]
308 'US:I_2char': [138, 314, 102, 102]
309 'US:I_3char': [0, 314, 132, 100]
310 'US:I_4char': [756, 210, 140, 100]
311 'US:I_5char': [596, 210, 152, 100]
312 'US:NY_1char': [768, 418, 72, 88]
313 'US:NY_2char': [112, 418, 88, 88]
314 'US:NY_3char': [0, 418, 104, 86]
315 'US:NY_4char': [896, 314, 116, 86]
316 'US:NY_5char': [768, 314, 120, 86]
317 'US:PA_1char': [688, 418, 72, 88]
318 'US:PA_2char': [592, 418, 88, 88]
319 'US:PA_3char': [472, 418, 112, 88]
320 'US:PA_4char': [344, 418, 120, 88]
321 'US:PA_5char': [208, 418, 128, 88]
322 'US:US_1char': [900, 606, 88, 94]
323 'US:US_2char': [788, 608, 106, 94]
324 'US:US_3char': [642, 606, 138, 100]
325 'US:US_4char': [478, 606, 158, 100]
326 'US:US_5char': [308, 606, 164, 100]
327 airport: [952, 0, 38, 38]
328 aerodrome: [952, 0, 38, 38]
329 allotments: [46, 814, 38, 38]
330 aquarium: [916, 168, 38, 38]
331 art-gallery: [824, 168, 38, 38]
332 art_gallery: [824, 168, 38, 38]
333 art: [824, 168, 38, 38]
334 athletics-sports: [368, 168, 38, 38]
335 pitch: [368, 168, 38, 38]
336 athletic_sports: [368, 168, 38, 38]
337 recreation_ground: [368, 168, 38, 38]
338 atm: [92, 168, 38, 38]
339 attraction: [550, 210, 38, 38]
340 automotive-shop: [184, 168, 38, 38]
341 car_repair: [184, 168, 38, 38]
342 automotive: [184, 168, 38, 38]
343 tyres: [184, 168, 38, 38]
344 bakery: [732, 168, 38, 38]
345 pastry: [732, 168, 38, 38]
346 chocolate: [732, 168, 38, 38]
347 bank: [138, 168, 38, 38]
348 bar: [414, 168, 38, 38]
349 pub: [414, 168, 38, 38]
350 baseball-field: [690, 84, 38, 38]
351 basketball-court: [644, 84, 38, 38]
352 battlefield: [324, 710, 38, 38]
353 bbq: [738, 710, 38, 38]
354 beach: [828, 84, 38, 38]
355 beach-resort: [232, 710, 38, 38]
356 beach_resort: [232, 710, 38, 38]
357 beer-garden: [458, 210, 38, 38]
358 biergarten: [458, 210, 38, 38]
359 brewery: [458, 210, 38, 38]
360 bench: [630, 0, 38, 38]
361 bicycle-parking: [828, 126, 38, 38]
362 bike-shop: [46, 168, 38, 38]
363 bicycle: [46, 168, 38, 38]
364 bicycle_rental: [46, 168, 38, 38]
365 bike: [46, 168, 38, 38]
366 bike_shop: [46, 168, 38, 38]
367 boat-ferry: [906, 0, 38, 38]
368 ferry_terminal: [906, 0, 38, 38]
369 ferry-boat: [906, 0, 38, 38]
370 ferry: [906, 0, 38, 38]
371 boat-ramp: [276, 84, 38, 38]
372 slipway: [276, 84, 38, 38]
373 boat_ramp: [276, 84, 38, 38]
374 boat-rental: [92, 814, 38, 38]
375 boat_rental: [92, 814, 38, 38]
376 bookstore: [0, 168, 38, 38]
377 books: [0, 168, 38, 38]
378 bridge: [92, 126, 38, 38]
379 buddhism: [966, 84, 38, 38]
380 building: [598, 168, 38, 38]
381 auditorium: [598, 168, 38, 38]
382 terminal: [598, 168, 38, 38]
383 hangar: [598, 168, 38, 38]
384 retirement_home: [598, 168, 38, 38]
385 manor: [598, 168, 38, 38]
386 recreation_center: [598, 168, 38, 38]
387 apartments: [598, 168, 38, 38]
388 burger: [320, 210, 38, 38]
389 fast_food: [320, 210, 38, 38]
390 bus-station: [860, 0, 38, 38]
391 bus_stop: [860, 0, 38, 38]
392 bus_station: [860, 0, 38, 38]
393 butcher: [46, 84, 38, 38]
394 campground: [0, 126, 38, 38]
395 camp_site: [0, 126, 38, 38]
396 caravan_site: [0, 126, 38, 38]
397 candy-store: [182, 210, 38, 38]
398 candy: [182, 210, 38, 38]
399 confectionery: [182, 210, 38, 38]
400 capital-l: [652, 814, 16, 16]
401 capital-m: [632, 814, 12, 12]
402 capital-s: [612, 814, 10, 10]
403 capital-xl: [676, 814, 20, 20]
404 capital-xs: [598, 814, 8, 8]
405 car-dealership: [964, 126, 38, 38]
406 car: [964, 126, 38, 38]
407 caravan-site: [462, 710, 38, 38]
408 caravan_site: [462, 710, 38, 38]
409 castle: [506, 42, 38, 38]
410 fort: [506, 42, 38, 38]
411 cemetery: [920, 84, 38, 38]
412 grave_yard: [920, 84, 38, 38]
413 church: [414, 126, 38, 38]
414 clothing-store: [0, 210, 38, 38]
415 clothes: [0, 210, 38, 38]
416 chothing-store: [0, 210, 38, 38]
417 "clothesstore": [0, 210, 38, 38]
418 fashion: [0, 210, 38, 38]
419 coffee-shop: [686, 168, 38, 38]
420 cafe: [686, 168, 38, 38]
421 college-university: [46, 210, 38, 38]
422 university: [46, 210, 38, 38]
423 college: [46, 210, 38, 38]
424 convenience-store: [184, 84, 38, 38]
425 convenience: [184, 84, 38, 38]
426 convenience_store: [184, 84, 38, 38]
427 beverages: [184, 84, 38, 38]
428 county_shield_1char: [848, 418, 72, 72]
429 county_shield_2char: [672, 314, 88, 72]
430 county_shield_3char: [560, 314, 104, 72]
431 county_shield_4char: [416, 314, 136, 72]
432 county_shield_5char: [248, 314, 160, 72]
433 courthouse: [446, 0, 38, 38]
434 dentist: [266, 0, 38, 38]
435 department-store: [918, 126, 38, 38]
436 department_store: [918, 126, 38, 38]
437 doctors: [224, 0, 38, 38]
438 clinic: [224, 0, 38, 38]
439 dog-park: [646, 710, 38, 38]
440 dog_park: [646, 710, 38, 38]
441 dog_run: [646, 710, 38, 38]
442 dog-run: [646, 710, 38, 38]
443 dot-black: [506, 814, 38, 38]
444 dot-white: [460, 814, 38, 38]
445 drinking-water: [412, 210, 38, 38]
446 dry-cleaning: [138, 84, 38, 38]
447 dry_cleaning: [138, 84, 38, 38]
448 electronics-store: [782, 126, 38, 38]
449 electronics: [782, 126, 38, 38]
450 computer: [782, 126, 38, 38]
451 factory: [552, 168, 38, 38]
452 industrial: [552, 168, 38, 38]
453 chimney: [552, 168, 38, 38]
454 sub_station: [552, 168, 38, 38]
455 substation: [552, 168, 38, 38]
456 wastewater_plant: [552, 168, 38, 38]
457 works: [552, 168, 38, 38]
458 water_works: [552, 168, 38, 38]
459 plant: [552, 168, 38, 38]
460 generator: [552, 168, 38, 38]
461 fire-station: [400, 0, 38, 38]
462 fire_station: [400, 0, 38, 38]
463 firepit: [600, 710, 38, 38]
464 fishing-area: [508, 710, 38, 38]
465 fishing_area: [508, 710, 38, 38]
466 fitness: [0, 84, 38, 38]
468 fitness_center: [0, 84, 38, 38]
469 flower-shop: [368, 126, 38, 38]
470 florist: [368, 126, 38, 38]
471 forest: [228, 210, 38, 38]
472 conservation: [228, 210, 38, 38]
473 nature_reserve: [228, 210, 38, 38]
474 fountain: [506, 126, 38, 38]
475 garden: [874, 84, 38, 38]
476 gas: [230, 814, 38, 38]
477 gas_canister: [230, 814, 38, 38]
478 gas-station: [136, 210, 38, 38]
479 fuel: [136, 210, 38, 38]
480 generic: [552, 814, 38, 38]
481 subway_entrance: [552, 814, 38, 38]
482 generic_shield_1char: [592, 510, 72, 72]
483 generic_shield_2char: [488, 510, 98, 72]
484 generic_shield_3char: [348, 510, 132, 72]
485 generic_shield_4char: [188, 510, 152, 72]
486 generic_shield_5char: [0, 510, 180, 72]
487 geyser: [186, 710, 38, 38]
488 gift-shop: [322, 126, 38, 38]
489 gift: [322, 126, 38, 38]
490 golf-course: [598, 84, 38, 38]
491 golf_course: [598, 84, 38, 38]
492 government-building: [322, 168, 38, 38]
493 townhall: [322, 168, 38, 38]
494 public_building: [322, 168, 38, 38]
495 embassy: [322, 168, 38, 38]
496 grocery-store: [736, 126, 38, 38]
497 supermarket: [736, 126, 38, 38]
498 health_food: [736, 126, 38, 38]
499 greengrocer: [736, 126, 38, 38]
500 harbor-marina: [276, 168, 38, 38]
501 marina: [276, 168, 38, 38]
502 harbor: [276, 168, 38, 38]
503 harbor_marina: [276, 168, 38, 38]
504 dock: [276, 168, 38, 38]
505 mooring: [276, 168, 38, 38]
506 hardware-store: [966, 42, 38, 38]
507 hardware: [966, 42, 38, 38]
508 doityourself: [966, 42, 38, 38]
509 paint: [966, 42, 38, 38]
510 historic-site: [276, 126, 38, 38]
511 hospital: [182, 0, 38, 38]
512 hot-spring: [460, 84, 38, 38]
513 hot_spring: [460, 84, 38, 38]
514 hotel: [814, 0, 38, 38]
515 motel: [814, 0, 38, 38]
516 hostel: [814, 0, 38, 38]
517 hunting: [140, 710, 38, 38]
518 ice-cream-shop: [504, 210, 38, 38]
519 ice_cream: [504, 210, 38, 38]
520 information: [96, 710, 38, 38]
521 info: [96, 710, 38, 38]
522 jewelry-store: [828, 42, 38, 38]
523 jewelry: [828, 42, 38, 38]
524 jewelry_store: [828, 42, 38, 38]
525 landmark: [354, 0, 38, 38]
526 memorial: [354, 0, 38, 38]
527 monument: [354, 0, 38, 38]
528 wayside_shrine: [354, 0, 38, 38]
529 tower: [354, 0, 38, 38]
530 beacon: [354, 0, 38, 38]
531 laundry: [782, 42, 38, 38]
532 dry_cleaning: [782, 42, 38, 38]
533 library: [0, 0, 38, 38]
534 light-rail: [768, 0, 38, 38]
535 light_rail: [768, 0, 38, 38]
536 tram_stop: [768, 0, 38, 38]
537 lighthouse: [414, 84, 38, 38]
538 liquor-store: [690, 126, 38, 38]
539 alcohol: [690, 126, 38, 38]
540 liquor: [690, 126, 38, 38]
541 mall: [736, 42, 38, 38]
542 market: [690, 42, 38, 38]
543 variety_store: [690, 42, 38, 38]
544 boutique: [690, 42, 38, 38]
545 dairy: [690, 42, 38, 38]
546 retail: [690, 42, 38, 38]
547 mine: [874, 42, 38, 38]
548 mobile-phone-shop: [598, 42, 38, 38]
549 mobile_phone: [598, 42, 38, 38]
550 mosque: [90, 0, 38, 38]
551 motorcycle: [876, 710, 38, 38]
552 mountain: [368, 84, 38, 38]
553 peak: [368, 84, 38, 38]
554 movie-theatre: [962, 168, 38, 38]
555 cinema: [962, 168, 38, 38]
556 movie-theater: [962, 168, 38, 38]
557 museum: [230, 126, 38, 38]
558 observatory: [230, 126, 38, 38]
559 music-store: [460, 42, 38, 38]
560 music: [460, 42, 38, 38]
561 musical_instrument: [460, 42, 38, 38]
562 newsstand: [414, 42, 38, 38]
563 kiosk: [414, 42, 38, 38]
564 newsagent: [414, 42, 38, 38]
565 observatory: [184, 814, 38, 38]
566 office: [782, 84, 38, 38]
567 insurance: [782, 84, 38, 38]
568 company: [782, 84, 38, 38]
569 optical-shop: [368, 42, 38, 38]
570 optician: [368, 42, 38, 38]
571 optical_shop: [368, 42, 38, 38]
572 outdoor: [322, 814, 38, 38]
573 park: [460, 126, 38, 38]
574 parking: [874, 126, 38, 38]
575 performing-arts: [778, 168, 38, 38]
576 theater: [778, 168, 38, 38]
577 theatre: [778, 168, 38, 38]
578 pet-store: [322, 42, 38, 38]
579 pet: [322, 42, 38, 38]
580 pet-service: [322, 42, 38, 38]
581 pet_store: [322, 42, 38, 38]
582 pharmacy: [92, 84, 38, 38]
583 chemist: [92, 84, 38, 38]
584 photography-lab: [276, 42, 38, 38]
585 photo_studio: [276, 42, 38, 38]
586 photography_lab: [276, 42, 38, 38]
587 photographer: [276, 42, 38, 38]
588 picnic-spot: [830, 710, 38, 38]
589 picnic_site: [830, 710, 38, 38]
590 picnic_table: [830, 710, 38, 38]
591 pier: [722, 0, 38, 38]
592 playground: [552, 42, 38, 38]
593 police: [308, 0, 38, 38]
594 pool: [322, 84, 38, 38]
595 swimming_pool: [322, 84, 38, 38]
596 post-office: [506, 168, 38, 38]
597 post_office: [506, 168, 38, 38]
598 quarry: [920, 42, 38, 38]
599 mineshaft: [920, 42, 38, 38]
600 adit: [920, 42, 38, 38]
601 ranger-station: [784, 710, 38, 38]
602 ranger_station: [784, 710, 38, 38]
603 real-estate: [230, 42, 38, 38]
604 estate_agent: [230, 42, 38, 38]
605 real_estate: [230, 42, 38, 38]
606 recreation-track: [968, 710, 38, 38]
607 recreation_track: [968, 710, 38, 38]
608 recycling-facility: [184, 42, 38, 38]
609 recycling: [184, 42, 38, 38]
610 rental-car: [676, 0, 38, 38]
611 car_rental: [676, 0, 38, 38]
612 car_sharing: [676, 0, 38, 38]
613 restaurant: [274, 210, 38, 38]
614 deli: [274, 210, 38, 38]
615 ruin: [584, 0, 38, 38]
616 ruins: [584, 0, 38, 38]
617 archaeological_site: [584, 0, 38, 38]
618 salon-barber: [138, 42, 38, 38]
619 hairdresser: [138, 42, 38, 38]
620 salon: [138, 42, 38, 38]
621 beauty_salon: [138, 42, 38, 38]
622 school: [736, 84, 38, 38]
623 kindergarten: [736, 84, 38, 38]
624 scuba-diving: [276, 814, 38, 38]
625 scuba_diving: [276, 814, 38, 38]
626 dive_centre: [276, 814, 38, 38]
627 shoe-store: [644, 42, 38, 38]
628 shoes: [644, 42, 38, 38]
629 shoe_store: [644, 42, 38, 38]
630 shower: [416, 710, 38, 38]
631 ski-area: [552, 126, 38, 38]
632 slipway: [370, 710, 38, 38]
633 soccer-field: [552, 84, 38, 38]
634 spiritual-center: [460, 168, 38, 38]
635 spiritual_center: [460, 168, 38, 38]
636 place_of_worship: [460, 168, 38, 38]
637 wayside_chapel: [460, 168, 38, 38]
638 sporting-goods-shop: [92, 42, 38, 38]
639 sporting_goods: [92, 42, 38, 38]
640 sports: [92, 42, 38, 38]
641 outdoor: [92, 42, 38, 38]
642 spring: [506, 84, 38, 38]
643 stadium: [644, 126, 38, 38]
644 subway-entrance: [538, 0, 38, 38]
645 summer-camp: [0, 814, 38, 38]
646 summer_camp: [0, 814, 38, 38]
647 swimming-area: [554, 710, 38, 38]
648 swimming_area: [554, 710, 38, 38]
649 synagogue: [44, 0, 38, 38]
650 tailor-shop: [46, 42, 38, 38]
651 tailor: [46, 42, 38, 38]
652 telescope: [138, 814, 38, 38]
653 tennis: [598, 126, 38, 38]
654 theme-park: [184, 126, 38, 38]
655 theme_park: [184, 126, 38, 38]
656 miniature_golf: [184, 126, 38, 38]
657 toilets: [46, 126, 38, 38]
658 townspot-l: [862, 814, 16, 16]
659 townspot-l-rev: [756, 814, 16, 16]
660 townspot-m: [842, 814, 12, 12]
661 townspot-m-rev: [736, 814, 12, 12]
662 townspot-s: [824, 814, 10, 10]
663 townspot-s-rev: [718, 814, 10, 10]
664 townspot-xl: [886, 814, 20, 20]
665 townspot-xl-rev: [780, 814, 20, 20]
666 townspot-xs: [808, 814, 8, 8]
667 townspot-xs-rev: [704, 814, 6, 6]
668 toy-game-store: [0, 42, 38, 38]
669 toys: [0, 42, 38, 38]
670 baby_goods: [0, 42, 38, 38]
671 traffic-signal: [92, 210, 38, 38]
672 traffic_signals: [92, 210, 38, 38]
673 trailhead: [368, 814, 38, 38]
674 train-station: [492, 0, 38, 38]
675 station: [492, 0, 38, 38]
676 train-staion: [492, 0, 38, 38]
677 tree: [414, 814, 38, 38]
678 veterinarian: [136, 0, 38, 38]
679 pet_care: [136, 0, 38, 38]
680 veterinary: [136, 0, 38, 38]
681 view-point: [870, 168, 38, 38]
682 viewpoint: [870, 168, 38, 38]
683 view_point: [870, 168, 38, 38]
684 vista: [870, 168, 38, 38]
685 vineyard: [230, 168, 38, 38]
686 volcano: [230, 84, 38, 38]
687 water-tower: [922, 710, 38, 38]
688 water_tower: [922, 710, 38, 38]
689 waterfall: [692, 710, 38, 38]
690 waterpark: [278, 710, 38, 38]
691 water_park: [278, 710, 38, 38]
692 wine-bar: [366, 210, 38, 38]
693 winery: [640, 168, 38, 38]
694 wine: [640, 168, 38, 38]
695 zoo: [138, 126, 38, 38]
697 ux-current-location: [294, 856, 88, 88]
698 ux-locate-off: [628, 856, 72, 72]
699 ux-locate-on: [548, 856, 72, 72]
700 ux-route-arrow: [0, 856, 128, 128]
701 ux-route-start: [214, 856, 72, 92]
702 ux-route-stop: [136, 856, 72, 92]
703 ux-search-active: [388, 856, 72, 108]
704 ux-search-inactive: [468, 856, 72, 108]
706 # HACK: not currently in source sprite sheet (capital-xl)
707 ux-transit-stop: [676, 814, 20, 20]
710 url: images/building-grid.gif
717 url: https://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.topojson?api_key=vector-tiles-VyYjZGS
719 #url: https://tile.dev.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.topojson
724 url: https://tile.mapzen.com/mapzen/terrain/v1/normal/{z}/{x}/{y}.png
727 # # Only enable this for local debug, should not be enabled for prod (app inserts these at runtime)
728 # # These are all in San Francisco, California
730 # # Current location gem
731 # mz_current_location:
733 # url: https://gist.githubusercontent.com/anonymous/9e9588228b0a604264a2/raw/b28be49bea0b7feb859eb65b588c28e9fee5ae2c/map.geojson
738 # # url: https://gist.githubusercontent.com/anonymous/30c6c1a75c168d91d90c/raw/92bfe55e622766d250b1f2f5d17bdc7c26acb956/map.geojson
740 # url: https://gist.githubusercontent.com/anonymous/9a610ebda6fe4be7bccc/raw/8d217e43f2412d48d01534ba115f1e42dac72e68/map.geojson
741 # # Dashed route line
744 # url: https://gist.githubusercontent.com/anonymous/d73b851c64c3e5fbfc2754aa32f44c10/raw/938ae435776e176919c4797bed1465a92e403ef3/map.geojson
745 # # Transit route line
746 # mz_route_line_transit:
748 # url: https://gist.githubusercontent.com/anonymous/71ae88cbc6d62c4d141ecd6a61060050/raw/2254bbc18243f5dc609e663a580c9412a7447936/map.geojson
749 # # Pin at start of route
752 # url: https://gist.githubusercontent.com/anonymous/5262969cb7549ea69221/raw/be03f233fa323d9b5cf50ef1d8e89a1faa3750f1/map.geojson
753 # # Pin at end of route
754 # mz_route_destination:
756 # url: https://gist.githubusercontent.com/anonymous/dbae9635dfe46796490e/raw/df55c318635a7d91b309ed40754d4738a292fd38/map.geojson
757 # # Arrow for current route location
760 # url: https://gist.githubusercontent.com/anonymous/36613092be6e2aa004fd/raw/f753d13069425199e1dea1b449ef67d723f6510e/map.geojson
761 # # Dots for transit stops in route preview
762 # mz_route_transit_stop:
764 # url: https://gist.githubusercontent.com/anonymous/b9f16bca4a804f50faf71277d52ee4ab/raw/db13e4e765fa1ac8844b8ba02f4a0f66fe772907/map.geojson
765 # # Pins showing search result locations
768 # url: https://gist.githubusercontent.com/anonymous/57dc09eeb120919f76de/raw/43426217da3c2bae0522dc4257aaa61e4df3981e/map.geojson
769 # # Default point styling (SDK)
772 # url: https://gist.githubusercontent.com/anonymous/16324c771edfce45be0721390389b878/raw/7dbaebf17da7da8562e6c6f8768bc8cff83efa88/map.geojson
773 # # Default line styling (SDK)
776 # url: https://gist.githubusercontent.com/anonymous/26f4e8b6b34b2617b5d5533d89decb39/raw/df8e180ab4f7f19448014dccc4a755f7cfa20003/map.geojson
777 # # Default polygon styling (SDK)
778 # mz_default_polygon:
780 # url: https://gist.githubusercontent.com/anonymous/88235c795bb44b8c45150bdd5561f947/raw/71d4fab97b6513833bf1a589167119e6169ef86d/map.geojson
795 vec2 st = fract(v_texcoord.xy);
797 color.a = 1.- step(dotSize, dot(st,st)*2.);
801 dash_background_color: [0.808,0.860,0.851]
805 #dash_background_color: red
811 background: vec3(0.867, 0.867, 0.867)
814 // blend line 50/50 between two colors
815 float t = fract(v_texcoord.y*.5);
816 float e = 0.1; // edge feather
818 smoothstep(.0, e, t) *
819 (1. - smoothstep(.5, .5 + e, t))
821 color.rgb = mix(color.rgb, background, v);
829 float map (in float value, in float inputMin, in float inputMax, in float outputMin, in float outputMax, bool clamp) {
830 if (abs(inputMin - inputMax) < EPSILON){
833 float outVal = ((value - inputMin) / (inputMax - inputMin) * (outputMax - outputMin) + outputMin);
836 if(outputMax < outputMin){
837 if( outVal < outputMax ) outVal = outputMax;
838 else if( outVal > outputMin ) outVal = outputMin;
840 if( outVal > outputMax ) outVal = outputMax;
841 else if( outVal < outputMin ) outVal = outputMin;
848 float map (in float value, in float inputMin, in float inputMax, in float outputMin, in float outputMax) {
849 return map(value, inputMin, inputMax, outputMin, outputMax, true);
855 // Variant to be add to both vertex and fragments shaders
858 // Get the coordinates in tile space
859 // ================================
860 vec2 getTileCoords () {
861 return fract(v_pos.xy);
864 // Normalize the attribute position of a vertex
865 v_pos = modelPosition().xyz;
871 // Draw a grid in the space a specific resolution and pressition
872 bool grid(vec2 st, float res, float press){
873 vec2 grid = fract(st*res);
874 return grid.x < res*press || grid.y < res*press;
877 // Draw a grid in the space a specific resolution
878 bool grid(vec2 st, float res){
879 return grid(st, res, 1.0);
883 mix: [space-tile,grids-grid]
887 // Draw a grid using tile coordenates in a specific resolution
888 float tileGrid(float res){
889 vec2 st = getTileCoords()*100.*res;
891 float press = .4+(1.0-fract(u_map_position.z))*0.1; //0.4
892 if (grid(st,0.01,press)) pct += .5; //.5
895 // Draw two grid that smoothly interpolates acording to zooms
897 return mix(tileGrid(1.),tileGrid(2.),fract(u_map_position.z));
906 color = v_color*tileGrid();
907 // color = vec4(v_color.r, v_color.g, v_color.b, 1.0);
914 // get distance field of a rectangle in the center
915 // ================================
916 float rectDF(vec2 st, vec2 size) {
917 //float aspect = u_resolution.x/u_resolution.y;
920 return length(max(abs(st)-size,.0));
922 float rectDF(vec2 st, float size) {
923 //float aspect = u_resolution.x/u_resolution.y;
926 return length(max(abs(st)-size,.0));
929 // Draw a round corners rectangle in the center
930 // ================================
931 float rect(vec2 st, vec2 size, float radio) {
932 radio = max(.000001, radio);
933 return 1.0-step(radio, rectDF(st, size-radio));
936 float rect(vec2 st, float size, float radio) {
937 return rect(st,vec2(size),radio);
940 // Draw a rectangle in the center
941 // ================================
942 float rect(vec2 st, vec2 size){
943 size = .25-size*.125;
944 vec2 uv = step(size,st*(1.0-st));
948 float rect(vec2 st, float size){
949 return rect(st,vec2(size));
956 // Draw a Cross in the middle of the ST space
957 float cross (vec2 st, float size, float width) {
958 return clamp( rect(st, vec2(size*0.5,width*0.125)) +
959 rect(st, vec2(width*0.125,size*0.5)),0.,1.);
961 float cross(in vec2 st, float _size){
962 return rect(st, vec2(_size*0.5,_size*0.125)) +
963 rect(st, vec2(_size*0.125,_size*0.5));
965 float cross(in vec2 st, vec2 _size){
966 return rect(st, vec2(_size.x*0.5,_size.y*0.125)) +
967 rect(st, vec2(_size.y*0.125,_size.x*0.5));
976 # u_envmap: images/relief-shading-environment-map.jpg
977 u_envmap: images/draw-test9.jpg
982 // Simplified view-independent environment map
983 vec4 terrainEnvmap (in sampler2D _tex, in vec3 _normal) {
984 const vec3 eye = vec3(0.,0.,-1.);
985 vec3 r = reflect(eye, _normal);
987 float m = 2. * length(r);
988 vec2 uv = r.xy / m + .5;
989 return texture2D(_tex, uv);
991 const float e = 2.71828;
993 // scale up normals with a function
994 // https://www.desmos.com/calculator/bv4mzh8erz
995 //float scale = 10./(u_map_position.z-.7) + 1.8;
996 float scale1 = 20./(u_map_position.z) + 1.5;
997 normal.z /= scale1; // turn terrain exaggeration up/down
998 // fade out spheremap normals with a function
999 // https://www.desmos.com/calculator/ptgkzcnfyc
1000 float m = 3.5 * (u_map_position.z - 0.8) * pow(e, u_map_position.z * -.29);
1001 m = clamp(m, 0., 1.5);
1002 color = terrainEnvmap(u_envmap, normal);
1006 color.rgb = ((color.rgb - 0.5) * max(contrast, 0.)) + 0.5;
1008 float brightness = .5 - m * .5;
1009 color.rgb += brightness;
1011 color *= v_color; // apply layer color
1019 color.rgb -= vec3(tileGrid());
1020 vec4 linecolor = vec4(0.489,0.776,0.820,1.0);
1021 vec4 colorlines = linecolor * tileGrid();
1022 color += colorlines;
1029 vec3 rgb2hsv(vec3 c)
1031 vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
1032 vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
1033 vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
1034 float d = q.x - min(q.w, q.y);
1036 return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
1038 vec3 hsv2rgb(vec3 c)
1040 vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
1041 vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
1042 return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
1049 // scale buildings based on zoom
1050 float zoom = u_map_position.z;
1051 float min = .1; // minimum building scale
1052 float midpoint = 16.; // middle of zoom range
1053 float inspeed = .1; // number of zooms to scale buildings up
1054 float outspeed = 2.; // number of zooms to scale buildings back down
1057 if (zoom >= midpoint) {
1058 e = (zoom - midpoint) / (outspeed * .2);
1060 e = abs(zoom - midpoint) / inspeed;
1062 position.z *= ((1. - min) / (1. + (exp(e)))) + min;
1067 mix: [hsv, scale-buildings]
1071 u_tex_grid: building-grid
1073 WALL_TINT: vec3(0.950, 0.950, 0.950)
1076 if (dot(vec3(0., 0., 1.), worldNormal()) < 1.0 - TANGRAM_EPSILON) {
1078 color.rgb = hsv2rgb(rgb2hsv(color.rgb) * WALL_TINT);
1079 color.rgb = mix(color.rgb, vec3(0.),
1080 texture2D(u_tex_grid, v_texcoord).a);
1085 mix: scale-buildings
1090 mix: grid-on-terrain
1093 u_scale: 1 # turn down the terrain
1096 mix: grid-on-terrain
1102 mix: [grids-tile, terrain]
1106 color -= v_color*tileGrid();
1107 vec4 linecolor = vec4(0.489,0.776,0.820,1.0);
1108 color += linecolor * tileGrid();
1110 mix: [space-tile, functions-map, terrain, shapes-cross]
1115 float brightness2 = dot(normal, vec3(-0.838,-1.010,0.805));
1117 brightness2 = 1.-brightness2;
1120 float scale2 = map(floor(u_map_position.z), 8., 22., 0.0000001, .1, true);
1121 vec2 st = worldPosition().xy*scale2;
1128 // pct = step(brightness2*4.556,cos((st.x+st.y)));
1132 st.x += step(1., mod(st.y,2.0)) *.5;
1133 vec2 f_st = fract(st);
1137 pct = step(brightness2*2.056,1.-dot(f_st,f_st)*10.400);
1140 // pct = rect(f_st+0.5,vec2(0.704,brightness2*0.472));
1143 //pct = cross(f_st+0.5,brightness2*6.128,brightness2*2.604);
1145 // Use this if you tint
1150 color.rgb = mix(color.rgb, v_color.rgb ,pct);
1162 polygons_transparent:
1165 ux-route-line-overlay:
1169 ux-route-line-dash-overlay:
1174 ux-transit-line-overlay:
1178 ux-location-gem-overlay:
1200 sdk-polygon-overlay:
1206 # Map overlays for styling the server response (using special source layer names) for route line, current location, and search result pins
1208 data: { source: mz_route_line }
1210 ux-route-line-overlay:
1213 width: [[0,3.5px],[5,5px],[9,7px],[10,6px],[11,6px],[13,8px],[14,9px],[15,10px],[16,11px],[17,12px],[18,10px]]
1215 data: { source: mz_dash_line }
1217 ux-route-line-dash-overlay:
1220 width: [[2,2px],[5,2.5px],[11,3px],[16,7px],[17,9px]]
1221 mz_route_line_transit:
1222 data: { source: mz_route_line_transit }
1224 ux-transit-line-overlay:
1225 # each transit route segment could be a different "line" each with it's own color
1226 # but some transit lines don't define a color, in those cases default to blue
1227 # and since the color is coming from Transit.land they call it "color" instead of "colour"
1228 color: function() { return feature.color || '#06a6d4'; }
1230 width: [[0,3.5px],[5,5px],[9,7px],[10,6px],[11,6px],[13,8px],[14,9px],[15,10px],[16,11px],[17,12px],[18,10px]]
1233 mz_current_location_gem:
1234 data: { source: mz_current_location }
1236 ux-location-gem-overlay:
1238 sprite: ux-current-location
1245 data: { source: mz_route_location }
1247 ux-location-gem-overlay:
1249 sprite: ux-route-arrow
1256 data: { source: mz_route_start }
1261 sprite: ux-route-start
1268 mz_route_destination:
1269 data: { source: mz_route_destination }
1274 sprite: ux-route-stop
1281 mz_route_transit_stop:
1282 data: { source: mz_route_transit_stop }
1286 sprite: ux-transit-stop
1293 data: { source: mz_search_result }
1297 sprite: ux-search-active
1305 filter: { state: inactive }
1308 sprite: ux-search-inactive
1310 data: { source: mz_dropped_pin }
1314 sprite: ux-search-active
1322 # Used by the SDK to place point, line, and polygon overlays on the map
1324 data: { source: mz_default_point }
1328 sprite: ux-search-active
1336 data: { source: mz_default_line }
1343 data: { source: mz_default_polygon }
1345 sdk-polygon-overlay:
1346 color: [0.02,0.65,0.82,0.5] #'#06b1e2'
1355 data: { source: mapzen}
1358 order: function() { return feature.sort_rank; }
1359 color: [1.0, 1.0, 1.0]
1362 data: { source: mapzen, layer: water }
1366 order: function() { return feature.sort_rank; }
1367 #color: [0.608,0.925,0.965]
1369 filter: { $zoom: { min: 12 } }
1372 order: function() { return feature.sort_rank + 1; }
1373 #color: [0.608,0.925,0.965]
1378 - kind: [ocean, lake, water, riverbank, reservoir, swimming_pool]
1379 # WARNING: any area filters here must match the area filters in the water_boundaries-not-ocean layer
1381 # limit show smaller landuse areas to higher zooms
1382 - { $zoom: { min: 0 }, area: { min: 40000000000 } }
1383 - { $zoom: { min: 2 }, area: { min: 20000000000 } }
1384 # some weird natural earth scale set transition
1385 - { $zoom: { min: 3 }, area: { min: 80000000000 } }
1386 - { $zoom: { min: 4 }, area: { min: 5000000000 } }
1387 - { $zoom: { min: 5 }, area: { min: 700000000 } }
1388 - { $zoom: { min: 6 }, area: { min: 500000000 } }
1389 - { $zoom: { min: 7 }, area: { min: 160000000 } }
1390 - { $zoom: { min: 8 }, area: { min: 40000000 } }
1391 - { $zoom: { min: 9 }, area: { min: 10000000 } }
1392 - { $zoom: { min: 10 }, area: { min: 8000000 } }
1393 - { $zoom: { min: 11 }, area: { min: 2000000 } }
1394 - { $zoom: { min: 12 }, area: { min: 200000 } }
1395 - { $zoom: { min: 13 }, area: { min: 100000 } }
1396 - { $zoom: { min: 14 }, area: { min: 2000 } }
1397 - { $zoom: { min: 15 } }
1400 # color: [0.608,0.925,0.965] ## original color
1401 # color: [0.528,0.902,0.960] ## more saturated
1402 color: [0.432,0.890,0.960] ## even more saturated
1404 filter: { kind: playa, $zoom: {min: 6} }
1407 order: function() { return feature.sort_rank; }
1410 polygons_transparent:
1411 color: [0.85,0.85,0.85, 0.5]
1413 filter: { not: { kind: [ocean, lake, water, reservoir, playa] }, $zoom: { min: 11 }, area: { min: 100 } }
1416 color: [0.432,0.890,0.960]
1418 filter: { kind: swimming_pool }
1421 color: [0.432,0.890,0.960]
1422 water-boundary-ocean-early:
1423 filter: { boundary: true, kind: ocean, $zoom: {min: 1, max: 17} }
1426 order: function() { return feature.sort_rank; }
1427 color: [0.431,0.806,0.914]
1430 water-boundary-ocean-late:
1431 filter: { boundary: true, kind: ocean, $zoom: {min: 17} }
1434 order: function() { return feature.sort_rank; }
1435 color: [0.431,0.806,0.914]
1438 water_boundaries-not-ocean:
1439 # filter: { boundary: true, not: { kind: [ocean,playa] }, $zoom: { min: 8 } }
1443 - not: { kind: [ocean,playa] }
1445 # WARNING: any area filters here must match the area filters in the lakes layer
1447 # limit show smaller landuse areas to higher zooms
1448 - { $zoom: { min: 1 }, area: { min: 40000000000 } }
1449 - { $zoom: { min: 2 }, area: { min: 20000000000 } }
1450 # some weird natural earth scale set transition
1451 - { $zoom: { min: 3 }, area: { min: 80000000000 } }
1452 - { $zoom: { min: 4 }, area: { min: 5000000000 } }
1453 - { $zoom: { min: 5 }, area: { min: 700000000 } }
1454 - { $zoom: { min: 6 }, area: { min: 500000000 } }
1455 - { $zoom: { min: 7 }, area: { min: 160000000 } }
1456 - { $zoom: { min: 8 }, area: { min: 40000000 } }
1457 - { $zoom: { min: 9 }, area: { min: 10000000 } }
1458 - { $zoom: { min: 10 }, area: { min: 8000000 } }
1459 - { $zoom: { min: 11 }, area: { min: 2000000 } }
1460 - { $zoom: { min: 12 }, area: { min: 200000 } }
1461 - { $zoom: { min: 13 }, area: { min: 100000 } }
1462 - { $zoom: { min: 14 }, area: { min: 2000 } }
1463 - { $zoom: { min: 15 } }
1466 order: function() { return feature.sort_rank; }
1467 # color: [0.625,0.806,0.822]
1468 color: [0.431,0.806,0.914]
1472 filter: { $zoom: { min: 14 } }
1476 swimming-pools-early:
1477 filter: { kind: swimming_pool, $zoom: { max: 19 } }
1482 # river boundaries like the thames in london, la seine in paris
1483 filter: { kind: riverbank }
1486 color: [0.431,0.806,0.914]
1489 #river center lines, not boundaries for polygons
1490 filter: { kind: [river,canal,stream,dam,ditch,drain], $zoom: { min: 11 }, not: { is_tunnel: true } }
1493 order: function() { return feature.sort_rank; }
1495 color: [[10,[0.472,0.834,0.890]],[14,[0.511,0.877,0.930]]]
1496 # color: [0.592,0.929,0.961]
1497 #color: [[11,[0.753,0.820,0.835]],[12,[0.710,0.800,0.824]],[13,[0.886,0.937,0.988]]]
1498 #width: [[14,2.5px],[15,4.0px],[17,8.0px],[18,10.0px]]
1499 width: [[10,0px],[11,0.75px],[12,1.0px],[13,1.25px],[14,2.25px],[15,3px],[16,4px],[17,5m]]
1502 #color: [[11,[0.671,0.788,0.812]],[13,[0.710,0.800,0.824]],[14,[0.635,0.812,0.843]]]
1503 width: [[9,0px],[11,0px],[12,0px],[13,0.5px],[14,0.75px],[15,0.75px],[16,0.75px],[17,1px]]
1505 filter: { $zoom: [11,12], not: { kind: river } }
1508 width: [[11,0px], [12,0.6px]]
1512 - intermittent: true
1519 order: function() { return feature.sort_rank; }
1520 color: [[10,[0.472,0.834,0.890]],[14,[0.511,0.877,0.930]]]
1521 width: [[10,0px],[11,0.5px],[12,1px],[13,2px],[14,3px],[15,4px],[16,5px]]
1524 data: { source: mapzen, layer: [water] }
1525 visible: *text_visible_water_labels
1530 - kind: [river,canal,stream,dam,ditch,drain]
1531 - $zoom: { min: 11 }
1535 fill: *text_fill_water
1536 family: *text_font_family
1539 size: [[12,11px],[13,12px]]
1540 water-line-labels-z17:
1541 filter: { $zoom: [17] }
1543 text-blend-order: { font: { size: 14px } }
1544 not-river-not-stream:
1545 filter: { kind: [canal,dam,ditch,drain], $zoom: { max: 14 } }
1550 filter: { kind: [stream], $zoom: { max: 14 } }
1556 data: { source: mapzen, layer: transit }
1557 filter: { not: { kind: [platform] }, $zoom: { min: 14 } }
1561 order: function() { return feature.sort_rank || 275; }
1563 filter: { kind: [railway,train] }
1566 color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
1567 width: [[14,0.4px],[15,0.75px],[16,1.1px],[18,2px],[19,1m]]
1569 filter: { kind: subway }
1572 color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
1573 width: [[14,0.4px],[15,0.75px],[16,1.3px],[17,1.5px],[18,2m]]
1575 filter: { kind: [light_rail,tram], $zoom: { min: 15 } }
1579 color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
1580 width: [[14,0px],[15,0.6px],[16,0.75px],[17,1.5px],[19,1m]]
1583 data: { source: mapzen, layer: roads }
1584 filter: { kind: rail, not: { railway: [subway,light_rail,tram] } }
1588 order: function() { return feature.sort_rank; }
1589 color: [0.588,0.671,0.698]
1590 width: [[12,0px],[13,0.25px],[14,0.4px],[15,0.75px],[16,0.75px],[18,1m]]
1592 filter: { service: true }
1595 color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
1596 width: [[14,0px],[15,0.3px],[16,0.5px],[18,0.75px],[19,0.5m]]
1598 #filter: { $zoom: {min: 12} }
1601 # let roads sort themselves past zoom 14
1602 order: function() { return feature.sort_rank; }
1603 # but give them all the same outline
1608 filter: { any: [is_bridge: true, is_tunnel: true] }
1612 # except bridges and tunnels, their outlines should also self-sort
1613 order: function() { return feature.sort_rank || 305; }
1616 data: { source: mapzen, layer: roads }
1617 filter: { not: { kind: rail } }
1623 order: function() { return feature.sort_rank; }
1624 # but give them all the same outline
1628 visible: false # labels are enabled by each layer below
1630 family: *text_font_family
1635 filter: { $zoom: { max: 15 } }
1639 order: function() { return feature.sort_rank; }
1641 filter: { any: [is_bridge: true, is_tunnel: true] }
1646 # except bridges and tunnels, their outlines should also self-sort
1647 order: function() { return feature.sort_rank; }
1649 # default outlines starting at zoom 16
1650 default-outline-width:
1651 filter: { $zoom: { min: 16 } }
1655 width: function () { return 3/16 * Math.log($zoom); }
1657 natural_earth_highways:
1658 filter: { source: 'naturalearthdata.com' }
1661 color: [[5, [0.5,0.5,0.5]],[6, [0.350,0.350,0.350]]]
1662 width: [[5, 0.5px], [6, 0.5px], [7, 0.75px], [9, 1.5px], [14, 1.5px], [16, 4px], [17, 10m]]
1664 color: *highway_casing1
1665 width: [[9, 0px], [10, 0px], [12, 1px], [16, 2px]]
1667 filter: { type: ['Secondary Highway','Road'] }
1670 color: [[5, [0.75,0.75,0.75]], [8, [0.4,0.4,0.4]], [13, [0.4,0.4,0.4]], [17, *major_road1]]
1672 width: [[5, 0.25px], [7, 0.5px], [7, 0.75px], [9, 1px], [10, 9px], [11, 9px], [13, 1px], [16, 2.5px], [19, 6m]]
1674 width: [[8, 0.0px], [9, 0.0px], [11, .5px], [16, .75px]]
1676 filter: { type: 'Unknown' }
1679 color: [[12, *minor_road1], [17, *minor_road2]]
1680 width: [[12, 1.0px], [14, 1.5px], [15, 3px], [16, 5m]]
1682 # width: [[12, 0px], [14, .5px], [17, 1px]]
1684 filter: { kind: Ferry }
1688 width: [[12, 0.5px], [13, 0.75px], [15, 1.0px]]
1692 filter: { kind: highway }
1695 color: [[8, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
1696 width: [[8, 1px], [12, 1.25px], [13, 1.5px], [14, 0px], [15, 1px], [16, 5px], [17, 10px], [18, 10m]]
1698 color: [[8, [0.894,0.906,0.914]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [16, [0.408,0.430,0.461]]]
1699 width: [[8,0px], [13,0px], [14,1px], [15,2px], [16, 3px], [17, 4px], [18, 5px]]
1701 # width: [[8, 1px], [12, 1.25px], [13, 1.5px], [14, 0px], [15, 1px], [16, 5px], [17, 10px], [18, 10m]]
1703 filter: { is_link: true } # on- and off-ramps, etc
1706 #color: *highway_link1
1707 color: [[9, [0.50,0.50,0.50]], [13, [0.408,0.430,0.461]], [14, [1.0,1.0,1.0]], [15, [1.0,1.0,1.0]]]
1708 width: [[9, 0px], [11, 0.15px], [12, 0.5px], [13, 0.75px], [14, 0px], [15, 1px], [16, 2.5px], [17, 4px], [18, 8px], [19, 8px]]
1710 color: [[9,[0.894,0.906,0.914]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [0.408,0.430,0.461]]]
1711 width: [[9, 0px], [13, 0px], [14, 0.5px], [15, 1px], [16, 2px], [17, 2px], [18, 2px]]
1713 filter: { $zoom: {min: 13, max: 15} }
1718 filter: {is_tunnel: true, $zoom: {min: 13} }
1721 color: [[13,[0.790,0.790,0.790]], [14,[0.820,0.820,0.820]], [15,[0.950,0.950,0.950]], [16,[0.950,0.950,0.950]]]
1723 color: [0.900,0.900,0.900]
1725 filter: {is_tunnel: true, $zoom: {min: 13} }
1729 # order: function() { return (feature.sort_rank - 1); }
1732 color: [[13,[0.710,0.710,0.710]], [14,[0.779,0.802,0.828]], [15,[0.950,0.950,0.950]], [16,[0.950,0.950,0.950]]]
1734 color: [[13, [0.720,0.720,0.720]], [14, [0.770,0.770,0.770]], [15, [0.80,0.80,0.80]], [16, [0.825,0.825,0.825]]]
1736 filter: {is_bridge: true}
1742 # labels-highway-early:
1743 # filter: { $zoom: [7,8,9] }
1747 # visible: *text_visible_shields
1750 # fill: [0.408,0.427,0.459]
1753 # stroke: { color: [0.898,0.906,0.910], width: 4 }
1754 # labels-highway-z10:
1759 # visible: *text_visible_shields
1762 # fill: [0.408,0.427,0.459]
1765 # stroke: { color: [0.898,0.906,0.910], width: 4 }
1766 # labels-highway-z11:
1771 # visible: *text_visible_shields
1774 # fill: [0.408,0.427,0.459]
1777 # stroke: { color: [0.898,0.906,0.910], width: 4 }
1778 # labels-highway-z12:
1783 # visible: *text_visible_shields
1786 # fill: [0.408,0.427,0.459]
1789 # stroke: { color: [0.898,0.906,0.910], width: 4 }
1796 visible: *text_visible_highway
1798 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1800 fill: [0.408,0.427,0.459]
1803 stroke: { color: [0.898,0.906,0.910], width: 4 }
1810 visible: *text_visible_highway
1812 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1814 fill: [0.408,0.427,0.459]
1817 stroke: { color: [0.898,0.906,0.910], width: 4 }
1823 visible: *text_visible_highway
1828 stroke: { color: [0.408,0.427,0.459], width: 4 }
1830 filter: { $zoom: { min: 16, max: 18 } }
1834 visible: *text_visible_highway
1839 stroke: { color: [0.408,0.427,0.459], width: 4 }
1841 filter: { $zoom: { min: 17 } }
1845 visible: *text_visible_highway
1847 fill: [0.408,0.427,0.459]
1850 stroke: { color: [1.000,1.000,1.000], width: 4 }
1852 filter: { $zoom: { min: 18 } }
1856 visible: *text_visible_highway
1858 fill: [0.408,0.427,0.459]
1861 stroke: { color: [1.000,1.000,1.000], width: 4 }
1863 filter: { $zoom: { min: 19 } }
1867 visible: *text_visible_highway
1869 fill: [0.408,0.427,0.459]
1872 stroke: { color: [1.000,1.000,1.000], width: 4 }
1875 filter: { kind: major_road }
1879 color: [[8, *major_road4], [13, major_road2], [17, [1.0,1.0,1.0]]]
1880 width: [[13, 1px], [14, 1px], [16, 2.5px], [17,3px]]
1882 width: [[12, 0px], [13, .5px], [15, 1px], [17, 2px]]
1884 filter: { kind_detail: [trunk, primary] }
1887 color: [[8, [0.529,0.556,0.592]], [11, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
1888 width: [[8, 0px], [11, 0.65px], [12, 0.75px], [13, 1px], [14, 1.5px], [15, 0px], [16, 3px], [17, 6px], [18, 9m]]
1890 color: [[8,[0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
1891 width: [[8,0px], [11,0px], [14,0px], [15, 1px], [16, 1.5px], [17, 2px], [18, 4px]]
1893 filter: { $zoom: { max: 16 } }
1898 order: function() { return feature.sort_rank + 2; }
1900 filter: { kind: [primary] }
1904 order: function() { return feature.sort_rank + 1; }
1906 filter: { ref: true }
1909 # width: [[9, 0.5px], [10, 0.5px], [11, 0.75px], [12, 1.25px], [13, 1.25px], [14, 0px], [15, 1px], [16, 4px], [17, 8px], [18, 9m]]
1912 # width: [[8,0px], [13,0px], [14,0.75px], [15,2px], [16, 3px], [17, 4px], [18, 4px]]
1914 color: [[10, [0.508,0.530,0.561]], [11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14,[1.0,1.0,1.0]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
1915 width: [[9, 0.6px], [10, 0.75px], [11, 1.0px], [12, 1.1px], [13, 0.8px], [14, 0.5px], [15, 1px], [16, 4px], [17, 8px], [18, 9m]]
1917 color: [[8,[0.894,0.906,0.914]], [13, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
1918 width: [[8,0px], [13,0px], [14,0.75px], [15,2px], [16, 3px], [17, 4px], [18, 4px]]
1920 filter: { $zoom: { max: 16 } }
1923 order: function() { return feature.sort_rank + 2; }
1926 primary-route-in-green:
1927 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
1930 color: [[8, [0.408,0.430,0.461]], [11, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
1931 width: [[9, 0.6px], [10, 0.75px], [11, 1.0px], [12, 1.1px], [13, 1.2px], [14, 0.5px], [15, 1px], [16, 4px], [17, 8px], [18, 9m]]
1933 color: [[8,[0.894,0.906,0.914]], [13, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
1935 # filter: { network: [US:US, US:I] }
1938 # color: *major_route1
1939 # #color: [[8,*major_route2],[9,major_route2],[10,*major_route1]]
1940 # width: [[8, 1px], [10, 1.15px], [11, 1px], [12, 1px], [14, 1.75px], [15, 3px], [16, 4px], [17, 4px]]
1942 # color: [1.0,1.0,1.0]
1945 filter: {is_tunnel: true, $zoom: {min: 13} }
1949 # order: function() { return (feature.sort_rank - 1); }
1952 color: [[13,[0.710,0.710,0.710]], [14,[0.779,0.802,0.828]], [15,[0.950,0.950,0.950]]] #[15,[0.744,0.764,0.792]]
1954 color: [[13, [0.720,0.720,0.720]], [14, [0.770,0.770,0.770]], [15, [0.80,0.80,0.80]], [16, [0.825,0.825,0.825]]] #[15, [0.894,0.906,0.914]]
1955 labels-trunk_primary-route-z14:
1956 filter: { $zoom: [14] }
1960 visible: *text_visible_trunk_primary_e2
1961 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1963 fill: [0.495,0.511,0.532]
1965 stroke: { color: *text_stroke, width: 3 }
1966 labels-trunk_primary-route-z15:
1967 filter: { $zoom: [15] }
1971 visible: *text_visible_trunk_primary
1972 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1974 fill: [0.495,0.511,0.532]
1977 stroke: { color: [0.969,0.973,0.973], width: 3 }
1978 labels-trunk_primary-route-z16:
1979 filter: { $zoom: { min: 16 } }
1983 visible: *text_visible_trunk_primary
1984 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1986 fill: [0.495,0.511,0.532]
1989 stroke: { color: [0.969,0.973,0.973], width: 4 }
1990 labels-trunk_primary-route-z17-z18:
1991 filter: { $zoom: [17,18] }
1995 visible: *text_visible_trunk_primary
1996 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1998 fill: [0.495,0.511,0.532]
2001 stroke: { color: [0.969,0.973,0.973], width: 6 }
2002 labels-trunk_primary-route-z19:
2003 filter: { $zoom: { min: 19 } }
2007 visible: *text_visible_trunk_primary
2008 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2010 fill: [0.495,0.511,0.532]
2013 stroke: { color: [0.969,0.973,0.973], width: 6 }
2015 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
2018 color: [[8, [0.408,0.430,0.461]], [11, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2019 width: [[9, 0.6px], [10, 0.75px], [11, 1.0px], [12, 1.1px], [13, 1.0px], [14, 0.5px], [15, 1.2px], [16, 4px], [17, 8px], [18, 9m]]
2021 color: [[8,[0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
2022 width: [[8,0px], [13,0px], [14,0.75px], [15,1.5px], [16, 3px], [17, 4px], [18, 4px]]
2024 filter: {is_tunnel: true, $zoom: {min: 13} }
2027 color: [[13,[0.670,0.670,0.670]], [14,[0.720,0.720,0.720]], [15,[0.920,0.920,0.920]], [16,[0.920,0.920,0.920]]]
2029 color: [[13,[0.894,0.906,0.914]],[14,[0.894,0.906,0.914]],[15,[0.744,0.764,0.792]]]
2030 width: [[13, 0px], [14, 0px], [15, 1px], [16, 1.5px], [17, 2px], [18, 4px]]
2032 # filter: { landuse_kind: golf_course }
2036 # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2038 # filter: { landuse_kind: zoo }
2042 # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2043 labels-trunk_primary-z11:
2049 visible: *text_visible_trunk_primary_e
2050 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2052 fill: [0.495,0.511,0.532]
2054 stroke: { color: *text_stroke, width: 2 }
2055 labels-trunk_primary-z12:
2061 visible: *text_visible_trunk_primary_e
2062 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2064 fill: [0.495,0.511,0.532]
2066 stroke: { color: *text_stroke, width: 3 }
2067 labels-trunk_primary-z13:
2073 visible: *text_visible_trunk_primary
2074 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2076 fill: [0.495,0.511,0.532]
2078 stroke: { color: *text_stroke, width: 3 }
2079 labels-trunk_primary-z14:
2085 visible: *text_visible_trunk_primary
2086 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2088 fill: [0.495,0.511,0.532]
2090 stroke: { color: *text_stroke, width: 4 }
2091 labels-trunk_primary-z15:
2092 filter: { $zoom: [15] }
2096 visible: *text_visible_trunk_primary
2097 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2099 fill: [0.495,0.511,0.532]
2101 stroke: { color: [0.969,0.973,0.973], width: 4 }
2102 labels-trunk_primary-z16:
2103 filter: { $zoom: [16] }
2107 visible: *text_visible_trunk_primary
2108 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2110 fill: [0.495,0.511,0.532]
2113 stroke: { color: [0.969,0.973,0.973], width: 4 }
2114 labels-trunk_primary-z17:
2115 filter: { $zoom: [17] }
2119 visible: *text_visible_trunk_primary
2120 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2122 fill: [0.495,0.511,0.532]
2125 stroke: { color: [0.969,0.973,0.973], width: 6 }
2126 labels-trunk_primary-z18:
2127 filter: { $zoom: { min: 18 } }
2131 visible: *text_visible_trunk_primary
2132 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2134 fill: [0.495,0.511,0.532]
2136 size: [[18,13px],[19,16px]]
2137 stroke: { color: [0.969,0.973,0.973], width: 6 }
2139 filter: { is_link: true } # on- and off-ramps, etc
2142 color: [[8, [0.529,0.556,0.592]], [11, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2143 width: [[10, 0.5px], [13, 0.5px], [14, 1px], [15, 0px], [16, 1.75px], [17, 2px], [18, 3px], [19, 8px]]
2145 color: [[8,[0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
2146 width: [[10, 0px], [14, 0px], [15, 0.5px], [16, 1px], [17, 1px], [18, 1px]]
2148 filter: {is_tunnel: true, $zoom: {min: 13} }
2151 color: [[13,[0.779,0.802,0.828]], [14,[0.779,0.802,0.828]], [15,[0.744,0.764,0.792]], [16,[0.950,0.950,0.950]]]
2153 color: [[13, [0.894,0.906,0.914]], [15, [0.894,0.906,0.914]], [16, [0.85,0.85,0.85]]]
2154 width: [[8,0px], [11,0px], [14,0px], [16,1.5px], [17, 3px], [18, 3px]]
2156 filter: { kind_detail: secondary }
2159 color: [[10, [0.714,0.733,0.760]], [11, [0.714,0.733,0.760]], [12, [0.533,0.555,0.586]], [13, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2160 width: [[10, 0.5px], [12, 0.5px], [13, 0.65px], [14, 1px], [15, 0px], [16, 3px], [17, 6px], [18, 9m]]
2162 color: [[10, [0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
2163 width: [[10,0px], [14,0px], [15,1px], [16, 1.5px], [17, 2px], [18, 4px]]
2165 filter: { $zoom: { max: 16 } }
2170 order: 353 #function() { return feature.sort_rank + 2; }
2172 filter: { ref: true, $zoom: { min: 10} }
2175 color: [[11, [0.508,0.530,0.561]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2176 width: [[11, 0.4px], [12, 0.75px], [13, 0.75px], [14, 1px], [15, 0px], [16, 1.5px], [17, 6px], [18, 9m]]
2178 color: [[10, [0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
2179 width: [[10,0.4px], [14,0.5px], [15,0.65px], [16,1.5px], [17, 2px], [18, 4px]]
2181 filter: { $zoom: { max: 15 } }
2184 order: function() { return feature.sort_rank + 2; }
2187 secondary-route-in-green:
2188 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
2191 color: [[11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2192 width: [[11, 0.6px], [12, 0.75px], [13, 0.75px], [14, 1px], [15, 0px], [16, 1.5px], [17, 6px], [18, 9m]]
2194 width: [[10,0.5px], [14,0.5px], [15,0.65px], [16,1.5px], [17, 2px], [18, 4px]]
2196 filter: {is_tunnel: true, $zoom: {min: 13} }
2199 color: [[13,[0.779,0.802,0.828]], [14,[0.779,0.802,0.828]], [15,[0.8,0.8,0.8]], [16,[0.85,0.85,0.85]], [17,[0.950,0.950,0.950]]]
2201 color: [[13, [0.350,0.350,0.350]], [16, [0.350,0.350,0.350]], [17, [0.85,0.85,0.85]]]
2202 width: [[10,0px], [17, 2px], [18, 2px]]
2203 labels-secondary-routes:
2204 filter: { $zoom: [13] }
2208 visible: *text_visible_secondary_e
2209 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2211 fill: [0.536,0.556,0.581]
2213 stroke: { color: *text_stroke, width: 4 }
2214 labels-secondary-routes-z14:
2215 filter: { $zoom: [14] }
2219 visible: *text_visible_secondary_e
2220 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2222 fill: [0.536,0.556,0.581]
2224 stroke: { color: *text_stroke, width: 4 }
2225 labels-secondary-routes-z15:
2226 filter: { $zoom: { min: 15 } }
2230 visible: *text_visible_secondary_e
2231 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2233 fill: [0.536,0.556,0.581]
2236 stroke: { color: *text_stroke, width: 4 }
2237 labels-secondary-routes-z16:
2238 filter: { $zoom: { min: 16 } }
2242 visible: *text_visible_secondary_e
2243 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2245 fill: [0.536,0.556,0.581]
2248 stroke: { color: [0.969,0.973,0.973], width: 4 }
2250 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
2253 color: [[10, [0.714,0.733,0.760]], [11, [0.714,0.733,0.760]], [12, [0.533,0.555,0.586]], [13, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2255 color: [[10, [0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
2256 labels-secondary-in-green-z13:
2257 filter: { $zoom: { min: 13 } }
2261 visible: *text_visible_secondary_e
2262 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2264 fill: [0.536,0.556,0.581]
2265 stroke: { color: [0.843,0.961,0.914], width: 4 }
2266 labels-secondary-in-green-z17:
2267 filter: { $zoom: { min: 17 } }
2271 visible: *text_visible_secondary_e
2272 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2274 fill: [0.536,0.556,0.581]
2275 stroke: { color: [1.00,1.00,1.00], width: 4 }
2277 # filter: { landuse_kind: golf_course }
2281 # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2283 # filter: { landuse_kind: zoo }
2287 # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2288 labels-secondary-z13:
2294 visible: *text_visible_secondary_e
2295 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2297 fill: [0.536,0.556,0.581]
2299 stroke: { color: *text_stroke, width: 4 }
2300 labels-secondary-z14:
2306 visible: *text_visible_secondary_e
2307 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2309 fill: [0.536,0.556,0.581]
2311 stroke: { color: *text_stroke, width: 4 }
2312 labels-secondary-z15:
2318 visible: *text_visible_secondary
2319 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2321 fill: [0.536,0.556,0.581]
2323 stroke: { color: [0.969,0.973,0.973], width: 4 }
2324 labels-secondary-z16:
2325 filter: { $zoom: { min: 16, max: 18 } }
2329 visible: *text_visible_secondary
2330 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2332 fill: [0.536,0.556,0.581]
2334 stroke: { color: [0.969,0.973,0.973], width: 4 }
2335 labels-secondary-z17:
2336 filter: { $zoom: { min: 17 } }
2340 visible: *text_visible_secondary
2342 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2344 fill: [0.536,0.556,0.581]
2346 stroke: { color: [0.969,0.973,0.973], width: 4 }
2348 filter: { kind_detail: [tertiary, tertiary_link] }
2351 color: [[11, [0.714,0.733,0.760]], [12, [0.633,0.655,0.686]], [13, [0.529,0.556,0.592]], [14,[0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2352 width: [[11, 0.5px], [12, 0.65px], [13, 0.65px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
2354 color: [0.529,0.556,0.592]
2355 width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
2357 filter: { $zoom: { max: 15 } }
2362 order: function() { return feature.sort_rank + 3; }
2364 filter: { ref: true, $zoom: { min: 12} }
2367 color: [[11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2368 width: [[11, 0.3px], [12, 0.4px], [13, .6px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
2370 color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.529,0.556,0.592]]]
2371 width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
2373 filter: { $zoom: { max: 15 } }
2376 order: function() { return feature.sort_rank + 3; }
2380 filter: {is_tunnel: true, $zoom: {min: 13} }
2383 color: *major_tunnel1
2385 color: *major_tunnel_casing1
2387 filter: { is_link: true } # on- and off-ramps, etc
2390 color: [[14, [0.714,0.733,0.760]], [15, [0.578,0.608,0.650]], [16, [0.533,0.555,0.586]], [17, [1.00,1.00,1.00]]]
2391 width: [[11, 0.0px], [12, 0.15px], [14, 0.15px], [15, 0.75px], [16, 1.25px], [17, 2px], [18, 2px], [19, 4px]]
2393 color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17,[0.578,0.608,0.650]]]
2394 width: [[11, 0px], [16, 0px], [17, 1px], [18, 1px]]
2396 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield,forest] }
2399 color: [[11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2400 width: [[11, 0.4px], [12, 0.5px], [13, 0.6px], [14, .8px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
2402 color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
2403 width: [[10,0.5px], [14,0.5px], [15,0.65px], [16,1.5px], [17, 2px], [18, 4px]]
2405 filter: { ref: true, $zoom: { min: 12} }
2408 width: [[11, 0.5px], [12, 0.6px], [13, 0.7px], [14, .9px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
2409 labels-tertiary-in-green-z13:
2410 filter: { $zoom: { min: 13 } }
2414 visible: *text_visible_tertiary_e
2415 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2417 fill: [0.536,0.556,0.581]
2418 stroke: { color: [0.843,0.961,0.914], width: 4 }
2419 labels-tertiary-in-green-z17:
2420 filter: { $zoom: { min: 17 } }
2424 visible: *text_visible_tertiary_e
2425 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2427 fill: [0.536,0.556,0.581]
2428 stroke: { color: [1.00,1.00,1.00], width: 4 }
2430 # filter: { landuse_kind: golf_course }
2434 # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2436 # filter: { landuse_kind: zoo }
2440 # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2441 labels-tertiary-z13:
2442 filter: { $zoom: [13] }
2446 visible: *text_visible_tertiary_e
2447 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2449 fill: [0.536,0.556,0.581]
2451 stroke: { color: *text_stroke, width: 4 }
2452 labels-tertiary-z14:
2453 filter: { $zoom: [14] }
2457 visible: *text_visible_tertiary_e
2458 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2460 fill: [0.536,0.556,0.581]
2462 stroke: { color: *text_stroke, width: 4 }
2463 labels-tertiary-z15:
2464 filter: { $zoom: [15] }
2468 visible: *text_visible_tertiary
2469 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2471 fill: [0.536,0.556,0.581]
2473 stroke: { color: [0.969,0.973,0.973], width: 4 }
2474 labels-tertiary-z16:
2475 filter: { $zoom: [16] }
2479 visible: *text_visible_tertiary
2480 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2482 fill: [0.536,0.556,0.581]
2484 stroke: { color: [0.969,0.973,0.973], width: 4 }
2485 labels-tertiary-z17:
2486 filter: { $zoom: { min: 17, max: 18 } }
2490 visible: *text_visible_tertiary
2491 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2493 fill: [0.536,0.556,0.581]
2495 stroke: { color: [0.969,0.973,0.973], width: 4 }
2496 labels-tertiary-z18:
2497 filter: { $zoom: { min: 18 } }
2501 visible: *text_visible_tertiary
2502 #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
2504 fill: [0.536,0.556,0.581]
2506 stroke: { color: [0.969,0.973,0.973], width: 4 }
2508 filter: { kind: minor_road, not: { kind_detail: service } }
2511 color: [[11, [0.885,0.885,0.885]], [12, [0.714,0.733,0.760]], [13, [0.779,0.802,0.828]], [14, [0.779,0.802,0.828]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2512 width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
2514 color: [[11, [0.894,0.906,0.914]], [14, [0.779,0.802,0.828]], [15, [0.714,0.733,0.760]], [16, [0.714,0.733,0.760]], [17, [0.744,0.764,0.792]]]
2515 width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
2517 filter: { $zoom: { max: 16 } }
2524 filter: { kind_detail: unclassified, motor_vehicle: no }
2529 # Is this junk code?
2531 filter: { $zoom: { min: 17 } }
2538 filter: { landuse_kind: [park,protected_area,nature_reserve,conservation,golf_course,garden,wood,farmland,farm,national_park,protected_area,battlefield] }
2541 color: [[11, [0.885,0.885,0.885]], [12, [0.662,0.681,0.704]], [13, [0.662,0.681,0.704]], [14, [0.662,0.681,0.704]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
2543 color: [[11, [0.894,0.906,0.914]], [14, [0.662,0.681,0.704]], [15, [0.662,0.681,0.704]], [16, [0.662,0.681,0.704]]]
2544 labels-minor-in-green-z15:
2545 filter: { $zoom: { min: 15 } }
2549 visible: *text_visible_minor_road_e
2552 fill: [0.536,0.556,0.581]
2553 stroke: { color: [0.843,0.961,0.914], width: 4 }
2554 labels-minor-in-green-z17:
2555 filter: { $zoom: { min: 17 } }
2559 visible: *text_visible_minor_road_e
2562 fill: [0.536,0.556,0.581]
2563 stroke: { color: [1.00,1.00,1.00], width: 4 }
2565 # filter: { landuse_kind: golf_course }
2569 # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.30,0.30,0.30]], [18, [0.00,0.00,0.00]]]
2571 # filter: { landuse_kind: zoo }
2575 # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.30,0.30,0.30]], [18, [0.00,0.00,0.00]]]
2577 # filter: { landuse_kind: university }
2580 # color: [[11, [0.885,0.885,0.885]], [13, [0.75,0.75,0.75]], [14, [0.70,0.70,0.70]], [15, [0.6,0.6,0.6]], [16, [0.3,0.3,0.3]], [17, [1.0,1.0,1.0]]]
2582 # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2583 # width: [[11, 1px], [16, 0px], [17, 1.5px]]
2585 # filter: { landuse_kind: hospital }
2588 # color: [[11, [0.885,0.885,0.885]], [13, [0.75,0.75,0.75]], [14, [0.70,0.70,0.70]], [15, [0.6,0.6,0.6]], [16, [0.3,0.3,0.3]], [17, [1.0,1.0,1.0]]]
2590 # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2591 # width: [[11, 1px], [16, 0px], [17, 1.5px]]
2594 filter: {is_tunnel: true, $zoom: {min: 13} }
2597 color: *minor_tunnel1
2599 color: *minor_tunnel_casing1
2601 filter: { is_bridge: true }
2607 labels-minor_road-z15:
2608 filter: { $zoom: 15 }
2612 visible: *text_visible_minor_road_e
2615 fill: [0.536,0.556,0.581]
2617 stroke: { color: *text_stroke, width: 4 }
2618 labels-minor_road-z16:
2619 filter: { $zoom: 16 }
2623 visible: *text_visible_minor_road_e
2626 fill: [0.536,0.556,0.581]
2628 stroke: { color: *text_stroke, width: 4 }
2629 labels-minor_road-z17:
2630 filter: { $zoom: { min: 17, max: 18 } }
2634 visible: *text_visible_minor_road_e
2637 fill: [0.40,0.40,0.40]
2639 stroke: { color: [0.969,0.973,0.973], width: 4 }
2640 labels-minor_road-z18:
2641 filter: { $zoom: { min: 18 } }
2645 visible: *text_visible_minor_road
2648 fill: [0.40,0.40,0.40]
2650 stroke: { color: [0.969,0.973,0.973], width: 4 }
2652 filter: { kind: minor_road, kind_detail: service }
2655 color: [[14, [0.714,0.733,0.760]], [15, [0.714,0.733,0.760]], [16, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
2656 width: [[14, 0.25px], [15, 0.5px], [16, 0px], [17, 2px], [18, 6px], [19, 6px]]
2658 color: [[14,[0.894,0.906,0.914]], [15,[0.714,0.733,0.760]], [16,[0.714,0.733,0.760]], [17, [0.791,0.812,0.842]]]
2659 width: [[13, 0px], [15, 0px], [16, 0.5px], [17, 2px], [18, 2px]]
2661 filter: { landuse_kind: [park,protected_area,nature_reserve,conservation,golf_course,garden,wood,farmland,farm,national_park,battlefield] }
2664 color: [[14, [0.779,0.802,0.828]], [15, [0.779,0.802,0.828]], [16, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
2666 color: [[14,[0.894,0.906,0.914]], [15,[0.714,0.733,0.760]], [17,[0.714,0.733,0.760]]]
2667 labels-service-in-green:
2671 visible: *text_visible_service_road
2674 fill: [0.536,0.556,0.581]
2675 stroke: { color: [0.843,0.961,0.914], width: 4 }
2677 # filter: { landuse_kind: golf_course }
2681 # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
2682 # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
2684 # filter: { landuse_kind: nature_reserve }
2688 # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
2689 # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
2691 # filter: { landuse_kind: conservation }
2695 # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
2696 # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
2698 # filter: { landuse_kind: zoo }
2702 # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
2703 # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
2705 filter: { landuse_kind: [cemetery,garden] }
2708 color: [[14, [0.779,0.802,0.828]], [15, [0.779,0.802,0.828]], [16, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
2709 width: [[14, 0.4px], [15, 0.5px], [16, 0px], [17, 2px], [18, 6px], [19, 6px]]
2711 color: [[14,[0.894,0.906,0.914]], [15,[0.714,0.733,0.760]], [17,[0.714,0.733,0.760]]]
2713 # filter: { landuse_kind: university }
2717 # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
2718 # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
2720 # filter: { landuse_kind: hospital }
2724 # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
2725 # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
2726 labels-service_road:
2727 filter: { $zoom: 17 }
2731 visible: *text_visible_service_road
2735 fill: [0.536,0.556,0.581]
2737 stroke: { color: [0.969,0.973,0.973], width: 4 }
2738 labels-service_road-z18:
2739 filter: { $zoom: { min: 18 } }
2743 visible: *text_visible_service_road
2746 fill: [0.536,0.556,0.581]
2748 stroke: { color: [0.969,0.973,0.973], width: 4 }
2754 # United State looks great with shield_text alone, but...
2756 #shield_text: true # some roads don't have shield text, deal with that later
2758 # Europe doesn't have many network relations set, so we could look for either
2759 # shield_text or ref (with no shield_text) but...
2760 # that makes United States look a bit funky with `(xxx)` and generic shields
2761 # showing up in fields of custom state shields like US:CA and US:NY
2764 - shield_text: true # some roads don't have shield text, deal with that later
2766 - shield_text: false # some roads don't have shield text, deal with that later
2768 - kind_detail: [motorway, trunk, primary, secondary, tertiary]
2772 # you need to match any custom shield to the vector tile `network` values
2775 if( feature.shield_text ) {
2776 return ('generic_shield_' + feature.shield_text.length + 'char');
2778 return ('generic_shield_' + feature.ref.length + 'char');
2781 sprite_default: generic_shield_5char
2783 repeat_group: shields
2784 repeat_distance: [[8,90px],[10,40px],[13,30px]]
2786 placement_min_length_ratio:
2794 cull_from_tile: true
2797 offset: [0px, -0.5px]
2798 repeat_distance: 200px
2802 if( feature.shield_text ) {
2803 return feature.shield_text;
2810 #fill: [0.308,0.308,0.308]
2811 fill: [0.320,0.320,0.320]
2812 size: [[7,7px],[12,8px],[16,11px]]
2814 default_priority_highway:
2817 - kind_detail: motorway
2823 visible: *text_visible_shields
2825 default_priority_trunk:
2828 - kind_detail: [trunk]
2829 - $zoom: { min: 10 }
2834 visible: *text_visible_shields
2835 default_priority_primary:
2838 - kind_detail: [primary]
2839 - $zoom: { min: 12 }
2844 visible: *text_visible_shields
2845 default_priority_trunk_secondary:
2848 - kind_detail: [secondary]
2849 - $zoom: { min: 12 }
2854 visible: *text_visible_shields
2855 default_priority_trunk_tertiary:
2858 - kind_detail: tertiary
2859 - $zoom: { min: 13 }
2864 visible: *text_visible_shields
2867 # not: { network: ['US:I','US:US'] }
2875 if( feature.shield_text ) {
2876 return (feature.shield_text.length === 1)
2878 return (feature.ref.length === 1)
2883 size: [[6,[14px,14px]],[13,[16px,16px]],[16,[18px,18px]]]
2887 if( feature.shield_text ) {
2888 return (feature.shield_text.length === 2)
2890 return (feature.ref.length === 2)
2895 size: [[6,[18px,14px]],[13,[20px,15px]],[16,[24px,18px]]]
2899 if( feature.shield_text ) {
2900 return (feature.shield_text.length === 3)
2902 return (feature.ref.length === 3)
2907 size: [[6,[25px,14px]],[13,[27px,15px]],[16,[33px,18px]]]
2911 if( feature.shield_text ) {
2912 return (feature.shield_text.length === 4)
2914 return (feature.ref.length === 4)
2919 size: [[6,[29px,14px]],[13,[31px,15px]],[16,[38px,18px]]]
2922 filter: { $zoom: { max: 14 } }
2929 if( feature.shield_text ) {
2930 return (feature.shield_text.length === 5)
2932 return (feature.ref.length === 5)
2937 size: [[6,[34px,14px]],[13,[37px,15px]],[16,[45px,18px]]]
2940 filter: { $zoom: { max: 14 } }
2944 # this is kinda a hack
2948 if( feature.shield_text ) {
2949 return (feature.shield_text.length > 5)
2951 return (feature.ref.length > 5)
2957 # missing-route-relations:
2958 # filter: { shield_text: false }
2965 # Now for the good stuff
2968 filter: { shield_text: true }
2972 # US Interstate roads
2978 # you need to match any custom shield to the vector tile `network` values
2979 sprite: function() { return (feature.network + '_' + feature.shield_text.length + 'char'); }
2981 visible: *text_visible_shields
2983 offset: [0px, 0.5px]
2986 size: [[7,8px],[13,9px],[15,11px]]
2988 filter: function() { return (feature.shield_text.length === 1) }
2991 size: [[6,[15px,18px]],[13,[17px,20px]],[15,[22px,25px]]]
2993 filter: function() { return (feature.shield_text.length === 2) }
2996 size: [[6,[18px,18px]],[13,[20px,20px]],[15,[25px,25px]]]
2998 filter: function() { return (feature.shield_text.length === 3) }
3001 size: [[6,[23px,18px]],[13,[26px,20px]],[15,[33px,25px]]]
3003 filter: function() { return (feature.shield_text.length === 4) }
3006 size: [[6,[25px,18px]],[13,[27px,20px]],[15,[35px,25px]]]
3008 filter: function() { return (feature.shield_text.length === 5) }
3011 size: [[6,[26px,18px]],[13,[30px,20px]],[15,[38px,25px]]]
3015 network: ['US:US','US:US:Business', 'US:US:Truck', 'US:US:Alternate']
3019 # you need to match any custom shield to the vector tile `network` values
3021 function() { return ('US:US_' + feature.shield_text.length + 'char'); }
3023 cull_from_tile: true
3024 visible: *text_visible_shields
3026 offset: [0px, -0.7px]
3029 size: [[7,8px],[13,9px],[15,11px]]
3031 # filter: { $zoom: [7] }
3035 filter: function() { return (feature.shield_text.length === 1) }
3038 size: [[6,[15px,17px]],[13,[17px,19px]],[15,[22px,24px]]]
3040 filter: function() { return (feature.shield_text.length === 2) }
3043 size: [[6,[18px,17px]],[13,[20px,19px]],[15,[26px,24px]]]
3045 filter: function() { return (feature.shield_text.length === 3) }
3048 size: [[6,[22px,17px]],[13,[25px,19px]],[15,[34px,25px]]]
3050 filter: function() { return (feature.shield_text.length === 4) }
3053 size: [[6,[25px,17px]],[13,[29px,19px]],[15,[39px,25px]]]
3055 filter: function() { return (feature.shield_text.length === 5) }
3058 size: [[6,[27px,17px]],[13,[30px,19px]],[15,[41px,25px]]]
3061 # # Match state highways: `US:??`
3064 # return feature.shield_text &&
3065 # /^US:(?!US)\w\w$/.test(feature.network)
3069 # # you need to match any custom shield to the vector tile `network` values
3072 # filter: { $zoom: [7,8,9] }
3076 # Match California state highways: `US:CA`
3079 return feature.shield_text &&
3080 /^US:CA$/.test(feature.network)
3084 sprite: function() { return (feature.network + '_' + feature.shield_text.length + 'char'); }
3089 size: [[7,7px],[13,9px],[15,10px]]
3091 filter: { kind_detail: [motorway], $zoom: [7,8] }
3094 visible: *text_visible_shields
3096 filter: { kind_detail: [trunk], $zoom: [8,9] }
3099 visible: *text_visible_shields
3101 filter: { kind_detail: primary, $zoom: [10,11] }
3104 visible: *text_visible_shields
3106 filter: function() { return (feature.shield_text.length === 1) }
3109 size: [[6,[14px,16px]],[13,[15px,18px]],[15,[18px,21px]]]
3111 filter: function() { return (feature.shield_text.length === 2) }
3114 size: [[6,[18px,18px]],[13,[20px,20px]],[15,[23px,23px]]]
3116 filter: function() { return (feature.shield_text.length === 3) }
3119 size: [[6,[21px,18px]],[13,[24px,20px]],[15,[28px,23px]]]
3121 filter: function() { return (feature.shield_text.length === 4) }
3124 size: [[6,[24px,18px]],[13,[26px,20px]],[15,[31px,23px]]]
3126 filter: function() { return (feature.shield_text.length === 5) }
3129 size: [[6,[25px,18px]],[13,[27px,20px]],[15,[32px,23px]]]
3131 # Match New York state highways: `US:NY`
3134 return feature.shield_text &&
3135 /^US:NY$/.test(feature.network)
3136 /* (/^US:NY$/.test(feature.network) || /^NY:US$/.test(feature.network)) */
3141 function() { return ( 'US:NY_' + feature.shield_text.length + 'char'); }
3143 # offset: [0px, 1px]
3146 size: [[7,7px],[13,9px],[15,10px]]
3148 filter: function() { return (feature.shield_text.length === 1) }
3151 size: [[6,[13px,17px]],[13,[15px,19px]],[15,[18px,22px]]]
3153 filter: function() { return (feature.shield_text.length === 2) }
3156 size: [[6,[17px,17px]],[13,[19px,19px]],[15,[22px,22px]]]
3158 filter: function() { return (feature.shield_text.length === 3) }
3161 size: [[6,[20px,17px]],[13,[22px,19px]],[15,[27px,22px]]]
3163 filter: function() { return (feature.shield_text.length === 4) }
3166 size: [[6,[21px,17px]],[13,[24px,19px]],[15,[29px,22px]]]
3168 filter: function() { return (feature.shield_text.length === 5) }
3171 size: [[6,[22px,17px]],[13,[25px,19px]],[15,[30px,22px]]]
3173 # Match Pennsylvania state highways
3176 return feature.shield_text &&
3177 /^US:PA$/.test(feature.network)
3182 function() { return ( 'US:PA_' + feature.shield_text.length + 'char'); }
3187 size: [[7,7px],[13,9px],[15,10px]]
3189 filter: function() { return (feature.shield_text.length === 1) }
3192 size: [[6,[13px,17px]],[13,[15px,19px]],[15,[18px,22px]]]
3194 filter: function() { return (feature.shield_text.length === 2) }
3197 size: [[6,[17px,17px]],[13,[19px,19px]],[15,[22px,22px]]]
3199 filter: function() { return (feature.shield_text.length === 3) }
3202 size: [[6,[21px,17px]],[13,[24px,19px]],[15,[28px,22px]]]
3204 filter: function() { return (feature.shield_text.length === 4) }
3207 size: [[6,[22px,17px]],[13,[25px,19px]],[15,[30x,22px]]]
3209 filter: function() { return (feature.shield_text.length === 5) }
3212 size: [[6,[24px,17px]],[13,[27px,19px]],[15,[32px,22px]]]
3215 # Match state highways: `US:??:*`
3217 # this is very USA specific
3221 # return feature.shield_text &&
3222 # /^US:(?!US)\w\w:.*$/.test(feature.network)
3225 # this generic for any country with 3rd level networks (like county routes in USA)
3227 # US:US:Business about 150
3232 # ??:??:Loop about 200
3233 # ??:??:Spur about 200
3234 # ??:??:Business about 100
3236 # STATE TEXAS SPECIAL ROUTE
3237 # US:TX:FM -- probably just state? there are 3k of these
3242 return feature.shield_text &&
3243 /^\w+:\w+:(!Alternate).+$/.test(feature.network) &&
3248 # you need to match any custom shield to the vector tile `network` values
3249 sprite: function() { return ('county_shield_' + feature.shield_text.length + 'char'); }
3251 visible: *text_visible_shields
3254 fill: [0.320,0.320,0.320]
3255 #size: [[11,7px],[15,10px]]
3257 # filter: { $zoom: { max: 11 } }
3262 filter: function() { return (feature.shield_text.length === 1) }
3265 size: [[6,[14px,14px]],[13,[16px,16px]],[15,[18px,18px]]]
3267 filter: function() { return (feature.shield_text.length === 2) }
3270 size: [[6,[16px,14px]],[13,[18px,15px]],[15,[22px,18px]]]
3272 filter: function() { return (feature.shield_text.length === 3) }
3275 size: [[6,[20px,14px]],[13,[21px,15px]],[15,[26px,18px]]]
3277 filter: function() { return (feature.shield_text.length === 4) }
3280 size: [[6,[25px,14px]],[13,[28px,15px]],[15,[34px,18px]]]
3282 filter: function() { return (feature.shield_text.length === 5) }
3285 size: [[6,[30px,14px]],[13,[33px,15px]],[15,[40px,18px]]]
3289 - kind: [path, portage_way]
3291 - kind_detail: [footway, steps, track, cycleway]
3292 - kind_detail: [pier]
3295 order: function() { return feature.sort_rank; }
3298 color: [0.350,0.350,0.350]
3299 width: [[14, 0.35px], [15, 0.5px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
3301 # color: [0.790,0.790,0.790]
3302 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3312 filter: { kind: portage_way }
3315 color: [0.350,0.350,0.350]
3317 filter: { kind_detail: pedestrian }
3320 color: [[16,[0.749,0.749,0.749]]]
3321 width: [[14, 0.35px], [15, 0.35px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
3323 # color: [0.790,0.790,0.790]
3324 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3326 filter: { is_bridge: true }
3329 width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3332 color: [[15,*path_bridge_casing2],[16,*path_bridge_casing1]]
3333 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3336 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
3339 color: [0.350,0.350,0.350]
3341 # color: [0.790,0.790,0.790]
3342 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3344 # filter: { landuse_kind: golf_course }
3347 # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3349 # color: [0.790,0.790,0.790]
3350 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3352 # filter: { landuse_kind: nature_reserve }
3355 # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3357 # color: [0.790,0.790,0.790]
3358 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3360 # filter: { landuse_kind: conservation }
3363 # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3365 # color: [0.790,0.790,0.790]
3366 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3367 # in_cemetery_garden:
3368 # filter: { landuse_kind: [cemetery,garden] }
3371 # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3372 # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3374 # color: [0.790,0.790,0.790]
3375 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3377 # filter: { landuse_kind: zoo }
3380 # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3381 # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3383 # color: [0.790,0.790,0.790]
3384 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3386 # filter: { landuse_kind: university }
3389 # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3390 # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3392 # color: [0.790,0.790,0.790]
3393 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3395 # filter: { landuse_kind: hospital }
3398 # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3399 # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3401 # color: [0.790,0.790,0.790]
3402 # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3404 filter: { $zoom: { min: 17 } }
3408 visible: *text_visible_path
3411 fill: [0.536,0.556,0.581]
3413 stroke: { color: *text_stroke, width: 4 }
3415 filter: { kind: path, kind_detail: track }
3418 color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3419 width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3423 color: [0.790,0.790,0.790]
3424 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3426 filter: { is_bridge: true }
3430 width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3433 color: [1.0,1.0,1.0]
3434 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3437 filter: { landuse_kind: [park,national_park,nature_reserve,conservation,golf_course,garden,battlefield] }
3440 color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3441 width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3443 color: [0.790,0.790,0.790]
3444 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3449 - kind_detail: steps
3452 #order: function() { return feature.sort_rank; }
3454 color: [0.501,0.650,0.650]
3455 width: [[15, 0.6], [16, 1px], [17, 1px], [18, 4px], [19, 1.5m]]
3461 #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 2px], [17, 6px], [18, 7px], [19, 10px]]
3462 #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
3463 color: [[14,[0.510,0.752,0.695]],[15,[0.671,0.839,0.820]],[16,[0.671,0.839,0.820]]]
3464 width: [[13, 0.75px], [14, 0.6px], [15, 1px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
3468 filter: { $zoom: { min: 17 } }
3471 # color: [0.707,0.884,0.872]
3474 # width: [[17, 0px], [18, 1px], [19, 2px]]
3475 # color: [0.850,0.850,0.850]
3477 width: [[17, 2px], [18, 3px], [19, 3.5px]]
3478 color: [0.501,0.650,0.650]
3479 early-show-as-lines-z14:
3480 filter: { $zoom: { max: 16 } }
3487 filter: { walking_network: true }
3490 width: [[13, 0.75px], [14, 1px], [15, 2px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
3492 width: [[13, 1.25px],[14, 2px],[15, 1.75px],[16, 2px], [17, 4px], [18, 5px], [19, 8px]]
3495 color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
3496 width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
3499 filter: { $zoom: { max: 15 } }
3502 color: [0.120,0.600,0.520]
3503 networked-steps-late:
3504 filter: { $zoom: { min: 18 } }
3507 color: [0.120,0.600,0.520]
3509 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
3512 color: [0.120,0.600,0.520]
3514 # filter: { landuse_kind: university }
3517 # color: *path_steps1_b
3519 # color: [1.0,1.0,1.0]
3521 # filter: { landuse_kind: hospital }
3524 # color: *path_steps1_b
3526 # color: [1.0,1.0,1.0]
3528 filter: { $zoom: { min: 17 } }
3532 visible: *text_visible_steps
3535 fill: [0.45,0.45,0.45]
3537 stroke: { color: *text_stroke, width: 4 }
3538 winter_sport_pistes:
3539 filter: { kind: piste }
3542 order: 388 # We override the server value here because Eraser Map is also a special Ski Map
3546 width: [[13,0px],[14,1px],[15, 1.25px], [16, 2px], [18, 3m]]
3549 visible: *text_visible_piste
3551 fill: *text_fill_piste
3553 stroke: { color: [0.913,0.925,0.933], width: 4 }
3555 filter: { $zoom: { max: 15 } }
3560 filter: { $zoom: [15] }
3564 fill: *text_fill_piste_e
3567 filter: { piste_difficulty: easy }
3570 color: [0.367,0.750,0.622]
3572 filter: { piste_difficulty: intermediate }
3575 color: [0.420,0.678,0.863]
3577 filter: { piste_difficulty: advanced }
3580 color: [0.450,0.450,0.450]
3582 text_source: function() { if( feature.name ){ return '◆ ' + feature.name; } else { return ''; } }
3584 filter: { piste_difficulty: expert }
3587 color: [0.450,0.450,0.450]
3589 text_source: function() { if( feature.name ){ return '◆◆ ' + feature.name; } else { return ''; } }
3591 filter: { kind: path, kind_detail: pier }
3594 color: [0.993,0.993,0.993]
3595 width: [[13, 0px], [14, 0.5px],[15, 1.5px], [16, 2.5px],[17, 3px],[18, 3m]]
3597 color: [0.431,0.806,0.914]
3598 width: [[15, 0px],[16,0.65px], [17, 0.75px], [18, 1px], [19, 1.5px]]
3600 filter: { kind: racetrack }
3606 color: [0.400,0.666,0.690]
3607 width: [[13,0.5px],[14,1px],[15, 1px], [16, 1.5px], [18, 3px], [19, 5px]]
3609 filter: { kind: aeroway }
3612 color: [[11, [0.25,0.25,0.25]], [17, [0.0,0.0,0.0]]]
3614 width: [[10, 1px], [11, 1.5px], [12, 2px], [13, 4px], [14, 8px], [15, 16px], [16, 32px], [17, 60m]]
3616 color: [1.0,1.0,1.0]
3617 # Features come in at zoom 9, but include mostly minor airports without POIs until z13
3619 filter: { $zoom: { max: 12 }, not: { landuse_kind: [aerodrome, runway, taxiway] } }
3624 filter: { $zoom: { min: 17 } }
3629 filter: { kind_detail: taxiway }
3632 color: [[11, [0.885,0.885,0.885]], [13, [0.779,0.802,0.828]], [14,[0.779,0.802,0.828]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
3633 width: [[11, 0.5px], [12, 0.65px], [13, 0.65px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
3635 color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.714,0.733,0.760]], [16, [0.714,0.733,0.760]], [17, [0.744,0.764,0.792]]]
3636 width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
3638 filter: { $zoom: { max: 13 } }
3643 filter: { kind_detail: runway }
3646 color: [[11, [0.885,0.885,0.885]], [13, [0.714,0.733,0.760]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
3648 color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.714,0.733,0.760]], [16, [0.714,0.733,0.760]], [17, [0.744,0.764,0.792]]]
3649 width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
3651 filter: { kind: ferry }
3654 color: [0.451,0.804,0.878]
3655 width: [[12, 0.5px], [13, 0.75px], [15, 1.0px]]
3657 filter: { kind: aerialway }
3661 color: [0.5,0.5,0.5]
3662 width: [[14, 0.5px], [15, 1.0px], [16, 2m]]
3664 filter: { kind_detail: [gondola, cable_car] }
3667 color: [0.45,0.45,0.45]
3668 width: [[12, 0.5px], [13, 0.5px], [14, 1.75px], [15, 2.5px], [16, 2.5px], [18, 3m]]
3669 # lines_transparent:
3670 # color: [0.5,0.5,0.5]
3671 # width: [[12, 0px], [13, 5px], [14, 8px], [15, 10px], [16, 12px]]
3673 filter: { kind_detail: chair_lift }
3676 color: [0.45,0.45,0.45]
3677 width: [[12, 0.5px], [13, 0.5px], [14, 1.75px], [15, 2.5px], [16, 2.5px], [18, 3m]]
3678 # lines_transparent:
3679 # color: [0.5,0.5,0.5]
3680 # width: [[12, 0px], [13, 5px], [14, 8px], [15, 10px], [16, 12px], [18, 20px]]
3682 filter: { $zoom: { min: 14 } }
3686 visible: *text_visible_aerialway
3691 stroke: { color: *text_stroke_park, width: 4 }
3693 filter: { not: { kind_detail: [gondola,cable_car,chair_lift] }, $zoom: { max: 17 } }
3698 filter: { $zoom: [14], kind_detail: [gondola,cable_car] }
3704 filter: { $zoom: { min: 15 } }
3710 data: { source: mapzen, layer: buildings }
3712 not: { location: underground }
3713 # set default footprint and extrusion draw properties, but don't draw by default (rules below will turn visibility on)
3718 color: [[14,[0.930,0.940,0.940]],[15,[0.920,0.930,0.930]],[16,[0.930,0.940,0.940]]]
3723 color: [[14,[0.750,0.750,0.750]],[17,[0.85, 0.85, 0.85]]]
3724 width: [[14, 0px], [15, 0.5px], [16,0.5px], [17,1px], [18, 1.25px]]
3726 # turn interactive feature selection on for buildings with names
3728 filter: { name: true }
3729 draw: { polygons: { interactive: true } }
3731 # building footprints, pre-extrusion
3735 # limit show smaller landuse areas to higher zooms
3736 - { $zoom: [13], scale_rank: [1,2] }
3737 - { $zoom: [14], scale_rank: [1,2,3] }
3738 - { $zoom: [15], area: { min: 5000 }, name: true }
3739 - { $zoom: [15], area: { min: 5000 }, kind: true }
3740 - { $zoom: [15], area: { min: 3000 }, landuse_kind: true }
3741 - { $zoom: [15], height: { min: 100 } }
3742 - { $zoom: [15], volume: { min: 100000 } }
3743 - { $zoom: [16], area: { min: 1000 }, name: true }
3744 - { $zoom: [16], area: { min: 1000 }, kind: true }
3745 - { $zoom: [16], area: { min: 2000 }, landuse_kind: true }
3746 - { $zoom: [16], volume: { min: 50000 } }
3747 #- { $zoom: [16], height: { min: 50 } }
3748 - { $zoom: { min: 17 } }
3750 - not: { location: underground }
3760 # for the buildings that were visible at zoom 15, extrude those all up a bit at z17
3761 - { $zoom: [16], area: { min: 20000 }, name: true }
3762 - { $zoom: [16], area: { min: 20000 }, kind: true }
3763 - { $zoom: [16], area: { min: 5000 }, landuse_kind: true }
3764 - { $zoom: [16], height: { min: 150 } }
3765 - { $zoom: [16], volume: { min: 150000 } }
3766 - { $zoom: [17], area: { min: 5000 }, name: true }
3767 - { $zoom: [17], area: { min: 5000 }, kind: true }
3768 - { $zoom: [17], area: { min: 3000 }, landuse_kind: true }
3769 - { $zoom: [17], height: { min: 100 } }
3770 - { $zoom: [17], volume: { min: 100000 } }
3771 - { $zoom: { min: 18 } }
3776 style: building-grid
3778 color: [0.930,0.940,0.940]
3782 style: building-lines
3785 filter: { $zoom: [16] }
3792 filter: { $zoom: { min: 18 } }
3801 - { $zoom: { min: 18 }, area: { min: 5000 }, name: true }
3802 - { $zoom: { min: 18 }, area: { min: 5000 }, kind: true }
3803 - { $zoom: { min: 18 }, area: { min: 3000 }, landuse_kind: true }
3804 - { $zoom: { min: 18 }, height: { min: 100 } }
3805 - { $zoom: { min: 18 }, volume: { min: 100000 } }
3813 # landuse-specific rules
3815 # filter: { landuse_kind: [park,forest,nature_reserve,conservation,golf_course,garden] }
3818 # color: [0.864,0.910,0.905]
3821 # # filter: { landuse_kind: golf_course }
3824 # # color: *building2
3826 # # filter: { landuse_kind: nature_reserve }
3829 # # color: *building2
3831 # # filter: { landuse_kind: conservation }
3834 # # color: *building2
3836 # # filter: { landuse_kind: zoo }
3839 # # color: *building2
3841 # filter: { landuse_kind: [university,school] }
3844 # color: [0.950,0.917,0.883]
3848 # filter: { landuse_kind: hospital }
3851 # color: [0.976,0.908,0.913]
3853 # filter: { landuse_kind: [aerodrome, runway, taxiway] }
3859 # width: [[14,0.5px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
3861 # filter: { landuse_kind: retail }
3864 # color: [0.945, 0.898, 0.878]
3867 data: { source: mapzen, layer: buildings }
3870 - { $zoom: { min: 17 } }
3872 - not: { location: underground, kind: address }
3875 - { $zoom: [16], area: { min: 5000 } }
3876 - { $zoom: [16], area: { min: 5000 } }
3877 - { $zoom: [16], area: { min: 10000 }, landuse_kind: true }
3878 - { $zoom: [16], area: { min: 7000 }, kind_detail: [university, college, school, kindergarten] }
3879 - { $zoom: [16], volume: { min: 50000 }, name: true }
3880 - { $zoom: [17], area: { min: 3000 } }
3881 - { $zoom: [17], area: { min: 2000 }, kind_detail: [university, college, school, kindergarten] }
3882 - { $zoom: [18], area: { min: 1000 } }
3883 - { $zoom: [18], kind_detail: [university, college, school, kindergarten] }
3884 - { $zoom: [19], area: { min: 200 } }
3885 - { $zoom: { min: 19 }, kind_detail: [university, college, school, kindergarten] }
3886 - { $zoom: { min: 20 }, area: true }
3890 move_into_tile: true
3892 visible: *text_visible_building
3896 family: *text_font_family
3899 stroke: { color: *text_stroke_address, width: 1 }
3900 building_labels-z15-z16-z17:
3901 filter: { $zoom: [15,16,17] }
3902 draw: { text-blend-order: { font: { size: 12px, stroke: { width: 2 } } } }
3903 building_labels-z18:
3904 filter: { $zoom: [18,19] }
3905 draw: { text-blend-order: { font: { size: 12px, weight: 600, stroke: { width: 3 } } } }
3906 building_labels-z20-up:
3907 filter: { $zoom: { min: 20 } }
3908 draw: { text-blend-order: { font: { size: 14px, weight: 600, stroke: { width: 3 } } } }
3909 building-labels-z16:
3910 filter: function() { if( $zoom == 16 && feature.name.length > 20 ) { return true; } else { return false; } }
3914 building-labels-z17:
3915 filter: function() { if( $zoom == 17 && feature.name.length > 30 ) { return true; } else { return false; } }
3919 building-labels-z20+:
3920 filter: { $zoom: { min: 20 } }
3923 text_source: function() { if( feature.addr_housenumber ) { return feature.name + '\n' + feature.addr_housenumber; } else { return feature.name; } }
3925 data: { source: mapzen, layer: buildings }
3930 - { label_position: true, addr_housenumber: true, name: false }
3935 visible: *text_visible_address
3936 text_source: addr_housenumber
3938 fill: *text_fill_address
3939 family: *text_font_family
3942 stroke: { color: *text_stroke_address, width: 4 }
3945 data: { source: mapzen, layer: boundaries }
3946 # country subdivisions (states, provinces)
3950 order: function() { return (feature.sort_rank + 100); }
3952 # width: [[9, 1px], [14, 2px], [16, 3px], [17, 8m]]
3962 color: *country_boundary
3963 width: [[1, 0.5px], [2, 1.0px], [4, 1.5px], [9, 2.5px], [14, 3.5px], [16, 4.5px], [17, 14m]]
3965 filter: { maritime_boundary: true }
3969 #order: function() { return (feature.sort_rank - 2); }
3970 #color: [0.568,0.942,1.000]
3972 # other_country_boundary_disputed_etc:
3973 # filter: { kind: [disputed, indefinite, indeterminate, lease_limit, line_of_control, overlay_limit] }
3977 # color: *country_boundary
3978 # width: [[1, 0.2px], [2, 0.5px], [4, 1.0px], [9, 1.5px], [14, 2.5px], [16, 3.5px], [17, 10m]]
3985 # # territorial here is probably a hack
3986 # - kind: [state, department, region, provincial, territorial]
3989 # # deal with bogus Hungary data
3994 color: *region_boundary
3995 width: [[0, 0.5px], [2, 1.0px], [5, 1.25px], [6, 1.5px], [7, 1.75px], [9, 2.0px], [14, 4.0px], [16, 5.0px], [17, 10m]]
3997 filter: { maritime_boundary: true }
4002 filter: { not: { min_zoom: [1,2] }, $zoom: { max: 8 } }
4007 filter: { kind: city_wall }
4011 width: [[12, 0.75px], [13, 1.0px], [14, 1.2px], [15, 2.0px], [16, 2.5px], [19, 6m]]
4013 filter: { kind: retaining_wall }
4016 color: *retaining_wall
4017 width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 4m]]
4019 filter: { kind: snow_fence }
4023 width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
4025 filter: { kind: fence }
4028 color: [[14,[0.770,0.765,0.755]],[18,[0.770,0.765,0.755]],[19,[0.841,0.837,0.824]]]
4029 width: [[14, 0.5px], [15, 0.75px], [16, 0.75px], [18, 1.5px], [19, 1m]]
4031 filter: { kind: dam }
4035 width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
4038 data: { source: mapzen, layer: places }
4039 filter: { not: { kind: [ocean, sea] } }
4042 visible: false # labels are enabled by each layer below
4044 family: *text_font_family
4053 - name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"]
4057 visible: *text_visible_admin
4058 text_source: function() { return feature["name:en"] || feature["name"]; }
4063 stroke: { color: *text_stroke, width: 4 }
4065 filter: { name: true, population: true, kind: [country], $zoom: [3] }
4069 visible: *text_visible_admin
4070 text_source: function() { return feature["name:en"] || feature["name"]; }
4075 stroke: { color: *text_stroke, width: 4 }
4077 # size: [[13, 12px], [15, 18px]]
4079 # sprite: *townspot_sprite
4081 # US, Brazil, China, Russia, Canada, Greenland, Iceland, Australia, India, Japan, Guam, Indonesia, South Africa, Egypt, Nigeria, Kenya
4082 filter: { not: { name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"] }, $zoom: {min: 3, max: 4} }
4087 filter: { name: true, population: true, kind: [country], $zoom: [4] }
4091 visible: *text_visible_admin
4092 text_source: function() { return feature["name:en"] || feature["name"]; }
4097 stroke: { color: *text_stroke, width: 4 }
4099 # size: [[13, 12px], [15, 18px]]
4101 # sprite: *townspot_sprite
4103 filter: { name: [Nederland,Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,Crna Gora,Македонија,The Gambia,Burundi,Swaziland,الإمارات العربية المتحدة,العراق,Singapore,El Salvador,Belize,Trinidad and Tobago, Saint Lucia, Montserrat,Anguilla,República Dominicana,Bahamas,British Virgin Islands,Antigua and Barbuda,Grenada,Sint Maarten,Saint Kitts and Nevis,Cayman Islands,België - Belgique - Belgien], $zoom: {min: 4, max: 5} }
4115 - { population: { min: 5000000 } }
4119 visible: *text_visible_admin
4120 text_source: function() { return feature["name:en"] || feature["name"]; }
4125 stroke: { color: *text_stroke, width: 4 }
4126 # country-spacer-z5:
4127 # filter: { kind: country, $zoom: [5] }
4130 # text_source: function() { return feature.name.split('').join(' ') }
4133 # size: [[13, 12px], [15, 18px]]
4135 # sprite: *townspot_sprite
4137 filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,El Salvador,Belize,België - Belgique - Belgien], $zoom: {min: 5, max: 6} }
4142 # South Ossetia and Abkhazia aren't countries (they are disputed areas)
4143 filter: { name: true, kind: [country], $zoom: [6] }
4147 visible: *text_visible_admin
4148 text_source: function() { return feature["name:en"] || feature["name"]; }
4153 stroke: { color: *text_stroke, width: 4 }
4155 filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,België - Belgique - Belgien,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 6, max: 7} }
4160 # South Ossetia and Abkhazia aren't countries (they are disputed areas)
4161 filter: { name: true, kind: [country], $zoom: { min: 7, max: 9 } }
4165 visible: *text_visible_admin
4166 text_source: function() { return feature["name:en"] || feature["name"]; }
4171 stroke: { color: *text_stroke, width: 4 }
4173 filter: { name: [Liechtenstein,San Marino,Civitatis Vaticanæ,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 7, max: 8} }
4179 filter: { name: true, kind: [region], $zoom: [4], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
4183 visible: *text_visible_admin
4184 text_source: 'name:short'
4188 fill: [0.70,0.70,0.70]
4189 stroke: { color: *text_stroke, width: 4 }
4192 filter: { name: true, kind: [region], $zoom: [5], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
4196 visible: *text_visible_admin
4197 text_source: 'name:short'
4201 fill: [0.5,0.5,0.5,0.5]
4202 stroke: { color: *text_stroke, width: 4 }
4205 filter: { name: true, kind: [region], $zoom: [6], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
4209 visible: *text_visible_admin
4210 text_source: 'name:short'
4214 fill: [0.5,0.5,0.5,0.5]
4215 # stroke: { color: *text_stroke, width: 4 }
4216 transform: uppercase
4219 filter: { name: true, kind: [region], $zoom: {min: 7, max: 9} }
4223 visible: *text_visible_admin
4224 text_source: function() { if(feature["name:short"]) { return feature["name"]; } else { return ""; } }
4228 fill: [0.5,0.5,0.5,0.5]
4229 # stroke: { color: *text_stroke, width: 4 }
4230 transform: uppercase
4232 # size: [[13, 12px], [15, 18px]]
4234 # sprite: *townspot_sprite
4236 filter: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"], $zoom: {min: 7, max: 8} }
4241 filter: { name: ["Delaware","New Jersey","Connecticut","Rhode Island","Massachusetts","New Hampshire","Vermont"], $zoom: {min: 7, max: 8} }
4244 text_source: function() { return feature["name:abbreviation"] || feature["name"]; }
4245 font: { transform: uppercase }
4259 populated-places-natural-earth-z2:
4260 filter: { $zoom: [2], min_zoom: 2 }
4264 visible: *icon_visible_populated_places
4265 sprite: townspot-s-rev
4267 visible: *text_visible_populated_places
4271 stroke: { color: *text_stroke, width: 4 }
4273 populated-places-natural-earth-z3:
4274 filter: { $zoom: [3] }
4276 filter: { min_zoom: 2 }
4280 visible: *icon_visible_populated_places
4281 sprite: townspot-s-rev
4283 visible: *text_visible_populated_places
4287 stroke: { color: *text_stroke, width: 4 }
4289 filter: { min_zoom: 3 }
4294 visible: *icon_visible_populated_places
4295 sprite: townspot-s-rev
4297 visible: *text_visible_populated_places
4301 stroke: { color: *text_stroke, width: 4 }
4303 populated-places-natural-earth-z4:
4304 filter: { $zoom: [4] }
4306 filter: { min_zoom: 2 }
4310 visible: *icon_visible_populated_places
4311 sprite: townspot-s-rev
4313 visible: *text_visible_populated_places
4317 stroke: { color: *text_stroke, width: 4 }
4320 filter: { min_zoom: [3,4] }
4325 visible: *icon_visible_populated_places
4326 sprite: townspot-s-rev
4328 visible: *text_visible_populated_places
4332 stroke: { color: *text_stroke, width: 4 }
4334 populated-places-natural-earth-z5:
4335 filter: { $zoom: [5] }
4337 filter: { min_zoom: [2,3] }
4342 visible: *icon_visible_populated_places
4343 sprite: townspot-m-rev
4345 visible: *text_visible_populated_places
4349 stroke: { color: *text_stroke, width: 4 }
4351 filter: { country_capital: true }
4361 filter: { min_zoom: 4 }
4366 visible: *icon_visible_populated_places
4367 sprite: townspot-s-rev
4369 visible: *text_visible_populated_places
4373 stroke: { color: *text_stroke, width: 4 }
4375 filter: { country_capital: true }
4385 filter: { min_zoom: 5 }
4390 visible: *icon_visible_populated_places
4391 sprite: townspot-s-rev
4393 visible: *text_visible_populated_places
4397 stroke: { color: *text_stroke, width: 4 }
4399 filter: { country_capital: true }
4408 populated-places-natural-earth-z6:
4409 filter: { $zoom: [6] }
4411 filter: { min_zoom: [2,3] }
4416 visible: *icon_visible_populated_places
4417 sprite: townspot-l-rev
4419 visible: *text_visible_populated_places
4423 stroke: { color: *text_stroke, width: 4 }
4425 filter: { country_capital: true }
4435 filter: { min_zoom: [4,5] }
4440 visible: *icon_visible_populated_places
4441 sprite: townspot-m-rev
4443 visible: *text_visible_populated_places
4447 stroke: { color: *text_stroke, width: 4 }
4449 filter: { country_capital: true }
4459 filter: { min_zoom: 6 }
4463 visible: *icon_visible_populated_places
4464 sprite: townspot-s-rev
4467 visible: *text_visible_populated_places
4471 stroke: { color: *text_stroke, width: 4 }
4473 filter: { country_capital: true }
4482 populated-places-natural-earth-z7:
4483 filter: { $zoom: [7] }
4485 filter: { min_zoom: [2,3] }
4489 visible: *icon_visible_populated_places
4490 sprite: townspot-l-rev
4493 visible: *text_visible_populated_places
4497 stroke: { color: *text_stroke, width: 4 }
4499 filter: { country_capital: true }
4509 filter: { min_zoom: [4,5,6] }
4513 visible: *icon_visible_populated_places
4514 sprite: townspot-m-rev
4517 visible: *text_visible_populated_places
4521 stroke: { color: *text_stroke, width: 4 }
4523 filter: { country_capital: true }
4533 filter: { min_zoom: [6,7] }
4537 visible: *icon_visible_populated_places
4538 sprite: townspot-s-rev
4541 visible: *text_visible_populated_places
4545 stroke: { color: *text_stroke, width: 4 }
4547 filter: { country_capital: true }
4556 populated-places-osm-z8:
4559 - source: [openstreetmap, openstreetmap.org]
4562 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
4568 - { population: { min: 1000000 } }
4572 visible: *icon_visible_populated_places
4573 sprite: townspot-m-rev
4577 visible: *text_visible_populated_places
4581 stroke: { color: *text_stroke, width: 4 }
4583 filter: { country_capital: true }
4594 - { population: { min: 150000, max: 999999 } }
4598 visible: *icon_visible_populated_places
4599 sprite: townspot-m-rev
4603 visible: *text_visible_populated_places
4607 stroke: { color: *text_stroke, width: 4 }
4609 filter: { country_capital: true }
4621 - { population: { min: 85000, max: 149999 } }
4625 visible: *icon_visible_populated_places
4626 sprite: townspot-m-rev
4630 visible: *text_visible_populated_places
4634 stroke: { color: *text_stroke, width: 4 }
4636 filter: { country_capital: true }
4648 - { population: { min: 50000, max: 84999 } }
4652 visible: *icon_visible_populated_places
4653 sprite: townspot-s-rev
4657 visible: *text_visible_populated_places
4661 stroke: { color: *text_stroke, width: 4 }
4663 filter: { country_capital: true }
4674 - { population: { max: 50000 } }
4676 - { country_capital: true }
4677 - { region_capital: true }
4681 visible: *icon_visible_populated_places
4682 sprite: townspot-s-rev
4686 visible: *text_visible_populated_places
4690 stroke: { color: *text_stroke, width: 4 }
4692 filter: { country_capital: true }
4701 populated-places-natural-earth-z8-backfill:
4702 filter: { $zoom: [8], population: { max: 50000 } }
4703 draw: { icons: { text: { font: { fill: *text_fill } } } }
4705 filter: { min_zoom: [2,3] }
4709 visible: *icon_visible_populated_places
4710 sprite: townspot-l-rev
4714 visible: *text_visible_populated_places
4717 stroke: { color: *text_stroke, width: 4 }
4719 filter: { country_capital: true }
4729 filter: { min_zoom: [4,5,6] }
4733 visible: *icon_visible_populated_places
4734 sprite: townspot-m-rev
4737 visible: *text_visible_populated_places
4740 stroke: { color: *text_stroke, width: 4 }
4742 filter: { country_capital: true }
4748 filter: { min_zoom: [6,7] }
4752 visible: *icon_visible_populated_places
4753 sprite: townspot-s-rev
4757 visible: *text_visible_populated_places
4760 stroke: { color: *text_stroke, width: 4 }
4762 filter: { country_capital: true }
4770 populated-places-osm-z9:
4773 - source: [openstreetmap, openstreetmap.org]
4776 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
4782 - { population: { min: 1000000 } }
4786 visible: *text_visible_populated_places
4791 stroke: { color: *text_stroke, width: 4 }
4796 - { population: { min: 350000, max: 999999 } }
4800 visible: *text_visible_populated_places
4805 stroke: { color: *text_stroke, width: 4 }
4810 - { population: { min: 150000, max: 350000 } }
4814 visible: *icon_visible_populated_places
4815 sprite: townspot-m-rev
4818 visible: *text_visible_populated_places
4822 stroke: { color: *text_stroke, width: 4 }
4824 filter: { country_capital: true }
4835 - { population: { min: 85000, max: 149999 } }
4839 visible: *icon_visible_populated_places
4840 sprite: townspot-m-rev
4843 visible: *text_visible_populated_places
4847 stroke: { color: *text_stroke, width: 4 }
4849 filter: { country_capital: true }
4861 - { population: { min: 50000, max: 84999 } }
4865 visible: *icon_visible_populated_places
4866 sprite: townspot-s-rev
4869 visible: *text_visible_populated_places
4873 stroke: { color: *text_stroke, width: 4 }
4875 filter: { country_capital: true }
4885 - { population: { max: 50000 } }
4887 - { country_capital: true }
4888 - { region_capital: true }
4892 visible: *icon_visible_populated_places
4893 sprite: townspot-s-rev
4896 visible: *text_visible_populated_places
4900 stroke: { color: *text_stroke, width: 4 }
4902 filter: { country_capital: true }
4910 populated-places-osm-z9-no-population:
4913 - source: [openstreetmap, openstreetmap.org]
4916 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
4918 - kind_detail: [city,town]
4922 visible: *icon_visible_populated_places
4923 sprite: townspot-s-rev
4927 visible: *text_visible_populated_places
4931 stroke: { color: *text_stroke, width: 4 }
4933 populated-places-natural-earth-z9-backfill:
4934 filter: { $zoom: [9], population: { max: 50000 } }
4935 draw: { icons: { text: { font: { fill: *text_fill } } } }
4937 filter: { min_zoom: [2,3] }
4941 visible: *icon_visible_populated_places
4942 sprite: townspot-l-rev
4945 visible: *text_visible_populated_places
4948 stroke: { color: *text_stroke, width: 4 }
4950 filter: { country_capital: true }
4959 filter: { min_zoom: [4,5,6] }
4963 visible: *icon_visible_populated_places
4964 sprite: townspot-m-rev
4967 visible: *text_visible_populated_places
4970 stroke: { color: *text_stroke, width: 4 }
4972 filter: { country_capital: true }
4981 filter: { min_zoom: [6,7,9] }
4985 visible: *icon_visible_populated_places
4986 sprite: townspot-m-rev
4989 visible: *text_visible_populated_places
4992 stroke: { color: *text_stroke, width: 4 }
4994 filter: { country_capital: true }
5002 populated-places-osm-z10:
5005 - source: [openstreetmap, openstreetmap.org]
5008 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5014 - { population: { min: 1000000 } }
5018 visible: *text_visible_populated_places
5022 stroke: { color: *text_stroke, width: 4 }
5027 - { population: { min: 350000, max: 1000000 } }
5031 visible: *text_visible_populated_places
5035 stroke: { color: *text_stroke, width: 4 }
5040 - { population: { min: 150000, max: 350000 } }
5044 visible: *icon_visible_populated_places
5045 sprite: townspot-m-rev
5048 visible: *text_visible_populated_places
5052 stroke: { color: *text_stroke, width: 4 }
5057 - { population: { min: 50000, max: 149999 } }
5061 visible: *icon_visible_populated_places
5062 sprite: townspot-m-rev
5065 visible: *text_visible_populated_places
5069 stroke: { color: *text_stroke, width: 4 }
5074 - { population: { min: 20000, max: 49999 } }
5078 visible: *icon_visible_populated_places
5079 sprite: townspot-s-rev
5082 visible: *text_visible_populated_places
5086 stroke: { color: *text_stroke, width: 4 }
5088 populated-places-osm-z10-no-population:
5091 - source: [openstreetmap, openstreetmap.org]
5094 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5096 - kind_detail: [city,town]
5100 visible: *icon_visible_populated_places
5101 sprite: townspot-s-rev
5105 visible: *text_visible_populated_places
5109 stroke: { color: *text_stroke, width: 4 }
5111 populated-places-natural-earth-z10-backfill:
5112 filter: { $zoom: [10], population: { max: 20000 } }
5113 draw: { icons: { text: { font: { fill: *text_fill } } } }
5115 filter: { min_zoom: [2,3] }
5119 visible: *text_visible_populated_places
5122 stroke: { color: *text_stroke, width: 4 }
5125 filter: { min_zoom: [4,5,6] }
5129 visible: *icon_visible_populated_places
5130 sprite: townspot-m-rev
5133 visible: *text_visible_populated_places
5136 stroke: { color: *text_stroke, width: 4 }
5138 filter: { country_capital: true }
5147 filter: { min_zoom: [6,7,9,10] }
5151 visible: *icon_visible_populated_places
5152 sprite: townspot-s-rev
5155 visible: *text_visible_populated_places
5158 stroke: { color: *text_stroke, width: 4 }
5160 filter: { country_capital: true }
5169 populated-places-osm-z11:
5172 - source: [openstreetmap, openstreetmap.org]
5175 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5177 - kind_detail: [city,town]
5185 - { population: { min: 1000000 } }
5188 visible: *text_visible_populated_places
5193 stroke: { color: *text_stroke, width: 4 }
5198 - { population: { min: 50000, max: 999999 } }
5201 visible: *text_visible_populated_places
5206 stroke: { color: *text_stroke, width: 4 }
5211 - { population: { min: 5000, max: 49999 } }
5214 visible: *text_visible_populated_places
5219 stroke: { color: *text_stroke, width: 4 }
5221 populated-places-osm-z11-no-population:
5224 - source: [openstreetmap, openstreetmap.org]
5227 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5229 - kind_detail: [city,town]
5233 visible: *text_visible_populated_places
5238 stroke: { color: *text_stroke, width: 4 }
5240 populated-places-natural-earth-z11-backfill:
5241 filter: { name: true, source: naturalearthdata.com, $zoom: [11], population: { max: 5000 } }
5248 filter: { min_zoom: [2,3] }
5251 visible: *text_visible_populated_places
5255 stroke: { color: *text_stroke, width: 4 }
5257 filter: { country_capital: true }
5263 stroke: { color: *text_stroke, width: 4 }
5266 filter: { min_zoom: [4,5,6] }
5269 visible: *text_visible_populated_places
5273 stroke: { color: *text_stroke, width: 4 }
5275 filter: { country_capital: true }
5281 stroke: { color: *text_stroke, width: 4 }
5283 filter: { region_capital: true }
5289 stroke: { color: *text_stroke, width: 4 }
5292 filter: { min_zoom: [6,7,9,10] }
5295 visible: *text_visible_populated_places
5299 stroke: { color: *text_stroke, width: 4 }
5301 filter: { country_capital: true }
5307 stroke: { color: *text_stroke, width: 4 }
5309 populated-places-osm-z12:
5312 - source: [openstreetmap, openstreetmap.org]
5315 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5317 - kind_detail: [city,town]
5325 - { population: { min: 1000000 } }
5329 visible: *text_visible_populated_places
5334 stroke: { color: *text_stroke, width: 4 }
5339 - { population: { min: 50000, max: 999999 } }
5342 visible: *text_visible_populated_places
5347 stroke: { color: *text_stroke, width: 4 }
5352 - { population: { min: 5000, max: 49999 } }
5355 visible: *text_visible_populated_places
5360 stroke: { color: *text_stroke, width: 4 }
5365 - { population: { max: 5000 } }
5368 visible: *text_visible_populated_places
5373 stroke: { color: *text_stroke, width: 4 }
5375 populated-places-osm-z12-no-population:
5378 - source: [openstreetmap, openstreetmap.org]
5381 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5383 - kind_detail: [city,town]
5387 visible: *text_visible_populated_places
5392 stroke: { color: *text_stroke, width: 4 }
5394 populated-places-natural-earth-z12-backfill:
5395 filter: { name: true, source: naturalearthdata.com, $zoom: [12], population: { max: 5000 } }
5404 filter: { min_zoom: [2,3] }
5407 visible: *text_visible_populated_places
5411 stroke: { color: *text_stroke, width: 4 }
5413 filter: { country_capital: true }
5419 stroke: { color: *text_stroke, width: 4 }
5422 filter: { min_zoom: [4,5,6] }
5425 visible: *text_visible_populated_places
5429 stroke: { color: *text_stroke, width: 4 }
5431 filter: { country_capital: true }
5437 stroke: { color: *text_stroke, width: 4 }
5440 filter: { min_zoom: [6,7,9,10] }
5443 visible: *text_visible_populated_places
5447 stroke: { color: *text_stroke, width: 4 }
5449 filter: { country_capital: true }
5455 stroke: { color: *text_stroke, width: 4 }
5457 populated-places-osm-z13-z14:
5460 - source: [openstreetmap, openstreetmap.org]
5463 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5465 - kind_detail: [city,town]
5469 visible: *text_visible_populated_places
5484 - { population: { min: 200000 } }
5492 - { population: { min: 50000, max: 199999 } }
5495 visible: *text_visible_populated_places
5499 stroke: { color: *text_stroke, width: 4 }
5504 - { population: { min: 5000, max: 49999 } }
5507 visible: *text_visible_populated_places
5511 stroke: { color: *text_stroke, width: 4 }
5519 - population: { max: 5000 }
5524 stroke: { color: *text_stroke, width: 4 }
5526 populated-places-osm-z13-z14-no-population:
5529 - source: [openstreetmap, openstreetmap.org]
5532 - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5534 - kind_detail: [city,town]
5538 visible: *text_visible_populated_places
5542 stroke: { color: *text_stroke, width: 4 }
5544 populated-places-natural-earth-z13-z14-backfill:
5545 filter: { name: true, source: naturalearthdata.com, $zoom: [13,14], population: { max: 5000 } }
5554 filter: { min_zoom: [2,3] }
5562 filter: { min_zoom: [4,5,6] }
5566 visible: *text_visible_populated_places
5569 stroke: { color: *text_stroke, width: 4 }
5572 filter: { min_zoom: [6,7,9,10] }
5575 visible: *text_visible_populated_places
5579 stroke: { color: *text_stroke, width: 4 }
5584 - kind: [macrohood, neighbourhood]
5585 - is_landuse_aoi: false
5591 - max_zoom: { min: 12 }
5592 #- kind_tile_rank: { max: 6 }
5597 visible: *text_visible_neighbourhoods_e
5601 fill: [0.085,0.658,0.710]
5602 transform: uppercase
5603 stroke: { color: [0.894,0.906,0.914], width: 4 }
5609 - max_zoom: { min: 13 }
5610 #- kind_tile_rank: { max: 8 }
5615 visible: *text_visible_neighbourhoods_e
5619 fill: [0.085,0.658,0.710]
5620 transform: uppercase
5621 stroke: { color: [0.894,0.906,0.914], width: 4 }
5626 - min_zoom: [11,12,13]
5627 - max_zoom: { min: 14 }
5628 - kind_tile_rank: { max: 8 }
5633 visible: *text_visible_neighbourhoods_e
5637 fill: [0.085,0.658,0.710]
5638 transform: uppercase
5639 stroke: { color: [0.904,0.916,0.924], width: 4 }
5644 - min_zoom: [11,12,13,14]
5645 - max_zoom: { min: 15 }
5646 - kind_tile_rank: { max: 8 }
5651 visible: *text_visible_neighbourhoods
5655 fill: [0.085,0.658,0.710]
5656 transform: uppercase
5657 stroke: { color: [0.914,0.926,0.934], width: 5 }
5662 - min_zoom: [11,12,13,14,15]
5663 - max_zoom: { min: 16 }
5664 - kind_tile_rank: { max: 8 }
5669 visible: *text_visible_neighbourhoods
5673 fill: [0.085,0.658,0.710]
5674 transform: uppercase
5675 stroke: { color: [0.949,0.953,0.953], width: 6 }
5689 - min_zoom: [11,12,13,14,15,16]
5690 - max_zoom: { min: 17 }
5691 - kind_tile_rank: { max: 8 }
5695 visible: *text_visible_neighbourhoods
5699 fill: [0.082,0.780,1.000]
5700 transform: uppercase
5701 stroke: { color: [0.949,0.953,0.953], width: 6 }
5704 data: { source: mapzen, layer: [pois] }
5705 filter: { kind: motorway_junction, $zoom: { min: 15 } }
5710 visible: *text_visible_exits
5715 fill: *text_fill_exits
5716 size: [[12,9px],[15,12px],[17,14px]]
5717 stroke: { color: *text_stroke, width: [[12,2px],[14,3px],[15,3px]] }
5719 filter: { $zoom: { min: 16 } }
5725 data: { source: mapzen, layer: [pois] }
5726 filter: { kind: aeroway_gate, $zoom: { min: 16 } }
5731 visible: *text_visible_airport_gate
5735 fill: *text_fill_exits
5736 size: [[16,9px],[17,10px],[20,12px]]
5737 #stroke: { color: *highway1, width: [[12,2px],[14,3px],[15,3px]] }
5739 filter: { $zoom: { min: 19 } }
5745 pois_and_landuse_labels:
5746 data: { source: mapzen, layer: [pois,landuse] }
5747 visible: *label_visible_poi_landuse
5750 - not: { kind: [building,address,apron,residential] }
5752 # White list a few kinds to "always" show per the tile zoom inclusion, else test feature's min_zoom
5753 - function() { if( feature.kind == 'attraction' || feature.kind == 'landmark' || feature.kind == 'playground' || feature.kind == 'toilets' ) { return true } else { return feature.min_zoom <= $zoom } }
5757 - $zoom: { min: 12 }
5761 - $zoom: { min: 11 }
5767 size: [[13, 18px], [16, 18px], [18, 22px]]
5773 visible: false # labels are enabled by each layer below
5774 move_into_tile: false # preserves text alignment w/icons in JS
5778 family: *text_font_family
5780 fill: [0.10,0.10,0.10]
5782 stroke: { color: *text_stroke, width: 3 }
5784 visible: false # labels are enabled by each layer below, and these are only for special cases like enclosures
5785 move_into_tile: false # preserves text alignment w/icons in JS
5788 family: *text_font_family
5790 fill: [0.10,0.10,0.10]
5792 stroke: { color: *text_stroke, width: 3 }
5794 filter: { $zoom: [14] }
5795 draw: { icons: { text: { font: { size: 10px } } } }
5797 filter: { $zoom: [15,16,17] }
5798 draw: { icons: { text: { font: { size: 10px, stroke: { width: 2 } } } } }
5800 filter: { $zoom: [18,19] }
5801 draw: { icons: { text: { font: { size: 11px, weight: 600, stroke: { width: 3 } } } } }
5803 filter: { $zoom: { min: 20 } }
5804 draw: { icons: { text: { font: { size: 11px, weight: 600, stroke: { width: 3 } } } } }
5806 # since the blocks below are filtering by area and by name, we need a block here
5807 # that adjusts the color by kind first
5810 filter: { kind: [park, national_park, "park or protected land", conservation, protected_area, nature_reserve, forest, grass, beach, battlefield] }
5815 fill: [0.032,0.522,0.530]
5818 color: *text_stroke_park
5820 filter: { name: false }
5822 filter: { kind: [grass, pitch], $geometry: point, area: true, $zoom: { min: 16 } }
5825 sprite: function() { return feature.kind_detail; }
5826 visible: *icon_visible_poi_landuse_e
5829 filter: { kind_detail: baseball }
5830 draw: { icons: { sprite: baseball-field } }
5832 filter: { kind_detail: basketball }
5833 draw: { icons: { sprite: basketball-court } }
5835 filter: { kind_detail: football }
5836 draw: { icons: { sprite: football-stadium } }
5838 filter: { kind_detail: hockey-field }
5839 draw: { icons: { sprite: hockey-field } }
5841 filter: { kind_detail: soccer }
5842 draw: { icons: { sprite: soccer-field } }
5844 filter: { kind_detail: tennis }
5845 draw: { icons: { sprite: tennis } }
5847 filter: { kind: tree, $zoom: { min: 18 } }
5850 # TODO: put tree icons behind the buildings
5851 # See SF State University #20/37.72314/-122.47772
5853 color: [0.145,0.745,0.643]
5854 visible: *icon_visible_poi_landuse_e
5856 filter: { $zoom: [18] }
5859 # to circle white SMALL
5860 color: [0.459,0.765,0.722]
5863 filter: { $zoom: [19] }
5866 # to circle white SMALL
5869 filter: { kind: gate, $zoom: { min: 19 } }
5872 # to circle black generic
5874 visible: *icon_visible_poi_landuse_e
5876 text_source: function() { return 'gate'; }
5878 filter: { kind: toilets, $zoom: { min: 16 } }
5879 draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
5881 filter: { kind: toilets, $zoom: { min: 16 } }
5882 draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
5884 filter: { kind: playground, $zoom: { min: 18 } }
5885 draw: { icons: { sprite: playground, visible: *icon_visible_poi_landuse_e } }
5887 filter: { kind: [picnic_site, picnic_table], $zoom: { min: 15 } }
5888 draw: { icons: { sprite: picnic-spot, visible: *icon_visible_poi_landuse_e } }
5890 filter: { kind: information, $zoom: { min: 18 } }
5891 draw: { icons: { sprite: information, visible: *icon_visible_poi_landuse_e } }
5893 filter: { kind: drinking_water, $zoom: { min: 18 } }
5894 draw: { icons: { sprite: drinking-water, visible: *icon_visible_poi_landuse_e } }
5896 filter: { kind: traffic_signals, $zoom: { min: 18 } }
5897 draw: { icons: { sprite: traffic-signal, visible: *icon_visible_poi_landuse_e } }
5899 filter: { kind: [bicycle_parking], $zoom: { min: 19 } }
5900 draw: { icons: { sprite: bicycle-parking, visible: *icon_visible_poi_landuse_e } }
5902 filter: { kind: parking, $zoom: { min: 17 } }
5906 visible: *icon_visible_poi_landuse_e
5908 filter: { kind: [power_tower], $zoom: { max: 16 } }
5909 draw: { icons: { visible: false } }
5911 filter: { kind: [power_pole], $zoom: { max: 17 } }
5912 draw: { icons: { visible: false } }
5916 - kind: [playground, allotments, attraction, landmark]
5918 - { $zoom: [15], area: { min: 600 } }
5919 - { $zoom: [16], area: { min: 300 } }
5920 - { $zoom: { min: 17 } }
5923 sprite: function() { return feature.kind; }
5925 filter: { kind: [pylon], $zoom: { max: 17 } }
5926 draw: { icons: { visible: false }}
5928 filter: { kind: [bbq], $zoom: { min: 17 } }
5932 visible: *icon_visible_poi_landuse_e
5934 filter: { kind: [ranger_station], $zoom: { min: 15 } }
5935 draw: { icons: { sprite: ranger-station, visible: *icon_visible_poi_landuse_e } }
5937 filter: { kind: [trailhead], $zoom: { min: 15 } }
5938 draw: { icons: { sprite: trailhead, visible: *icon_visible_poi_landuse_e } }
5940 filter: { kind: [firepit], $zoom: { min: 15 } }
5941 draw: { icons: { sprite: firepit, visible: *icon_visible_poi_landuse_e } }
5943 filter: { kind: [swimming_area], $zoom: { min: 15 } }
5944 draw: { icons: { sprite: swimming-area, visible: *icon_visible_poi_landuse_e } }
5946 filter: { kind: [fishing_area], $zoom: { min: 15 } }
5947 draw: { icons: { sprite: fishing-area, visible: *icon_visible_poi_landuse_e } }
5949 filter: { kind: [slipway], $zoom: { min: 15 } }
5950 draw: { icons: { sprite: slipway, visible: *icon_visible_poi_landuse_e } }
5952 filter: { kind: [hot_spring], $zoom: { min: 15 } }
5953 draw: { icons: { sprite: hot-spring, visible: *icon_visible_poi_landuse_e } }
5955 filter: { kind: [spring], $zoom: { min: 15 } }
5956 draw: { icons: { sprite: spring, visible: *icon_visible_poi_landuse_e } }
5958 filter: { kind: [shower], $zoom: { min: 15 } }
5959 draw: { icons: { sprite: shower, visible: *icon_visible_poi_landuse_e } }
5961 filter: { kind: [geyser], $zoom: { min: 15 } }
5962 draw: { icons: { sprite: geyser, visible: *icon_visible_poi_landuse_e } }
5964 filter: { kind: [observatory], $zoom: { min: 14 } }
5965 draw: { icons: { sprite: observatory, visible: *icon_visible_poi_landuse_e } }
5967 filter: { kind: [boat_rental], $zoom: { min: 15 } }
5968 draw: { icons: { sprite: boat-rental, visible: *icon_visible_poi_landuse_e } }
5970 filter: { kind: [water_tower], $zoom: { min: 15 } }
5971 draw: { icons: { sprite: water-tower, visible: *icon_visible_poi_landuse_e } }
5973 filter: { kind: [battlefield] }
5974 draw: { icons: { sprite: battlefield, visible: *icon_visible_poi_landuse_e } }
5975 walking-or-bicycle_junction:
5976 filter: { kind: [bicycle_junction, walking_junction] }
5980 visible: *icon_visible_poi_landuse_e
5984 outdoor-needing-icons:
5985 filter: { kind: [bicycle_repair_station, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, silo, putin, egress, hazard, put_in_egress, rapid, beacon, cross, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, horse, fire_lookout, fee_station, rest_area] }
5991 filter: { kind: [recreation_track, dam] }
5996 filter: { $zoom: { max: 15 } }
6001 filter: { name: true }
6002 # match 1:1 correlations between data and sprite name
6009 # sprite_source: kind
6010 sprite: function() { return feature.kind; }
6011 visible: *icon_visible_poi_landuse
6012 # add generic icon at high zoom, if direct match fails
6014 filter: { $zoom: { min: 18 }, area: false }
6018 sprite_default: generic
6019 visible: *icon_visible_poi_landuse
6021 # add generic icon at high zoom
6022 default-label-names:
6023 filter: { $zoom: { min: 13 }, area: false }
6027 visible: *text_visible_poi_landuse
6028 landuse-labels-green-areas-national-park:
6033 - kind: [national_park]
6035 # show labels for smaller landuse areas at higher zooms
6036 - { $zoom: [4], area: { min: 3000000000 } }
6037 - { $zoom: [5], area: { min: 3000000000 } }
6038 - { $zoom: [6], area: { min: 500000000 } }
6039 - { $zoom: [7,8,9], area: { min: 100000000 } }
6040 - { $zoom: [10], area: { min: 50000000 } }
6041 - { $zoom: [11], area: { min: 25000000 } }
6042 - { $zoom: [12], area: { min: 5000000 } }
6043 - { $zoom: [13], area: { min: 200000 } }
6044 - { $zoom: [14], area: { min: 50000 } }
6045 - { $zoom: { min: 15 } }
6047 # yosemite national park, joshua tree national park
6048 filter: function() { return feature.name && ((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
6049 visible: *label_visible_landuse_green
6052 visible: *icon_visible_landuse_green
6056 visible: *text_visible_landuse_green
6059 stroke: { color: *text_stroke_park, width: 4 }
6060 natl-park-labels-z4-z5:
6061 filter: { $zoom: [4,5] }
6065 text: { font: { size: 9px, stroke: { width: 2px } } }
6066 natl-park-labels-z6:
6067 filter: { $zoom: [6] }
6070 text: { font: { size: 9px, stroke: { width: 2px } } }
6071 natl-park-labels-z7:
6072 filter: { $zoom: [7] }
6075 text: { font: { size: 10px, stroke: { width: 2px } } }
6076 natl-park-labels-z8:
6077 filter: { $zoom: [8,9] }
6080 text: { font: { size: 11px, stroke: { width: 2px } } }
6081 natl-park-labels-z10:
6082 filter: { $zoom: {min: 10, max: 14 } }
6085 text: { font: { size: 12px } }
6087 filter: { $zoom: [14] }
6088 draw: { icons: { text: { font: { size: 11px } } } }
6090 filter: { $zoom: [15,16,17] }
6091 draw: { icons: { text: { font: { size: 11px } } } }
6093 filter: { $zoom: [18,19] }
6094 draw: { icons: { text: { font: { size: 11px } } } }
6096 filter: { $zoom: { min: 20 } }
6097 draw: { icons: { text: { font: { size: 11px } } } }
6098 landuse-labels-green-areas-not-national-park:
6103 - kind: [park, national_park, "park or protected land", conservation, protected_area, nature_reserve, forest, grass]
6105 # show labels for smaller landuse areas at higher zooms
6106 - { $zoom: [5], area: { min: 10000000000 } }
6107 - { $zoom: [6,7], area: { min: 5000000000 } }
6108 - { $zoom: [8], area: { min: 1000000000 } }
6109 - { $zoom: [9], area: { min: 100000000 } }
6110 - { $zoom: [10], area: { min: 50000000 } }
6111 - { $zoom: [11], area: { min: 10000000 } }
6112 - { $zoom: [12], area: { min: 5000000 } }
6113 - { $zoom: [13], area: { min: 200000 } }
6114 - { $zoom: [14], area: { min: 50000 } }
6115 - { $zoom: [15], area: { min: 10000 } }
6116 - { $zoom: [16], area: { min: 1000 } }
6117 - { $zoom: { min: 17 } }
6119 filter: function() { return feature.name && !((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
6122 visible: *icon_visible_landuse_green
6126 visible: *text_visible_landuse_green
6128 #fill: [0.032,0.522,0.530]
6129 # fill: [0.093,0.473,0.408]
6132 stroke: { color: *text_stroke_park, width: 3 }
6134 # mojave national preserve
6135 filter: { $zoom: [6] }
6139 text: { font: { size: 10px, stroke: { width: 2px } } }
6141 filter: { $zoom: [7] }
6145 text: { font: { size: 10px, stroke: { width: 2px } } }
6147 filter: { $zoom: { min: 17 } }
6153 stroke: { color: *text_stroke, width: 4 }
6156 filter: function() { return feature.name && (feature.name.indexOf("Wilderness") > -1 || feature.name.indexOf("BLM") > -1) }
6161 filter: { $zoom: { max: 8 } }
6165 text: { visible: false }
6166 early-not-national-park:
6167 filter: { not: { kind: [national_park] }, $zoom: { max: 6 } }
6171 text: { visible: false }
6173 filter: function() { return feature.name && !((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
6178 filter: { $zoom: { max: 8 } }
6182 text: { visible: false }
6184 filter: function() { return ( (feature.name && feature.name.indexOf("Forest") > -1) || (feature.protect_class >=6 && feature.name.indexOf("Park") < 0) ) }
6189 filter: { $zoom: { max: 8 } }
6193 text: { visible: false }
6195 filter: { kind: [grass], $zoom: { max: 16 } }
6199 text: { visible: false }
6201 filter: { kind: [grass], $zoom: { min: 16 } }
6205 text: { font: { style: italic } }
6211 - kind: [battlefield]
6213 # show labels for smaller landuse areas at higher zooms
6214 - { $zoom: [4], area: { min: 3000000000 } }
6215 - { $zoom: [5], area: { min: 3000000000 } }
6216 - { $zoom: [6], area: { min: 500000000 } }
6217 - { $zoom: [7,8,9], area: { min: 10000000 } }
6218 - { $zoom: [10], area: { min: 5000000 } }
6219 - { $zoom: [11], area: { min: 5000000 } }
6220 - { $zoom: [12], area: { min: 5000000 } }
6221 - { $zoom: [13], area: { min: 200000 } }
6222 - { $zoom: [14], area: { min: 50000 } }
6223 - { $zoom: { min: 15 } }
6226 visible: *icon_visible_landuse_green
6230 visible: *text_visible_landuse_green
6232 #fill: [0.058,0.605,0.615]
6233 # fill: [0.093,0.473,0.408]
6235 stroke: { color: *text_stroke_park, width: 4 }
6243 # show labels for smaller landuse areas at higher zooms
6244 - { $zoom: [10], area: { min: 300000 } }
6245 - { $zoom: [11], area: { min: 100000 } }
6246 - { $zoom: [12], area: { min: 50000 } }
6247 - { $zoom: [13], area: { min: 50000 } }
6248 - { $zoom: [14], area: { min: 20000 } }
6249 - { $zoom: [15], area: { min: 10000 } }
6250 - { $zoom: [16], area: { min: 1000 } }
6251 - { $zoom: { min: 17 } }
6254 visible: *icon_visible_landuse_green
6258 visible: *text_visible_landuse_green
6263 - kind: [airport, aerodrome]
6267 # show labels for smaller landuse areas at higher zooms
6268 - { $zoom: [9], area: { min: 10000000 } }
6269 - { $zoom: [10], area: { min: 10000000 } }
6270 - { $zoom: [11], area: { min: 5000000 } }
6271 - { $zoom: [12], area: { min: 5000000 } }
6272 - { $zoom: [13], area: { min: 500000 } }
6273 - { $zoom: [14], area: { min: 20000 } }
6274 # show labels for smaller landuse areas at higher zooms
6275 - { $zoom: [15], area: { min: 10000 } }
6276 - { $zoom: [16], area: { min: 5000 } }
6277 - { $zoom: [17], area: { min: 2000 } }
6278 - { $zoom: { min: 18 } }
6282 visible: *icon_visible_landuse_green
6285 visible: *text_visible_landuse_green
6286 text_source: function() { if(feature.iata) { return feature.name + ' (' + feature.iata + ')'; } else { return feature.name; } }
6288 #fill: [0.10,0.10,0.10]
6290 stroke: { color: *text_stroke, width: 4 }
6292 filter: { $zoom: [9,10,11] }
6294 draw: { icons: { text: { text_source: iata, font: { size: 11px } } } }
6296 filter: { $zoom: { min: 12, max: 14 } }
6297 draw: { icons: { text: { font: { size: 11px } } } }
6301 - kind: [university, college]
6304 - not: { $layer: buildings }
6306 # show labels for smaller landuse areas at higher zooms
6307 - { $zoom: [9], area: { min: 10000000 } }
6308 - { $zoom: [10], area: { min: 5000000 } }
6309 - { $zoom: [11], area: { min: 2000000 } }
6310 - { $zoom: [12], area: { min: 500000 } }
6311 - { $zoom: [13], area: { min: 100000 } }
6312 - { $zoom: [14], area: { min: 100000 } }
6313 # show labels for smaller landuse areas at higher zooms
6314 - { $zoom: [15], area: { min: 40000 } }
6315 - { $zoom: [16], area: { min: 5000 } }
6316 - { $zoom: [17], area: { min: 2000 } }
6317 - { $zoom: { min: 18 } }
6318 visible: *label_visible_landuse_green
6321 sprite: college-university
6322 visible: *icon_visible_landuse_green
6325 visible: *text_visible_landuse_green
6327 #fill: [0.10,0.10,0.10]
6329 stroke: { color: *text_stroke, width: 4 }
6331 # filter: { $zoom: { max: 12 } }
6332 # draw: { icons: { text: { visible: false } } }
6334 filter: { $zoom: { max: 14 } }
6335 draw: { icons: { text: { font: { size: 10px } } } }
6339 - kind: [school, kindergarten]
6342 - not: { $layer: buildings }
6344 # show labels for smaller landuse areas at higher zooms
6345 #- { $zoom: [13], area: { min: 100000 } }
6346 #- { $zoom: [14], area: { min: 50000 } }
6347 # show labels for smaller landuse areas at higher zooms
6348 #- { $zoom: [15], area: { min: 10000 } }
6349 - { $zoom: [16], area: { min: 5000 } }
6350 - { $zoom: [17], area: { min: 2000 } }
6351 - { $zoom: { min: 18 } }
6355 visible: *icon_visible_landuse_green
6358 visible: *text_visible_landuse_green
6360 #fill: [0.10,0.10,0.10]
6362 stroke: { color: *text_stroke, width: 4 }
6364 filter: { $zoom: { max: 14 } }
6365 draw: { icons: { text: { font: { size: 11px } } } }
6369 - kind: winter_sports
6373 # show labels for smaller landuse areas at higher zooms
6374 - { $zoom: [10], area: { min: 5000000 } }
6375 - { $zoom: [11], area: { min: 2000000 } }
6376 - { $zoom: [12], area: { min: 500000 } }
6377 - { $zoom: [13], area: { min: 100000 } }
6378 - { $zoom: [14], area: { min: 100000 } }
6379 # show labels for smaller landuse areas at higher zooms
6380 - { $zoom: [15], area: { min: 40000 } }
6381 - { $zoom: [16], area: { min: 5000 } }
6382 - { $zoom: [17], area: { min: 2000 } }
6383 - { $zoom: { min: 18 } }
6387 visible: *icon_visible_landuse_green
6390 visible: *text_visible_landuse_green
6392 #fill: [0.10,0.10,0.10]
6394 stroke: { color: *text_stroke, width: 4 }
6396 # filter: { $zoom: { max: 14 } }
6397 # draw: { icons: { text: { font: { size: 10px } } } }
6401 - kind: [zoo, theme_park, resort, aquarium, winery, maze, stadium, enclosure, animal]
6405 # show labels for smaller landuse areas at higher zooms
6406 - { $zoom: { min: 11 }, area: { min: 400000 } }
6407 - { $zoom: { min: 12 }, area: { min: 200000 } }
6408 - { $zoom: { min: 13 }, area: { min: 50000 } }
6409 - { $zoom: { min: 14 }, area: { min: 20000 } }
6410 - { $zoom: { min: 15 }, area: { min: 2000 } }
6411 - { $zoom: { min: 16 } }
6414 sprite: function() { return feature.kind; }
6415 sprite_default: generic
6416 visible: *icon_visible_poi_landuse
6419 visible: *text_visible_poi_landuse
6421 #fill: [0.10,0.10,0.10]
6423 stroke: { color: *text_stroke, width: 4 }
6425 filter: { kind: [enclosure, animal] }
6429 sprite_default: dot-black
6436 # filter: { $zoom: { max: 14 } }
6437 # draw: { icons: { text: { font: { size: 10px } } } }
6438 playgrounds_allotments_attraction_landmark_supermarket:
6441 - kind: [playground, allotments, attraction, landmark, supermarket]
6445 - { $zoom: [15], area: { min: 600 } }
6446 - { $zoom: [16], area: { min: 300 } }
6447 - { $zoom: { min: 17 } }
6450 visible: *icon_visible_landuse_green
6453 visible: *text_visible_landuse_green
6456 stroke: { color: *text_stroke, width: 4 }
6458 filter: { kind: [attraction] }
6463 filter: { kind: [landmark] }
6474 # show labels for smaller landuse areas at higher zooms
6475 - { $zoom: [10], area: { min: 20000000 } }
6476 - { $zoom: [11], area: { min: 5000000 } }
6477 - { $zoom: [12], area: { min: 2000000 } }
6478 - { $zoom: [13], area: { min: 500000 } }
6479 # show labels for smaller landuse areas at higher zooms
6480 - { $zoom: { min: 14 } }
6493 landuse-labels-not-any-above:
6499 - not: { kind: [park, national_park, "park or protected land", battlefield, conservation, protected_area, nature_reserve, forest, grass, beach, airport, aerodrome, university, college, school, kindergarten, winter_sports, zoo, theme_park, resort, aquarium, winery, maze, stadium, playground, allotments, attraction, landmark, glacier] }
6501 # show labels for smaller landuse areas at higher zooms
6502 - { $zoom: [5,6,7], area: { min: 5000000000 } }
6503 - { $zoom: [8], area: { min: 1600000000 } }
6504 - { $zoom: [9], area: { min: 400000000 } }
6505 - { $zoom: [10], area: { min: 100000000 } }
6506 - { $zoom: [11], area: { min: 25000000 } }
6507 - { $zoom: [12], area: { min: 5000000 } }
6508 - { $zoom: [13], area: { min: 1000000 } }
6509 - { $zoom: [14], area: { min: 50000 } }
6510 # show labels for smaller landuse areas at higher zooms
6511 - { $zoom: [15], area: { min: 5000 } }
6512 - { $zoom: [16], area: { min: 2000 } }
6513 - { $zoom: { min: 17 } }
6516 sprite: function() { return feature.kind; }
6517 sprite_default: generic
6518 visible: *icon_visible_poi_landuse
6521 visible: *text_visible_poi_landuse
6525 stroke: { color: *text_stroke, width: 3 }
6527 filter: { $zoom: { min: 18 } }
6533 stroke: { color: *text_stroke, width: 4 }
6535 # filter: { kind: [commercial,residential,warehouse,public,dormitory], osm_relation: false }
6539 residential-relations-paris-wtf-early:
6540 filter: { kind: [residential], osm_relation: true, $zoom: { max: 13 } }
6544 text: { visible: false }
6545 residential-relations-paris-wtf:
6546 filter: { kind: [residential], osm_relation: true, $zoom: { min: 13 } }
6552 text_source: short_name
6554 filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland,pitch], $zoom: { max: 17 } }
6558 text: { visible: false }
6560 filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland,pitch], $zoom: { min: 17 } }
6564 text: { font: { style: italic } }
6566 filter: { kind: [burial_vault], $zoom: { max: 19 } }
6570 text: { visible: false }
6574 - kind: [garden, allotments]
6576 # limit show smaller landuse areas to higher zooms
6577 - { $zoom: [12], area: { max: 500000 } }
6578 - { $zoom: [13], area: { max: 100000 } }
6579 - { $zoom: [14], area: { max: 10000 } }
6580 - { $zoom: [15], area: { max: 5000 } }
6585 filter: { kind: [university, college], area: false, $zoom: { max: 16 } }
6589 text: { visible: false }
6593 - { kind: [insurance, office, company], $zoom: [15], area: { max: 10000 } }
6594 - { kind: [insurance, office, company], $zoom: [16], area: { max: 5000 } }
6598 text: { visible: false }
6600 filter: { kind: [bank], $zoom: { max: 17 } }
6604 text: { visible: false }
6605 garden-no-area-early2:
6606 filter: { kind: [garden, allotments], $zoom: { max: 16 }, area: false }
6610 garden-no-area-early:
6611 filter: { kind: [garden, allotments], $zoom: [16], area: false }
6616 text: { font: { size: 10px, style: italic } }
6617 garden-no-area-later:
6618 filter: { kind: [garden, allotments], $zoom: { min: 17 }, area: false }
6623 text: { font: { size: 11px, style: italic } }
6625 filter: { kind: [post_office], $zoom: { max: 14 } }
6629 text: { visible: false }
6631 filter: { kind: [pylon], name: true, $zoom: { max: 18 } }
6632 draw: { icons: { text: { visible: false } } }
6634 filter: { kind: [school, kindergarten], $zoom: { max: 16 } }
6638 text: { visible: false }
6640 filter: { kind: [atm], $zoom: { max: 18 } }
6644 text: { visible: false }
6645 bicycle-parking-early:
6646 filter: { kind: [bicycle_parking], $zoom: { max: 19 } }
6650 text: { visible: false }
6652 filter: { kind: [true], $zoom: { max: 18 } }
6656 text: { visible: false }
6658 filter: { kind: [peak, volcano] }
6661 visible: *icon_visible_landuse_green
6663 text: { visible: *text_visible_landuse_green }
6664 low-priority-early-z11:
6665 filter: { kind_tile_rank: { min: 3 }, $zoom: [11,12] }
6669 text: { visible: false }
6670 low-priority-early-z13:
6671 filter: { kind_tile_rank: { min: 4 }, $zoom: [13] }
6675 text: { visible: false }
6677 filter: { kind: [peak, volcano], $zoom: { min: 14 } }
6681 text_source: function() { if( feature.name && feature.elevation ) { return feature.name + "\n" + feature.elevation + "m"; } else { if( feature.name ) { return feature.name; } else { return feature.elevation; } } }
6683 filter: { kind: [waterfall], $zoom: { max: 14 } }
6686 visible: *icon_visible_landuse_green
6687 text: { visible: *text_visible_landuse_green }
6688 low-priority-early-z11:
6689 filter: { kind_tile_rank: { min: 3 }, $zoom: [11,12] }
6693 text: { visible: false }
6694 low-priority-early-z13:
6695 filter: { kind_tile_rank: { min: 4 }, $zoom: [13] }
6699 text: { visible: false }
6701 filter: { kind: [waterfall], $zoom: { min: 14 } }
6705 text_source: function() { if( feature.name && feature.height ) { return feature.name + "\n" + feature.height; } else { if( feature.name ) { return feature.name; } else { return feature.height; } } }
6706 drinking-water-early:
6707 filter: { kind: [drinking_water], $zoom: { max: 18 } }
6711 text: { visible: false }
6713 filter: { kind: [memorial], $zoom: { max: 13 } }
6717 text: { visible: false }
6718 animal-points-early:
6719 filter: { kind: [animal], area: false, $zoom: { max: 18 } }
6723 text: { visible: false }
6724 # animal-areas-early:
6725 # filter: { kind: [animal], area: { min: 500 }, $zoom: { max: 18 } }
6729 # text: { visible: false }
6730 parking-labels-early:
6746 visible: *text_visible_poi_landuse
6749 stroke: { color: *text_stroke, width: 4 }
6751 filter: { kind: [commercial, residential, wood], $zoom: { max: 17 } }
6758 filter: { kind: car_sharing }
6760 filter: { $zoom: { max: 17 } }
6765 filter: { $zoom: { max: 19 } }
6770 bicycle_rental_station-early:
6771 filter: { kind: bicycle_rental_station }
6773 filter: { $zoom: { max: 17 } }
6776 size: [[16, 14px], [17, 16px], [18, 20px]]
6778 filter: { $zoom: { max: 17 } }
6784 filter: { kind: [tower], label_placement: true }
6791 station-train-subway:
6792 filter: { kind: [station, train-station, train_station], $zoom: { min: 11 } }
6793 visible: *label_visible_station
6796 visible: *icon_visible_station
6797 sprite: train-station
6798 size: [[13, 12px], [14, 12px], [15, 16px], [17, 18px], [18, 20px]]
6801 visible: *text_visible_station
6805 stroke: { color: *text_stroke, width: 4 }
6807 filter: { kind_tile_rank: { min: 5 }, $zoom: { min: 0, max: 13 } }
6811 #size: [[12, 10px], [14, 10px], [15, 16px]]
6812 text: { visible: false }
6813 low-priority-early-z13:
6814 filter: { kind_tile_rank: { min: 5 }, $zoom: [13] }
6818 #size: [[12, 10px], [14, 10px], [15, 16px]]
6819 text: { visible: false }
6820 low-priority-early-z14:
6821 filter: { kind_tile_rank: { min: 7 }, $zoom: [14] }
6824 #size: [[14, 11px], [15, 16px], [17, 18px], [18, 20px]]
6826 text: { visible: false }
6828 filter: { $zoom: { min: 18 } }
6835 filter: { kind: tram_stop, $zoom: { max: 15 } }
6841 tram-stop-early-z15:
6842 filter: { kind: tram_stop, $zoom: [15] }
6848 filter: { kind: tram_stop, $zoom: { min: 15 } }
6851 size: [[16, 12px], [17, 18px]]
6853 filter: { $zoom: { min: 14 }, kind: glacier, area: false }
6868 bus-stop-bus-station-labels:
6870 kind: [bus_stop, bus_station]
6874 size: [[17, 8px], [19, 18px]]
6876 visible: *text_visible_poi_landuse
6879 stroke: { color: *text_stroke, width: 4 }
6895 size: [[17, 16px], [19, 18px]]
6900 kind: [accountant, administrative, advertising_agency, architect, association, atm, bakery, bed_and_breakfast, bicycle, bicycle_parking, bicycle_rental_station, books, bus_stop, butcher, car, car_repair, chalet, clothes, company, computer, consulting, convenience, doityourself, drinking_water, dry_cleaning, educational_institution, emergency_phone, employment_agency, estate_agent, fashion, financial, florist, foundation, gate, gift, government, greengrocer, guest_house, hairdresser, hostel, hotel, insurance, it, jewelry, lawyer, mast, memorial, mobile_phone, motel, newspaper, ngo, notary, optician, parking, pet, physician, playground, political_party, post_box, religion, research, subway_entrance, tax_advisor, telecommunication, telephone, theatre, therapist, toilets, traffic_signals, travel_agent, water_tower, true]
6906 text: { visible: false }
6909 kind: [bench, waste_basket]
6915 text: { visible: false }
6916 outdoor-needing-icons:
6917 filter: { kind: [bicycle_repair_station, cycle_barrier, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, putin, egress, hazard, put_in_egress, rapid, beacon, cross, mineshaft, adit, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, fishing, recreation_track, horse, fire_lookout, fee_station, rest_area] }
6925 filter: { kind: [outdoor, lighthouse, saddle, picnic_area, picnic_table, camp_site, ski, mine, zoo, museum, gas, gas_canister, slipway, mineshaft, adit, recreation_track, playground, allotments, attraction, landmark] }
6931 not-outdoor-not-landuse:
6932 filter: { area: false, not: { kind: [park, national_park, outdoor, bicycle_repair_station, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, bicycle_junction, walking_junction, dam, boat_storage, windmill, playground, allotments, attraction, landmark] } }
6939 filter: { $zoom: { max: 15 }, kind: [scrub, wetland, scree, meadow, grass, farmyard, farmland, wood, pier, breakwater, groyne, dike, cutline, residential, retail, commercial, industrial] }
6946 filter: { kind: [meadow], $zoom: [14] }
6953 suppress-the-icon-text-label-only:
6954 filter: { $zoom: { min: 15 }, kind: [scrub, wetland, scree, meadow, village_green, common, grass, farmyard, farmland, wood, enclosure, animal, pier, breakwater, groyne, dike, cutline, residential, retail, commercial, industrial] }
6965 filter: { kind: [erotic, adult_boutique] }
6966 draw: { icons: { sprite: adult-boutique } }
6968 filter: { kind: [allotments] }
6969 draw: { icons: { sprite: allotments } }
6971 filter: { kind: [airport, aerodrome] }
6972 draw: { icons: { sprite: airport } }
6974 filter: { kind: [animal_shelter, animal-shelter, animal_boarding] }
6975 draw: { icons: { sprite: animal-shelter } }
6977 filter: { kind: [antiques, antique-shop] }
6978 draw: { icons: { sprite: antique-shop } }
6980 filter: { kind: [art_gallery, art-gallery, art, artwork] }
6981 draw: { icons: { sprite: art-gallery } }
6983 filter: { kind: [athletic_sports, recreation_ground, sports_centre] }
6984 draw: { icons: { sprite: athletics-sports } }
6986 filter: { kind: [car_repair, automotive-shop, automotive, tyres] }
6987 draw: { icons: { sprite: automotive-shop } }
6989 filter: { kind: [bbq] }
6990 draw: { icons: { sprite: bbq } }
6992 filter: { kind: [bakery, pastry, chocolate] }
6993 draw: { icons: { sprite: bakery } }
6995 filter: { kind: [pub, bar] }
6996 draw: { icons: { sprite: bar } }
6998 filter: { kind: [beach_resort] }
6999 draw: { icons: { sprite: beach-resort } }
7001 filter: { kind: [biergarten, beer-garden, brewery] }
7002 draw: { icons: { sprite: beer-garden } }
7004 filter: { kind: [bicycle, bicycle_rental, bike, bike_shop, bicycle_rental_station] }
7005 draw: { icons: { sprite: bike-shop } }
7007 filter: { kind: [bicycle_parking] }
7008 draw: { icons: { sprite: bicycle-parking } }
7010 filter: { kind: [ferry_terminal, boat-ferry, ferry-boat, ferry] }
7011 draw: { icons: { sprite: boat-ferry } }
7013 filter: { kind: [boat-ramp, boat_ramp] }
7014 draw: { icons: { sprite: boat-ramp } }
7016 filter: { kind: [books, bookstore] }
7017 draw: { icons: { sprite: bookstore } }
7019 filter: { kind: [bowling_alley, bowling-alley] }
7020 draw: { icons: { sprite: bowling-alley } }
7022 filter: { kind: [bridal, bridal-shop] }
7023 draw: { icons: { sprite: bridal-shop } }
7025 filter: { kind: [building, auditorium, terminal, hangar, retirement_home, manor, recreation_center, apartments] }
7026 draw: { icons: { sprite: building } }
7030 # show labels for smaller landuse areas at higher zooms
7031 - { $zoom: [14], area: { max: 200000 } }
7032 - { $zoom: [15], area: { max: 20000 } }
7033 - { $zoom: [16], area: { max: 5000 } }
7034 - { $zoom: [17], area: { max: 1000 } }
7041 filter: { kind: [fast_food, burger] }
7042 draw: { icons: { sprite: burger } }
7044 filter: { kind: [bus_stop, bus_station] }
7045 draw: { icons: { sprite: bus-station } }
7047 filter: { kind: [camera, camera-store, photo] }
7048 draw: { icons: { sprite: camera-store } }
7050 filter: { kind: [campground, camp_site] }
7051 draw: { icons: { sprite: campground } }
7053 filter: { kind: [candy, candy-store, confectionery] }
7054 draw: { icons: { sprite: candy-store } }
7056 filter: { kind: [caravan_site] }
7057 draw: { icons: { sprite: caravan-site } }
7059 filter: { kind: [car, car-dealership] }
7060 draw: { icons: { sprite: car-dealership } }
7062 filter: { kind: [car_wash, car-wash] }
7063 draw: { icons: { sprite: car-wash } }
7065 filter: { kind: [castle, fort] }
7066 draw: { icons: { sprite: castle } }
7068 filter: { kind: [grave_yard, cemetery] }
7069 draw: { icons: { sprite: cemetery } }
7071 filter: { kind: [cheese, cheese-shop] }
7072 draw: { icons: { sprite: cheese-shop } }
7074 filter: { kind: [clothes, chothing-store, "clothes store", fashion] }
7075 draw: { icons: { sprite: clothing-store } }
7077 filter: { kind: [cafe, coffee-shop] }
7078 draw: { icons: { sprite: coffee-shop } }
7080 filter: { kind: [university, college, college-university], area: false }
7081 draw: { icons: { sprite: college-university } }
7083 filter: { kind: [commercial] }
7084 draw: { icons: { sprite: mall } }
7086 filter: { kind: [music_venue] }
7087 draw: { icons: { sprite: concert-hall } }
7089 filter: { kind: [convenience, convenience-store, convenience_store, beverages] }
7090 draw: { icons: { sprite: convenience-store } }
7092 filter: { kind: [cosmetics, cosmetics-shop, beauty] }
7093 draw: { icons: { sprite: cosmetics-shop } }
7095 filter: { kind: [dam] }
7096 draw: { icons: { sprite: dot-black } }
7098 filter: { kind: [department_store, department-store] }
7099 draw: { icons: { sprite: department-store } }
7101 filter: { kind: [doctors, clinic] }
7102 draw: { icons: { sprite: doctors } }
7104 filter: { kind: [dog_park, dog_run, dog-run] }
7105 draw: { icons: { sprite: dog-park } }
7107 filter: { kind: drinking_water }
7108 draw: { icons: { sprite: drinking-water } }
7110 filter: { kind: [dry_cleaning] }
7111 draw: { icons: { sprite: dry-cleaning } }
7113 filter: { kind: [electronics, electronics-store, computer] }
7114 draw: { icons: { sprite: electronics-store } }
7116 filter: { kind: [factory, industrial, chimney, sub_station, substation, wastewater_plant, works, water_works, plant, generator] }
7117 draw: { icons: { sprite: factory } }
7119 filter: { kind: [farmers_market, farmers-market] }
7120 draw: { icons: { sprite: farmers-market } }
7122 filter: { kind: [fire_station, fire-station] }
7123 draw: { icons: { sprite: fire-station } }
7125 filter: { kind: [fish, fish-market, seafood, fishmonger] }
7126 draw: { icons: { sprite: fish-market } }
7128 filter: { kind: [fishing_area, fishing-spot, fishing] }
7129 draw: { icons: { sprite: fishing-area } }
7131 filter: { kind: [gym, fitness, fitness_center] }
7132 draw: { icons: { sprite: fitness } }
7134 filter: { kind: [flea_market, flea-market] }
7135 draw: { icons: { sprite: flea-market } }
7137 filter: { kind: [florist, flower-shop] }
7138 draw: { icons: { sprite: flower-shop } }
7140 filter: { kind: [forest, conservation, wood] }
7141 draw: { icons: { sprite: forest } }
7143 filter: { kind: [furniture, furniture-store] }
7144 draw: { icons: { sprite: furniture-store } }
7146 filter: { kind: [garden_centre, garden_center] }
7147 draw: { icons: { sprite: garden-center } }
7149 filter: { kind: [gas, gas_canister] }
7150 draw: { icons: { sprite: gas } }
7152 filter: { kind: [fuel, gas-station] }
7153 draw: { icons: { sprite: gas-station } }
7154 general-entertainment:
7155 filter: { kind: [ticket, general_entertainment] }
7156 draw: { icons: { sprite: general-entertainment } }
7158 filter: { kind: [generic] }
7159 draw: { icons: { sprite: generic } }
7161 filter: { kind: [gift, gift-shop] }
7162 draw: { icons: { sprite: gift-shop } }
7164 filter: { kind: [golf-course, golf_course] }
7165 draw: { icons: { sprite: golf-course } }
7166 government-building:
7167 filter: { kind: [townhall, public_building, embassy] }
7168 draw: { icons: { sprite: government-building } }
7170 filter: { kind: [supermarket, grocery-store, health_food, greengrocer] }
7171 draw: { icons: { sprite: grocery-store } }
7173 filter: { kind: [marina, harbor, harbor-marina, harbor_marina, dock, mooring] }
7174 draw: { icons: { sprite: harbor-marina } }
7176 filter: { kind: [hardware, hardware-store, doityourself, paint] }
7177 draw: { icons: { sprite: hardware-store } }
7179 filter: { kind: [hotel, motel, hostel] }
7180 draw: { icons: { sprite: hotel } }
7182 filter: { kind: [hot_spring] }
7183 draw: { icons: { sprite: hot-spring } }
7185 filter: { kind: [hunting] }
7186 draw: { icons: { sprite: hunting } }
7188 filter: { kind: [ice_cream] }
7189 draw: { icons: { sprite: ice-cream-shop } }
7191 filter: { kind: [info, information] }
7192 draw: { icons: { sprite: information } }
7194 filter: { kind: [jewelry, jewelry_store, jewelry-store] }
7195 draw: { icons: { sprite: jewelry-store } }
7197 filter: { kind: [landmark, memorial, monument, wayside_shrine, beacon] }
7198 draw: { icons: { sprite: landmark } }
7200 filter: { kind: [tower], label_placement: false }
7201 draw: { icons: { sprite: landmark } }
7203 filter: { kind: [laundry] }
7204 draw: { icons: { sprite: laundry } }
7206 filter: { kind: [light-rail, light_rail, tram_stop] }
7207 draw: { icons: { sprite: light-rail } }
7209 filter: { kind: [alcohol, liquor-store, liquor] }
7210 draw: { icons: { sprite: liquor-store } }
7212 filter: { kind: [market, variety_store, boutique, dairy, retail] }
7213 draw: { icons: { sprite: market } }
7215 filter: { kind: [mine, mineshaft, adit] }
7216 draw: { icons: { sprite: mine } }
7218 filter: { kind: [quarry] }
7219 draw: { icons: { sprite: quarry } }
7221 filter: { kind: [houseware, miscellaneous-shop] }
7222 draw: { icons: { sprite: miscellaneous-shop } }
7224 filter: { kind: [mobile_phone] }
7225 draw: { icons: { sprite: mobile-phone-shop } }
7227 filter: { kind: [motorcycle_shop, motorcycle_repair] }
7228 draw: { icons: { sprite: motorcycle-shop } }
7230 filter: { kind: [motorcycle] }
7231 draw: { icons: { sprite: motorcycle } }
7233 filter: { kind: [mountain, peak] }
7234 draw: { icons: { sprite: mountain } }
7236 filter: { kind: [cinema, movie-theatre, movie-theater] }
7237 draw: { icons: { sprite: movie-theatre } }
7239 filter: { kind: [museum] }
7240 draw: { icons: { sprite: museum } }
7242 filter: { kind: [music, music-store, musical_instrument] }
7243 draw: { icons: { sprite: music-store } }
7245 filter: { kind: [kiosk, newsstand, newsagent] }
7246 draw: { icons: { sprite: newsstand } }
7248 filter: { kind: [nightclub, nightlife] }
7249 draw: { icons: { sprite: nightlife } }
7251 filter: { kind: [insurance, office, company] }
7252 draw: { icons: { sprite: office } }
7254 filter: { kind: [office_supplies, office-supplies, stationery] }
7255 draw: { icons: { sprite: office-supplies } }
7257 filter: { kind: [optician, optical_shop, optical-shop] }
7258 draw: { icons: { sprite: optical-shop } }
7260 filter: { kind: [outdoor] }
7261 draw: { icons: { sprite: outdoor } }
7263 filter: { kind: [theater, theatre, performing-arts] }
7264 draw: { icons: { sprite: performing-arts } }
7266 filter: { kind: [pet, pet-store, pet-service, pet_store] }
7267 draw: { icons: { sprite: pet-store } }
7269 filter: { kind: [pharmacy, chemist] }
7270 draw: { icons: { sprite: pharmacy } }
7272 filter: { kind: [photo_studio, photography_lab, photographer] }
7273 draw: { icons: { sprite: photography-lab } }
7275 filter: { kind: [picnic_site, picnic_spot, picnic-spot, picnic_table] }
7276 draw: { icons: { sprite: picnic-spot } }
7278 filter: { kind: [pool, swimming_pool] }
7279 draw: { icons: { sprite: pool } }
7281 filter: { kind: [billiards, pool-hall] }
7282 draw: { icons: { sprite: pool-hall } }
7284 filter: { kind: [post_office, post-office] }
7285 draw: { icons: { sprite: post-office } }
7287 filter: { kind: [tower, power-pylon, pylon] }
7288 draw: { icons: { sprite: power-pylon } }
7290 filter: { kind: [ranger_station] }
7291 draw: { icons: { sprite: ranger-station } }
7293 filter: { kind: [estate_agent, real_estate] }
7294 draw: { icons: { sprite: real-estate } }
7296 filter: { kind: [recreation_track] }
7297 draw: { icons: { sprite: recreation-track } }
7299 filter: { kind: [recycling, recycling-facility] }
7300 draw: { icons: { sprite: recycling-facility } }
7302 filter: { kind: [rental-car, car_rental, car_sharing] }
7303 draw: { icons: { sprite: rental-car } }
7305 filter: { kind: [rest_area, rest-area] }
7306 draw: { icons: { sprite: rest-area } }
7308 filter: { kind: [restaurant, deli] }
7309 draw: { icons: { sprite: restaurant } }
7311 filter: { kind: [ruins, archaeological_site] }
7312 draw: { icons: { sprite: ruin } }
7314 filter: { kind: [hairdresser, salon-barber, salon, beauty_salon] }
7315 draw: { icons: { sprite: salon-barber } }
7317 filter: { kind: [scuba_diving,dive_centre] }
7318 draw: { icons: { sprite: scuba-diving } }
7320 filter: { kind: [wreck] }
7321 draw: { icons: { sprite: ship-wreck } }
7323 filter: { kind: [shoes, shoe-store, shoe_store] }
7324 draw: { icons: { sprite: shoe-store } }
7326 filter: { kind: [slipway] }
7327 draw: { icons: { sprite: slipway } }
7329 filter: { kind: [smoke_shop, tobacco] }
7330 draw: { icons: { sprite: smoke-shop } }
7332 filter: { kind: [spa, spa-massage, sauna, massage] }
7333 draw: { icons: { sprite: spa-massage } }
7334 # prefix with "a-" here to allow Tangram to sort the generic style 1st, allowing more specific religion tags to win later
7338 - kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel]
7339 draw: { icons: { sprite: spiritual-center } }
7341 filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: christian }
7342 draw: { icons: { sprite: church } }
7344 filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: jewish }
7345 draw: { icons: { sprite: synagogue } }
7347 filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: buddhist }
7348 draw: { icons: { sprite: buddhism } }
7350 filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: muslim }
7351 draw: { icons: { sprite: mosque } }
7352 sporting-goods-shop:
7353 filter: { kind: [sporting_goods, sporting-goods-shop, sports] }
7354 draw: { icons: { sprite: sporting-goods-shop } }
7356 filter: { kind: [stable, horse_riding, horse] }
7357 draw: { icons: { sprite: stable } }
7359 filter: { kind: [storage, storage-facility] }
7360 draw: { icons: { sprite: storage-facility } }
7362 filter: { kind: [subway_entrance] }
7363 draw: { icons: { sprite: subway-entrance } }
7365 filter: { kind: [summer_camp] }
7366 draw: { icons: { sprite: summer-camp } }
7368 filter: { kind: [tailor, tailor-shop] }
7369 draw: { icons: { sprite: tailor-shop } }
7371 filter: { kind: [tattoo, tattoo_parlor, tattoo-parlor] }
7372 draw: { icons: { sprite: tattoo-parlor } }
7374 filter: { kind: [telescope] }
7375 draw: { icons: { sprite: telescope } }
7377 filter: { kind: [theme_park, theme-park, miniature_golf] }
7378 draw: { icons: { sprite: theme-park } }
7379 thrift-vintage-store:
7380 filter: { kind: [thrift, thrift-vintage-store, second_hand] }
7381 draw: { icons: { sprite: thrift-vintage-store } }
7383 filter: { kind: [toll_booth, checkpoint, border_control] }
7384 draw: { icons: { sprite: toll-booth } }
7386 filter: { kind: [toys, toy-game-store, baby_goods] }
7387 draw: { icons: { sprite: toy-game-store } }
7389 filter: { kind: [toilets] }
7390 draw: { icons: { sprite: toilets } }
7392 filter: { kind: [trailhead, hiking_trail] }
7393 draw: { icons: { sprite: trailhead } }
7395 filter: { kind: [pet_care, veterinarian, veterinary] }
7396 draw: { icons: { sprite: veterinarian } }
7398 filter: { kind: [video_games] }
7399 draw: { icons: { sprite: video-game-store } }
7401 filter: { kind: [video, video_store] }
7402 draw: { icons: { sprite: video-store } }
7404 filter: { kind: [viewpoint, view_point, view-point, vista] }
7405 draw: { icons: { sprite: view-point } }
7407 filter: { kind: [waterfall] }
7408 draw: { icons: { sprite: waterfall } }
7410 filter: { kind: [water_park] }
7411 draw: { icons: { sprite: waterpark } }
7413 filter: { kind: [well, water_well] }
7414 draw: { icons: { sprite: well } }
7416 filter: { kind: [wine, wine-shop] }
7417 draw: { icons: { sprite: wine-shop } }
7419 filter: { kind: [winery, wine] }
7420 draw: { icons: { sprite: winery } }
7422 filter: { kind: [ski, ski_rental, ski_school, ski_jumping, skiing] }
7423 draw: { icons: { sprite: ski-area } }
7425 data: { source: mapzen, layer: [water] }
7426 visible: *text_visible_water_labels
7431 - not: { kind: [riverbank, dock, playa] }
7434 # show labels for smaller landuse areas at higher zooms
7435 - { $zoom: { min: 5 }, area: { min: 10000000000 } }
7436 - { $zoom: { min: 6 }, area: { min: 5000000000 } }
7437 - { $zoom: { min: 7 }, area: { min: 400000000 } }
7438 - { $zoom: { min: 8 }, area: { min: 200000000 } }
7439 - { $zoom: { min: 9 }, area: { min: 100000000 } }
7440 - { $zoom: { min: 10 }, area: { min: 100000000 } }
7441 - { $zoom: { min: 11 }, area: { min: 10000000 } }
7442 - { $zoom: { min: 12 }, area: { min: 2000000 } }
7443 - { $zoom: { min: 13 }, area: { min: 1000000 } }
7444 - { $zoom: { min: 14 }, area: { min: 500000 } }
7445 - { $zoom: { min: 15 }, area: { min: 100000 } }
7446 - { $zoom: { min: 15 }, area: { min: 50000 } }
7447 - { $zoom: { min: 16 }, area: { min: 20000 } }
7448 - { $zoom: { min: 17 } }
7453 fill: *text_fill_water
7454 family: *text_font_family
7458 # stroke: { color: [0.878,0.929,0.980], width: 2 }
7460 filter: { $zoom: [5] }
7462 text-blend-order: { font: { size: 9px } }
7464 filter: { $zoom: [6] }
7466 text-blend-order: { font: { size: 11px } }
7468 filter: { $zoom: [8] }
7470 text-blend-order: { font: { size: 12px } }
7473 data: { source: mapzen, layer: water }
7474 visible: *text_visible_water_labels
7475 filter: { name: true, kind: [sea, ocean] }
7479 fill: *text_fill_water
7480 family: *text_font_family
7483 transform: uppercase
7485 filter: { $zoom: [3], kind: sea }
7486 draw: { text-blend-order: { visible: false } }
7488 filter: { kind: ocean }
7490 filter: { $zoom: { min: 1, max: 4 } }
7493 text_source: function() { return feature.name.split('').join(' ') }
7496 filter: { $zoom: { min: 4 } }
7499 text_source: function() { return feature.name.split('').join(' ') }
7502 filter: { $zoom: [1] }
7504 text-blend-order: { font: { size: 8px } }
7506 filter: { $zoom: [2] }
7508 text-blend-order: { font: { size: 10px } }
7510 filter: { $zoom: [3] }
7512 text-blend-order: { font: { size: 13px } }
7514 filter: { $zoom: { min: 4} }
7516 text-blend-order: { font: { size: 16px } }
7519 filter: { not: { kind: [ocean] }, $zoom: { min: 4 } }
7522 text_source: function() { return feature.name.split('').join(' ') }
7526 filter: { not: { kind: [ocean] } }
7528 filter: { $zoom: [4] }
7530 text-blend-order: { font: { size: 8px, fill: [0.250,0.250,0.250] } }
7532 filter: { $zoom: [5] }
7534 text-blend-order: { font: { size: 10px } }
7536 filter: { $zoom: [6] }
7538 text-blend-order: { font: { size: 11px } }
7540 filter: { $zoom: [7] }
7542 text-blend-order: { font: { size: 12px } }
7544 filter: { $zoom: { min: 8} }
7546 text-blend-order: { font: { size: 14px } }
7549 data: { source: mapzen, layer: earth }
7550 filter: { name: true }
7552 filter: { name: true, kind: [continent], $zoom: {max: 5} }
7555 visible: *text_visible_continent
7561 # stroke: { color: *text_stroke, width: 4 }
7562 transform: uppercase
7564 filter: { kind: continent }
7565 continent-spacer-z1-z5:
7566 filter: { $zoom: { min: 1, max: 5 } }
7569 text_source: function() { return feature.name.split('').join(' ') }
7572 filter: { kind: [archipelago, island, islet] }
7575 visible: *text_visible_island
7582 stroke: { color: *text_stroke, width: 4 }
7583 #transform: uppercase
7586 data: { source: mapzen }
7589 order: function() { return feature.sort_rank; }
7594 # # limit show smaller landuse areas to higher zooms
7595 # - { $zoom: { min: 3 }, area: { min: 300000000 } }
7596 # - { $zoom: { min: 4 }, area: { min: 300000000 } }
7597 # - { $zoom: { min: 5 }, area: { min: 150000000 } }
7598 # - { $zoom: { min: 6 }, area: { min: 150000000 } }
7599 # - { $zoom: { min: 7 }, area: { min: 100000000 } }
7600 # - { $zoom: { min: 8 }, area: { min: 10000000 } }
7601 # - { $zoom: { min: 9 }, area: { min: 5000000 } }
7602 # - { $zoom: { min: 10 }, area: { min: 1000000 } }
7603 # - { $zoom: { min: 11 }, area: { min: 500000 } }
7604 # - { $zoom: { min: 12 }, area: { min: 500000 } }
7605 # - { $zoom: { min: 13 }, area: { min: 100000 } }
7606 # - { $zoom: { min: 14 }, area: { min: 50000 } }
7607 # - { $zoom: { min: 15 }, area: { min: 20000 } }
7608 # - { $zoom: { min: 15 }, area: { min: 2000 } }
7609 # - { $zoom: { min: 16 } }
7614 - kind: [national_park, battlefield, protected_area]
7616 - not: { operator: [ "United States Forest Service" ] }
7617 - protect_class: ['2','3','5']
7621 color: [0.890,1.00,1.00]
7622 # todo: what is this?
7626 # yosemite national park, death valley national park, grand canyon national park
7629 - operator: [ "United States National Park Service" ]
7630 - protect_class: ['2','3','5']
7634 color: [0.890,1.00,1.00]
7639 # # limit show smaller landuse areas to higher zooms
7640 # - { $zoom: { min: 4 }, area: { min: 1000000000 } }
7641 # - { $zoom: { min: 5 }, area: { min: 1000000000 } }
7642 # - { $zoom: { min: 6 }, area: { min: 150000000 } }
7643 # - { $zoom: { min: 7 }, area: { min: 100000000 } }
7644 # - { $zoom: { min: 8 }, area: { min: 10000000 } }
7645 # - { $zoom: { min: 9 }, area: { min: 5000000 } }
7646 # - { $zoom: { min: 10 }, area: { min: 1000000 } }
7647 # - { $zoom: { min: 11 }, area: { min: 500000 } }
7648 # - { $zoom: { min: 12 }, area: { min: 250000 } }
7649 # - { $zoom: { min: 13 }, area: { min: 100000 } }
7650 # - { $zoom: { min: 14 }, area: { min: 50000 } }
7651 # - { $zoom: { min: 15 }, area: { min: 20000 } }
7652 # - { $zoom: { min: 15 }, area: { min: 2000 } }
7653 # - { $zoom: { min: 16 } }
7655 # effectively wilderness
7660 - kind: [protected_area, nature_reserve, national_park]
7661 - not: { protect_class: [2,3,5]}
7664 # color: [1.00,0.974,0.950]
7665 color: [0.88,0.99,0.88]
7670 # width: [[9,0px],[10,2px],[12,4px]]
7672 national_forest_level_6:
7677 - protect_class: ['6']
7678 - operator: ['United States Forest Service']
7681 color: [0.945,0.995,0.945] #*green7
7684 parks-and-national-forests-not-national-park:
7688 - kind: [park, national_park]
7690 - not: { operator: [ "United States National Park Service", "United States Forest Service" ] }
7691 - not: { protect_class: ['2','3','5','6'] }
7692 # default for national forests and more?
7695 color: [0.880,1.000,0.950]
7698 #filter: function() { return feature.name && (feature.name.indexOf('National Park') > -1); }
7701 - kind: national_park
7702 - not: [ protect_class: ['2','3','5','6'], operator: [ "United States National Park Service"] ]
7705 color: [0.890,1.00,1.00]
7709 # gotta be a protected area to draw green, not just a landcover type
7712 kind: [farm, farmland]
7716 color: [1.00,1.00,1.00]
7719 filter: { kind: [forest, wood, natural_wood, natural_forest, natural_park], $zoom: { min: 10 }, not: { operator: [ "United States Forest Service"] } }
7722 color: [0.956,0.99,0.966]
7726 # filter: { kind: nature_reserve, $zoom: { min: 7 } }
7729 # order: function() { return feature.sort_rank; }
7731 # filter: function() { return feature.name && feature.name.indexOf("Wilderness") > -1 }
7734 # color: [0.890,0.973,0.886]
7738 # # width: [[9,1px],[10,2px],[12,4px]]
7740 # parks-and-national-forests-not-national-park:
7741 # filter: { $zoom: { min: 4 }, kind: [park, national_park, "park or protected land", battlefield], not: { operator: [ "United States National Park Service", "US National Park Service" ] } }
7742 # # default for national forests and more?
7745 # color: [0.880,1.000,0.950]
7746 # # color: [0.850,1.000,0.938]
7747 # # color: [0.860,0.993,1.000]
7748 # # color: [0.915,0.995,0.995]
7753 # filter: { kind: [urban, rural, residential] }
7754 # visible: *earth2_v
7757 # color: [1.00,1.00,1.00]
7758 # visible: *earth2_v
7762 # # limit show smaller landuse areas to higher zooms
7763 # - { $zoom: { min: 8 }, area: { min: 10000000 } }
7764 # - { $zoom: { min: 9 }, area: { min: 5000000 } }
7765 # - { $zoom: { min: 10 }, area: { min: 1000000 } }
7766 # - { $zoom: { min: 11 }, area: { min: 500000 } }
7767 # - { $zoom: { min: 12 }, area: { min: 500000 } }
7768 # - { $zoom: { min: 13 }, area: { min: 100000 } }
7769 # - { $zoom: { min: 14 }, area: { min: 50000 } }
7770 # - { $zoom: { min: 15 }, area: { min: 20000 } }
7771 # - { $zoom: { min: 15 }, area: { min: 2000 } }
7772 # - { $zoom: { min: 16 } }
7789 kind: [university, college]
7797 # # limit show smaller landuse areas to higher zooms
7798 # - { $zoom: { min: 10 }, area: { min: 1000000 } }
7799 # - { $zoom: { min: 11 }, area: { min: 500000 } }
7800 # - { $zoom: { min: 12 }, area: { min: 500000 } }
7801 # - { $zoom: { min: 13 }, area: { min: 100000 } }
7802 # - { $zoom: { min: 14 }, area: { min: 50000 } }
7803 # - { $zoom: { min: 15 }, area: { min: 20000 } }
7804 # - { $zoom: { min: 15 }, area: { min: 2000 } }
7805 # - { $zoom: { min: 16 } }
7811 color: [0.982,1.000,0.960]
7818 color: [0.890,1.000,0.892]
7819 # color: [0.840,1.000,0.907]
7826 color: [0.988,0.938,0.953]
7836 filter: { kind: [plant, generator, substation] }
7848 # IGNORE THIS FOR NOW
7851 # kind: sports_centre
7854 # color: [1.0,1.0,1.0]
7857 kind: recreation_ground
7860 color: [0.945,0.995,0.945]
7871 kind: [zoo, wildlife_park]
7874 color: [0.830,1.000,0.972]
7881 color: [1.0,1.0,1.0]
7884 filter: { kind: [pier,wastewater_plant,works,bridge,tower,breakwater,water_works,groyne,dike,cutline] }
7890 filter: { kind: [pier,bridge,breakwater,groyne,dike,cutline] }
7893 color: [1.000,0.973,0.930]
7896 filter: { kind: camp_site }
7905 # # limit show smaller landuse areas to higher zooms
7906 # - { $zoom: { min: 10 }, area: { min: 1000000 } }
7907 # - { $zoom: { min: 11 }, area: { min: 400000 } }
7908 # - { $zoom: { min: 12 }, area: { min: 200000 } }
7909 # - { $zoom: { min: 13 }, area: { min: 50000 } }
7910 # - { $zoom: { min: 14 }, area: { min: 20000 } }
7911 # - { $zoom: { min: 15 }, area: { min: 10000 } }
7912 # - { $zoom: { min: 15 }, area: { min: 2000 } }
7913 # - { $zoom: { min: 16 } }
7939 color: [1.000,0.953,0.900]
7940 # color: [0.975,0.975,0.828]
7945 # # limit show smaller landuse areas to higher zooms
7946 # - { $zoom: { min: 12 }, area: { min: 500000 } }
7947 # - { $zoom: { min: 13 }, area: { min: 100000 } }
7948 # - { $zoom: { min: 14 }, area: { min: 50000 } }
7949 # - { $zoom: { min: 15 }, area: { min: 20000 } }
7950 # - { $zoom: { min: 15 }, area: { min: 2000 } }
7951 # - { $zoom: { min: 16 } }
7954 kind: [garden, allotments]
7957 color: [0.790,0.973,0.896]
7963 - $zoom: { min: 14 }
7965 - { $zoom: { min: 14 }, area: { min: 10000 } }
7966 - { $zoom: { min: 15 }, area: { min: 5000 } }
7972 filter: { $zoom: { max: 15 } }
7975 color: [0.950,0.950,0.950]
7979 kind: [pedestrian,common]
7982 color: [0.945,0.995,0.945]
7989 color: [0.791,0.953,0.883]
7996 color: [0.890,0.970,1.000]
7997 # color: [0.975,0.975,0.828]
8002 kind: [pitch, meadow, village_green, grass, farmland, playground]
8005 color: [0.808,0.962,0.951]
8006 # color: [0.702,0.949,0.932]
8007 # color: [0.975,0.975,0.828]
8010 filter: { kind: [farmland] }
8013 color: [0.965,0.996,0.965]
8016 filter: { kind: [meadow, grass] }
8019 color: [0.825,0.976,0.895]
8021 filter: { kind: pitch, $zoom: { min: 17 } }
8024 color: [0.526,0.809,0.752]
8033 color: [0.930,0.973,0.980]
8034 # color: [0.975,0.975,0.828]
8041 color: [1.000,0.973,0.930]
8042 # color: [0.975,0.975,0.828]
8045 filter: { $zoom: { min: 15 } }
8053 kind: [scree, farmyard]
8056 color: [1.000,0.953,0.900]
8057 # color: [0.975,0.975,0.828]
8060 filter: { $zoom: { min: 15 } }
8068 kind: place_of_worship
8078 color: [0.795,1.000,0.955]
8097 color: [0.795,1.000,0.955]
8101 # 18/41.19776/-8.68722
8107 order: 501 # function() { return feature.sort_rank; }
8108 color: [0.602,0.860,0.722]
8109 width: [[16,1px],[17,2px],[19,1.5m]]
8112 # 20/37.76779/-122.40096
8118 order: 500 # function() { return feature.sort_rank; }
8119 color: [0.602,0.860,0.722]
8120 width: [[16,0.5px],[17,1px],[19,1m]]
8124 data: { source: mapzen, layer: earth }
8125 filter: { kind: [cliff, arete, ridge, valley] }
8131 # filter: { kind: cliff }
8138 # filter: { kind: arete }
8145 filter: { kind: [ridge, valley] }
8156 stroke: { color: [0.894,0.906,0.914], width: 3 }
8158 filter: { kind: ridge }
8168 stroke: { color: [0.894,0.906,0.914], width: 3 }
8171 data: { source: mapzen, layer: roads }
8176 - kind_detail: [pier]
8179 color: [[11,[0.408,0.741,0.690]],[15,[0.131,0.667,0.575]]] #[11,[0.252,0.509,0.60]],[12,[0.120,0.600,0.520]]
8181 color: [0.120,0.600,0.520]
8183 color: [0.120,0.600,0.520]
8184 # color: [0.257,0.520,0.802] ## added red
8185 # color: [0.302,0.649,0.740] ## more blue
8186 # color: [0.292,0.650,0.644] ## more green
8187 # color: [0.416,0.750,0.746]
8188 # bigger path, sometimes paved (walk with friends side-by-side), also tracks that are no vehicles
8194 - kind_detail: track
8200 color: [[13, [0.510,0.752,0.695]], [14,[0.412,0.710,0.665]], [15, [0.298,0.686,0.627]], [16, [0.860,1.000,0.977]], [17, [0.860,1.000,0.977]]]
8201 width: [[13, 1px], [14, 1.1px], [15, 1.4px], [16, 0px], [17, 1px], [18, 1.75px], [19, 2.25px]]
8204 color: [0.120,0.600,0.520]
8205 width: [[15, 0px], [16, 0.8px], [17, 1.25px], [18, 2.5px]]
8207 filter: { walking_network: true }
8210 width: [[12, 1px], [13, 1px], [14, 1.1px], [15, 1.5px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
8213 color: [[12,[1.000,1.000,0.870]],[15,[1.000,1.000,0.870]]]
8214 width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 7px], [17, 10px], [18, 14px], [19, 16px]]
8216 no_name_early_not_designated:
8217 filter: { name: false, $zoom: { max: 14 } }
8222 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments] }
8225 width: [[13, 0.5px], [15, 0.65px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
8227 filter: { $zoom: { max: 15 } }
8232 #filter: { $zoom: { min: 17 } }
8236 visible: *text_visible_path
8238 fill: [0.143,0.544,0.481]
8239 # fill: [0.256,0.570,0.565]
8241 stroke: { color: *text_stroke, width: 4 }
8243 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
8249 # single hiking path
8251 filter: { kind_detail: [footway] }
8256 color: [0.120,0.600,0.520]
8257 #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 3px], [17, 6px], [18, 7px], [19, 10px]]
8258 width: [[13, 0.75px], [14, 1px], [15, 3.5px], [16, 3px], [17, 4px], [18, 5px], [19, 8px]]
8264 #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 2px], [17, 6px], [18, 7px], [19, 10px]]
8265 #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
8266 color: [[14,[0.510,0.752,0.695]],[15,[0.671,0.839,0.820]],[16,[0.671,0.839,0.820]]]
8267 width: [[13, 0.75px], [14, 0.6px], [15, 1px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
8272 early-show-as-lines-z14:
8273 filter: { $zoom: { max: 15 } }
8279 early-show-as-lines-z15:
8280 filter: { $zoom: [15] }
8287 filter: { walking_network: true }
8290 #width: [[12, 0.75px], [13, 1px], [14, 1px], [15, 1.25px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
8291 width: [[13, 1.25px],[14, 1.4px],[15, 1.75px],[16, 2px], [17, 4px], [18, 5px], [19, 8px]]
8292 #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
8295 color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
8296 width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
8299 filter: { $zoom: { max: 15 } }
8302 color: [0.120,0.600,0.520]
8303 # de-emphasize less important trails at early zooms
8304 # where less important are trails without names, trails in less interesting landuse, or just early
8308 - landuse_kind: [zoo, enclosure, petting_zoo, golf_course, garden, university, parking, pedestrian, attraction, residential, stadium, playground, allotments]
8309 - $zoom: { max: 17 }
8314 filter: { $zoom: { max: 16 } }
8319 filter: { $zoom: { max: 16 } }
8322 color: [0.120,0.600,0.520]
8323 width: [[14,0.4px],[15,0.5px]]
8325 filter: { kind: [garden] }
8328 width: [[14,0.1px],[15,0.3px]]
8332 - landuse_kind: [cemetery]
8336 color: [0.863,0.941,0.867]
8338 color: [0.510,0.752,0.695]
8340 filter: { $zoom: { max: 16 } }
8345 filter: { $zoom: { max: 16 } }
8348 color: [0.510,0.752,0.695]
8349 width: [[14,0.25px],[15,0.5px]]
8351 filter: { footway: [sidewalk, crossing], not: { walking_network: true } }
8354 order: 350 # function() { return feature.sort_rank; }
8356 order: 351 # function() { return (feature.sort_rank + 1); }
8360 filter: { $zoom: { max: 18 } }
8367 filter: { $zoom: [17] }
8373 filter: { $zoom: { min: 15 } }
8377 visible: *text_visible_path
8379 fill: [0.143,0.544,0.481]
8381 stroke: { color: *text_stroke, width: 4 }
8383 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
8388 cycleway_pedestrian:
8391 - kind_detail: [cycleway, pedestrian]
8392 - not: { kind_detail: [pedestrian], walking_network: true }
8395 # color: blue #[0.120,0.600,0.520]
8396 # width: [[13, 1px], [14, 1.45px], [15, 1.1px], [16, 1.5px], [17, 2px], [18, 5px], [19, 6px]]
8399 color: [[11,[0.120,0.600,0.520]],[14,[0.120,0.600,0.520]],[15,[1.00,1.00,1.00]]]
8400 #width: [[11, 0.25px], [12, 0.35px], [13, 0.55px],[14,1px],[15,0px]]
8401 width: [[13, 0.75px], [14, 1.1px], [15, 1.1px], [16, 1.5px], [17, 2.2px], [18, 5px], [19, 6px]]
8402 # let roads sort themselves past zoom 14
8405 color: [0.120,0.600,0.520]
8406 width: [[11, 0px],[14, 0px],[15, 0.5px],[16, 1px]]
8408 filter: { walking_network: true }
8411 color: [[11,[0.120,0.600,0.520]],[14,[0.120,0.600,0.520]],[15,[1.00,1.00,1.00]]]
8412 width: [[13, 0.75px], [14, 1.1px], [15, 1.1px], [16, 1.5px], [17, 2.2px], [18, 5px], [19, 6px]]
8415 color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.880]]]
8416 width: [[12, 0px], [13, 4px], [14, 5px], [15, 7px], [16, 10px], [17, 12px], [18, 14px], [19, 16px]]
8419 filter: { $zoom: { min: 15 } }
8422 color: [1.00,1.00,1.00]#[0.145,0.745,0.643] #[[17,'#c8ecf7'],[18,'#a9d9e8']] #white
8426 #color: [0.120,0.600,0.520]
8429 width: [[15, 1px], [16, 1.5px], [17, 1.6px], [18, 2px], [19, 2px]]
8432 filter: { $zoom: { min: 14 } }
8436 visible: *text_visible_path
8438 fill: [0.120,0.600,0.520]
8440 stroke: { color: *text_stroke, width: 4 }
8443 data: { source: mapzen, layer: roads }
8447 - kind_detail: [track]
8448 - motor_vehicle: false
8451 color: [[13,[0.773,0.705,0.605]],[14,[0.630,0.519,0.418]]]
8452 # color: [0.756,0.563,0.499]
8453 width: [[13, 0.6px], [14, 1px], [15, 1.1px], [16, 1.25px], [17, 1.5px], [18, 5px], [19, 6px]]
8457 filter: { $zoom: { min: 16 } }
8464 color: [0.630,0.519,0.418]
8465 # color: [0.756,0.563,0.499]
8468 width: [[16, 1px], [17, 1.5px], [18, 2px], [19, 2px]]
8471 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments] }
8474 width: [[13, 1px], [14, 1.45px], [15, 1.1px], [16, 1.5px], [17, 2px], [18, 5px], [19, 6px]]
8476 filter: { $zoom: { max: 15 } }
8481 filter: { walking_network: true }
8484 width: [[13, 1px], [14, 1.2px], [15, 1.5px], [16, 1.25px], [17, 1.5px], [18, 3px], [19, 4px]]
8487 color: [[12,[1.000,1.000,0.870]],[15,[1.000,1.000,0.870]]]
8488 width: [[12, 2.5px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
8491 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
8496 #filter: { $zoom: { min: 17 } }
8500 visible: *text_visible_path
8502 fill: [0.536,0.451,0.378]
8504 stroke: { color: *text_stroke, width: 4 }
8505 in_zoo_golf_course-early:
8506 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
8510 other-roads-no-motorvehicle-overlay:
8511 data: { source: mapzen, layer: roads }
8514 - not: { kind: [path,ferry] }
8518 color: [0.710,0.553,0.522]
8519 width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1.5px], [17, 3px], [18, 3m]]
8523 filter: { $zoom: { min: 15 } }
8526 color: [0.940,0.940,0.940]
8530 color: [0.710,0.553,0.522]
8533 width: [[15, 0.5px], [16, 1.25px], [17, 1.5px], [18, 1.5px], [19, 3px]]
8536 #filter: { $zoom: { min: 17 } }
8540 visible: *text_visible_path
8542 fill: [0.536,0.451,0.378]
8544 stroke: { color: *text_stroke, width: 4 }
8547 other-roads-walking-network-only:
8548 data: { source: mapzen, layer: roads }
8551 - walking_network: true
8554 - { kind: [path,ferry], not: { kind_detail: pedestrian } }
8555 #- motor_vehicle: [no,false]
8556 - kind_detail: [track]
8559 color: [0.120,0.600,0.520]
8560 width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
8564 filter: { $zoom: { min: 16 } }
8567 color: [1.000,1.000,0.870]
8568 width: [[15,0px],[16,1px],[17,4px],[18,6m]]
8570 color: [0.120,0.600,0.520]
8571 width: [[15, 0.5px],[16, 1.5px],[17, 1.5px],[18, 2.5px],[19, 1m]]
8576 color: [0.120,0.600,0.520]
8577 width: [[15, 0.5px],[16, 5.5px],[17, 10px],[18, 9m],[19, 8m]]
8583 width: [[15, 0.5px],[16, 6px],[17, 10px],[18, 9m],[19, 8m]]
8587 width: [[13, 0.9px], [14, 1.2px], [15, 2.0px], [16, 1px], [17, 2px], [18, 6m]]
8590 color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
8591 width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 10px], [17, 12px], [18, 14px], [19, 16px]]
8593 hide-most-till-mid-zooms:
8596 - $zoom: { max: 12 }
8597 - walking_network: [lwn,rwn]