Update terrain style
[platform/core/location/maps-plugin-mapzen.git] / scenes / walkabout-style / walkabout-style.yaml
1 # Walkabout is an outdoor style perfect for hiking or getting out and about, with
2 # mountains, ski trails, biking paths, and transit stops.
3 #
4 # Give OpenStreetMap data a professional basemap skin using the Tangram graphics library
5 # and Mapzen's versatile Vector Tiles.
6 #
7 # Please use and adapt the open source scene file in your own projects!
8 #
9 # Authors: Geraldine Sarmiento, Nathaniel V. Kelso
10 # Read more: https://github.com/tangrams/walkabout-style
11 #
12
13 global:
14     #ux/ui
15     #
16     # missing language
17     # missing transit overlay
18     #
19     # To facilitate data visualizations several recommended sort orders are provided
20     #
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
35     #
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
48     #
49     # Under water.
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
61     #
62     # Under everything.
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
74     #
75     # default order for basemap features
76     feature_order: function() { return feature.sort_rank; }
77     #
78     # TODO: YAML based globals below will move into this Tangram globals block
79
80 labels-global:
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
123
124 settings:
125     cameras:
126         - &camera_settings            { type: isometric, axis: [-.2, .2] }
127
128     lights:
129         - &light_settings             { type: directional, direction: [1, 1, -.9], diffuse: 0.5, ambient: 0.85 }
130
131     roads:
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]
139         - &rail1                      '#999'
140         - &rail1_e                    '#bbb'
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]
150         - &major_road5                white
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
176         - &path_steps1                red
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]
182
183     boundaries:
184         - &country_boundary           [1.00,1.00,1.00]
185         - &region_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]
192
193     areas:
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
264
265     labels:
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)
283
284 cameras:
285     camera1: *camera_settings
286
287 scene:
288     background:
289         color: [0.894,0.902,0.898]
290     # animated: true
291
292 fonts:
293     Montserrat:
294         url: https://fonts.gstatic.com/s/montserrat/v7/zhcz-_WihjSQC0oHJ9TCYL3hpw3pgy2gAi-Ip7WPMi0.woff
295
296 textures:
297     pois:
298         url: images/poi_icons_18@2x.png
299         filtering: mipmap
300         sprites:
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]
467             gym: [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]
696             #
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]
705             #
706             # HACK: not currently in source sprite sheet (capital-xl)
707             ux-transit-stop: [676, 814, 20, 20]
708
709     building-grid:
710         url: images/building-grid.gif
711         filtering: mipmap
712
713 sources:
714     mapzen:
715         type: TopoJSON
716         # prod
717         url:  https://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.topojson?api_key=vector-tiles-VyYjZGS
718         # dev
719         #url:  https://tile.dev.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.topojson
720         rasters: [normals]
721         max_zoom: 16
722     normals: # normals
723         type: Raster
724         url: https://tile.mapzen.com/mapzen/terrain/v1/normal/{z}/{x}/{y}.png
725         max_zoom: 15
726
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
729 #    #
730 #    # Current location gem
731 #    mz_current_location:
732 #        type: GeoJSON
733 #        url: https://gist.githubusercontent.com/anonymous/9e9588228b0a604264a2/raw/b28be49bea0b7feb859eb65b588c28e9fee5ae2c/map.geojson
734 #    # Route line
735 #    mz_route_line:
736 #        type: GeoJSON
737 #        # sf to ny
738 #        # url: https://gist.githubusercontent.com/anonymous/30c6c1a75c168d91d90c/raw/92bfe55e622766d250b1f2f5d17bdc7c26acb956/map.geojson
739 #        # local sf trip
740 #        url: https://gist.githubusercontent.com/anonymous/9a610ebda6fe4be7bccc/raw/8d217e43f2412d48d01534ba115f1e42dac72e68/map.geojson
741 #    # Dashed route line
742 #    mz_dash_line:
743 #        type: GeoJSON
744 #        url: https://gist.githubusercontent.com/anonymous/d73b851c64c3e5fbfc2754aa32f44c10/raw/938ae435776e176919c4797bed1465a92e403ef3/map.geojson
745 #    # Transit route line
746 #    mz_route_line_transit:
747 #        type: GeoJSON
748 #        url: https://gist.githubusercontent.com/anonymous/71ae88cbc6d62c4d141ecd6a61060050/raw/2254bbc18243f5dc609e663a580c9412a7447936/map.geojson
749 #    # Pin at start of route
750 #    mz_route_start:
751 #       type: GeoJSON
752 #       url: https://gist.githubusercontent.com/anonymous/5262969cb7549ea69221/raw/be03f233fa323d9b5cf50ef1d8e89a1faa3750f1/map.geojson
753 #    # Pin at end of route
754 #    mz_route_destination:
755 #       type: GeoJSON
756 #       url: https://gist.githubusercontent.com/anonymous/dbae9635dfe46796490e/raw/df55c318635a7d91b309ed40754d4738a292fd38/map.geojson
757 #    # Arrow for current route location
758 #    mz_route_location:
759 #        type: GeoJSON
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:
763 #        type: GeoJSON
764 #        url: https://gist.githubusercontent.com/anonymous/b9f16bca4a804f50faf71277d52ee4ab/raw/db13e4e765fa1ac8844b8ba02f4a0f66fe772907/map.geojson
765 #    # Pins showing search result locations
766 #    mz_search_result:
767 #        type: GeoJSON
768 #        url: https://gist.githubusercontent.com/anonymous/57dc09eeb120919f76de/raw/43426217da3c2bae0522dc4257aaa61e4df3981e/map.geojson
769 #    # Default point styling (SDK)
770 #    mz_default_point:
771 #        type: GeoJSON
772 #        url: https://gist.githubusercontent.com/anonymous/16324c771edfce45be0721390389b878/raw/7dbaebf17da7da8562e6c6f8768bc8cff83efa88/map.geojson
773 #    # Default line styling (SDK)
774 #    mz_default_line:
775 #        type: GeoJSON
776 #        url: https://gist.githubusercontent.com/anonymous/26f4e8b6b34b2617b5d5533d89decb39/raw/df8e180ab4f7f19448014dccc4a755f7cfa20003/map.geojson
777 #    # Default polygon styling (SDK)
778 #    mz_default_polygon:
779 #        type: GeoJSON
780 #        url: https://gist.githubusercontent.com/anonymous/88235c795bb44b8c45150bdd5561f947/raw/71d4fab97b6513833bf1a589167119e6169ef86d/map.geojson
781
782 styles:
783     highlight:
784         base: lines
785     dots-lines:
786         base: lines
787         lighting: false
788         texcoords: true
789         blend: overlay
790         shaders:
791             defines:
792                 dotSize: .1
793             blocks:
794                 color: |
795                     vec2 st = fract(v_texcoord.xy);
796                     st -= .5;
797                     color.a = 1.- step(dotSize, dot(st,st)*2.);
798     dashed:
799         base: lines
800         dash: [1.25, 1.25]
801         dash_background_color: [0.808,0.860,0.851]
802     dashedTunnel:
803         base: lines
804         dash: [5, 3]
805         #dash_background_color: red
806     dashedline:
807         base: lines
808         texcoords: true
809         shaders:
810             defines:
811                 background: vec3(0.867, 0.867, 0.867)
812             blocks:
813                 color: |
814                     // blend line 50/50 between two colors
815                     float t = fract(v_texcoord.y*.5);
816                     float e = 0.1; // edge feather
817                     vec3 v = vec3(
818                         smoothstep(.0, e, t) *
819                         (1. - smoothstep(.5, .5 + e, t))
820                     );
821                     color.rgb = mix(color.rgb, background, v);
822
823     functions-map:
824         shaders:
825             defines:
826                 EPSILON: 0.0000001
827             blocks:
828                 global: |
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){
831                             return outputMin;
832                         } else {
833                             float outVal = ((value - inputMin) / (inputMax - inputMin) * (outputMax - outputMin) + outputMin);
834
835                             if( clamp ){
836                                 if(outputMax < outputMin){
837                                     if( outVal < outputMax ) outVal = outputMax;
838                                     else if( outVal > outputMin ) outVal = outputMin;
839                                 } else {
840                                     if( outVal > outputMax ) outVal = outputMax;
841                                     else if( outVal < outputMin ) outVal = outputMin;
842                                 }
843                             }
844                             return outVal;
845                         }
846                     }
847
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);
850                     }
851     space-tile:
852         shaders:
853             blocks:
854                 global: |
855                     // Variant to be add to both vertex and fragments shaders
856                     varying vec3 v_pos;
857                     //
858                     // Get the coordinates in tile space
859                     // ================================
860                     vec2 getTileCoords () {
861                         return fract(v_pos.xy);
862                     }
863                 position: |
864                     // Normalize the attribute position of a vertex
865                     v_pos = modelPosition().xyz;
866
867     grids-grid:
868         shaders:
869             blocks:
870                 global: |
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;
875                     }
876                     //
877                     // Draw a grid in the space a specific resolution
878                     bool grid(vec2 st, float res){
879                         return grid(st, res, 1.0);
880                     }
881
882     grids-tile:
883         mix: [space-tile,grids-grid]
884         shaders:
885             blocks:
886                 global: |
887                     // Draw a grid using tile coordenates in a specific resolution
888                     float tileGrid(float res){
889                         vec2 st = getTileCoords()*100.*res;
890                         float pct = 0.0;
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
893                         return pct;
894                     }
895                     // Draw two grid that smoothly interpolates acording to zooms
896                     float tileGrid(){
897                         return mix(tileGrid(1.),tileGrid(2.),fract(u_map_position.z));
898                     }
899
900     grid:
901         base: polygons
902         mix: [grids-tile]
903         shaders:
904             blocks:
905                 color: |
906                     color = v_color*tileGrid();
907                     // color = vec4(v_color.r, v_color.g, v_color.b, 1.0);
908                     // color.rgba
909
910     shapes-rect:
911         shaders:
912             blocks:
913                 global: |
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;
918                         st = st*2.-1.;
919                         //st.x *= aspect;
920                         return length(max(abs(st)-size,.0));
921                     }
922                     float rectDF(vec2 st, float size) {
923                         //float aspect = u_resolution.x/u_resolution.y;
924                         st = st*2.-1.;
925                         //st.x *= aspect;
926                         return length(max(abs(st)-size,.0));
927                     }
928
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));
934                     }
935
936                     float rect(vec2 st, float size, float radio) {
937                         return rect(st,vec2(size),radio);
938                     }
939
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));
945                         return (uv.x*uv.y);
946                     }
947
948                     float rect(vec2 st, float size){
949                         return rect(st,vec2(size));
950                     }
951     shapes-cross:
952         mix: shapes-rect
953         shaders:
954             blocks:
955                 global: |
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.);
960                     }
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));
964                     }
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));
968                     }
969
970     terrain:
971         base: polygons
972         lighting: false
973         raster: normal
974         shaders:
975             uniforms:
976                 # u_envmap: images/relief-shading-environment-map.jpg
977                 u_envmap: images/draw-test9.jpg
978                 u_contrast: 1.
979                 u_brightness: 1.
980             blocks:
981                 global: |
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);
986                         r.z += 1.;
987                         float m = 2. * length(r);
988                         vec2 uv = r.xy / m + .5;
989                         return texture2D(_tex, uv);
990                     }
991                     const float e = 2.71828;
992                 color: |
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);
1003
1004                     // Apply contrast
1005                     float contrast = m;
1006                     color.rgb = ((color.rgb - 0.5) * max(contrast, 0.)) + 0.5;
1007                     // Apply brightness
1008                     float brightness = .5 - m * .5;
1009                     color.rgb += brightness;
1010
1011                     color *= v_color; // apply layer color
1012
1013     water-grid:
1014         mix: grid
1015         shaders:
1016             blocks:
1017                 color: |
1018                     color = v_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;
1023
1024     # HSV/RGB functions
1025     hsv:
1026         shaders:
1027             blocks:
1028                 global: |
1029                     vec3 rgb2hsv(vec3 c)
1030                     {
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);
1035                         float e = 1.0e-10;
1036                         return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
1037                     }
1038                     vec3 hsv2rgb(vec3 c)
1039                     {
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);
1043                     }
1044
1045     scale-buildings:
1046         shaders:
1047             blocks:
1048                 position: |
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
1055                     float e = 0.;
1056
1057                     if (zoom >= midpoint) {
1058                         e = (zoom - midpoint) / (outspeed * .2);
1059                     } else {
1060                         e = abs(zoom - midpoint) / inspeed;
1061                     }
1062                     position.z *= ((1. - min) / (1. + (exp(e)))) + min;
1063
1064     building-grid:
1065         base: polygons
1066         lighting: false
1067         mix: [hsv, scale-buildings]
1068         texcoords: true
1069         shaders:
1070             uniforms:
1071                 u_tex_grid: building-grid
1072             defines:
1073                 WALL_TINT: vec3(0.950, 0.950, 0.950)
1074             blocks:
1075                 color: |
1076                     if (dot(vec3(0., 0., 1.), worldNormal()) < 1.0 - TANGRAM_EPSILON) {
1077                         // If it's a wall
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);
1081                     }
1082
1083     building-lines:
1084         base: lines
1085         mix: scale-buildings
1086         texcoords: true
1087
1088
1089     terrain-muted:
1090         mix: grid-on-terrain
1091         shaders:
1092             uniforms:
1093                 u_scale: 1 # turn down the terrain
1094
1095     terrain-grid:
1096         mix: grid-on-terrain
1097         shaders:
1098             uniforms:
1099                 u_scale: 2
1100
1101     grid-on-terrain:
1102         mix: [grids-tile, terrain]
1103         shaders:
1104             blocks:
1105                 color: |
1106                     color -= v_color*tileGrid();
1107                     vec4 linecolor = vec4(0.489,0.776,0.820,1.0);
1108                     color += linecolor * tileGrid();
1109     dots-terrain:
1110         mix: [space-tile, functions-map, terrain, shapes-cross]
1111         shaders:
1112             blocks:
1113                 color: |
1114                     // Brightness
1115                     float brightness2 = dot(normal, vec3(-0.838,-1.010,0.805));
1116
1117                     brightness2 = 1.-brightness2;
1118
1119                     // Scale
1120                     float scale2 = map(floor(u_map_position.z), 8., 22., 0.0000001, .1, true);
1121                     vec2 st = worldPosition().xy*scale2;
1122
1123
1124                     // PATERNS
1125                     float pct = 0.0;
1126
1127                     // Stripes
1128                     // pct = step(brightness2*4.556,cos((st.x+st.y)));
1129
1130
1131                     // Cell patterns
1132                     st.x += step(1., mod(st.y,2.0)) *.5;
1133                     vec2 f_st = fract(st);
1134                     f_st -= .5;
1135
1136                     // Dots
1137                      pct = step(brightness2*2.056,1.-dot(f_st,f_st)*10.400);
1138
1139                     // Lines
1140                     // pct = rect(f_st+0.5,vec2(0.704,brightness2*0.472));
1141
1142                     // Cross
1143                     //pct = cross(f_st+0.5,brightness2*6.128,brightness2*2.604);
1144
1145                     // Use this if you tint
1146                     // if (pct < .5) {
1147                         // discard;
1148                     // }
1149
1150                     color.rgb = mix(color.rgb, v_color.rgb ,pct);
1151
1152     icons:
1153         base: points
1154         texture: pois
1155         blend_order: 1
1156     text-blend-order:
1157         base: text
1158         blend_order: 1
1159     lines_transparent:
1160         base: lines
1161         blend: overlay
1162     polygons_transparent:
1163         base: polygons
1164         blend: overlay
1165     ux-route-line-overlay:
1166         base: lines
1167         blend: overlay
1168         blend_order: 0
1169     ux-route-line-dash-overlay:
1170         base: lines
1171         blend: overlay
1172         blend_order: 0
1173         dash: [2, 1]
1174     ux-transit-line-overlay:
1175         base: lines
1176         blend: overlay
1177         blend_order: 0
1178     ux-location-gem-overlay:
1179         base: points
1180         texture: pois
1181         interactive: true
1182         blend: overlay
1183         blend_order: 2
1184     ux-icons-overlay:
1185         base: points
1186         texture: pois
1187         interactive: true
1188         blend: overlay
1189         blend_order: 3
1190     sdk-point-overlay:
1191         base: points
1192         texture: pois
1193         interactive: true
1194         blend: overlay
1195         blend_order: 3
1196     sdk-line-overlay:
1197         base: lines
1198         blend: overlay
1199         blend_order: 0
1200     sdk-polygon-overlay:
1201         base: polygons
1202         blend: overlay
1203         blend_order: 0
1204
1205 layers:
1206     # Map overlays for styling the server response (using special source layer names) for route line, current location, and search result pins
1207     mz_route_line:
1208         data: { source: mz_route_line }
1209         draw:
1210             ux-route-line-overlay:
1211                 color: '#06a6d4'
1212                 order: 500
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]]
1214     mz_route_line_dash:
1215         data: { source: mz_dash_line }
1216         draw:
1217             ux-route-line-dash-overlay:
1218                 color: '#06a6d4'
1219                 order: 500
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 }
1223         draw:
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'; }
1229                 order: 500
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]]
1231
1232
1233     mz_current_location_gem:
1234         data: { source: mz_current_location }
1235         draw:
1236             ux-location-gem-overlay:
1237                 interactive: true
1238                 sprite: ux-current-location
1239                 size: 36px
1240                 collide: false
1241                 transition:
1242                     [show, hide]:
1243                         time: 0s
1244     mz_route_location:
1245         data: { source: mz_route_location }
1246         draw:
1247             ux-location-gem-overlay:
1248                 interactive: true
1249                 sprite: ux-route-arrow
1250                 size: [60px,60px]
1251                 collide: false
1252                 transition:
1253                     [show, hide]:
1254                         time: 0s
1255     mz_route_start:
1256         data: { source: mz_route_start }
1257         draw:
1258             ux-icons-overlay:
1259                 interactive: true
1260                 priority: 1
1261                 sprite: ux-route-start
1262                 size: [36px,46px]
1263                 collide: false
1264                 anchor: top
1265                 transition:
1266                     [show, hide]:
1267                         time: 0s
1268     mz_route_destination:
1269         data: { source: mz_route_destination }
1270         draw:
1271             ux-icons-overlay:
1272                 interactive: true
1273                 priority: 1
1274                 sprite: ux-route-stop
1275                 size: [36px,46px]
1276                 collide: false
1277                 anchor: top
1278                 transition:
1279                     [show, hide]:
1280                         time: 0s
1281     mz_route_transit_stop:
1282         data: { source: mz_route_transit_stop }
1283         draw:
1284             ux-icons-overlay:
1285                 interactive: true
1286                 sprite: ux-transit-stop
1287                 size: [15px,15px]
1288                 collide: false
1289                 transition:
1290                     [show, hide]:
1291                          time: 0s
1292     mz_search_result:
1293         data: { source: mz_search_result }
1294         draw:
1295             ux-icons-overlay:
1296                 interactive: true
1297                 sprite: ux-search-active
1298                 size: [36px,54px]
1299                 collide: false
1300                 anchor: top
1301                 transition:
1302                     [show, hide]:
1303                         time: 0s
1304         inactive:
1305             filter: { state: inactive }
1306             draw:
1307                 ux-icons-overlay:
1308                     sprite: ux-search-inactive
1309     mz_dropped_pin:
1310         data: { source: mz_dropped_pin }
1311         draw:
1312             ux-icons-overlay:
1313                 interactive: true
1314                 sprite: ux-search-active
1315                 size: [36px,54px]
1316                 collide: false
1317                 anchor: top
1318                 transition:
1319                     [show, hide]:
1320                         time: 0s
1321
1322     # Used by the SDK to place point, line, and polygon overlays on the map
1323     mz_default_point:
1324         data: { source: mz_default_point }
1325         draw:
1326             sdk-point-overlay:
1327                 interactive: true
1328                 sprite: ux-search-active
1329                 size: [36px,54px]
1330                 collide: false
1331                 anchor: top
1332                 transition:
1333                     [show, hide]:
1334                         time: 0s
1335     mz_default_line:
1336         data: { source: mz_default_line }
1337         draw:
1338             sdk-line-overlay:
1339                 color: '#06a6d4'
1340                 order: 503
1341                 width: 3px
1342     mz_default_polygon:
1343         data: { source: mz_default_polygon }
1344         draw:
1345             sdk-polygon-overlay:
1346                 color: [0.02,0.65,0.82,0.5]  #'#06b1e2'
1347                 order: 501
1348             sdk-line-overlay:
1349                 color: '#06a6d4'
1350                 order: 502
1351                 width: 0px
1352
1353     # Basemap styling
1354     earth:
1355         data: { source: mapzen}
1356         draw:
1357             terrain:
1358                 order: function() { return feature.sort_rank; }
1359                 color: [1.0, 1.0, 1.0]
1360
1361     water:
1362         data: { source: mapzen, layer: water }
1363         draw:
1364             polygons:
1365                 #interactive: true
1366                 order: function() { return feature.sort_rank; }
1367                 #color: [0.608,0.925,0.965]
1368         later:
1369             filter: { $zoom: { min: 12 } }
1370             draw:
1371                 polygons:
1372                     order: function() { return feature.sort_rank + 1; }
1373                     #color: [0.608,0.925,0.965]
1374
1375         lakes:
1376             filter:
1377                 all:
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
1380                 any:
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 } }
1398             draw:
1399                 polygons:
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
1403         playas:
1404             filter: { kind: playa, $zoom: {min: 6} }
1405             draw:
1406                 dashedline:
1407                     order: function() { return feature.sort_rank; }
1408                     color: grey
1409                     width: 1px
1410                 polygons_transparent:
1411                     color: [0.85,0.85,0.85, 0.5]
1412         other-water-areas:
1413             filter: { not: { kind: [ocean, lake, water, reservoir, playa] }, $zoom: { min: 11 }, area: { min: 100 } }
1414             draw:
1415                 polygons:
1416                     color: [0.432,0.890,0.960]
1417         swimming_pool:
1418             filter: { kind: swimming_pool }
1419             draw:
1420                 polygons:
1421                     color: [0.432,0.890,0.960]
1422         water-boundary-ocean-early:
1423             filter: { boundary: true, kind: ocean, $zoom: {min: 1, max: 17} }
1424             draw:
1425                 lines:
1426                     order: function() { return feature.sort_rank; }
1427                     color: [0.431,0.806,0.914]
1428                     width: 1px
1429                     join: round
1430         water-boundary-ocean-late:
1431             filter: { boundary: true, kind: ocean, $zoom: {min: 17} }
1432             draw:
1433                 lines:
1434                     order: function() { return feature.sort_rank; }
1435                     color: [0.431,0.806,0.914]
1436                     width: 1px
1437                     join: round
1438         water_boundaries-not-ocean:
1439             # filter: { boundary: true, not: { kind: [ocean,playa] }, $zoom: { min: 8 } }
1440             filter:
1441                 all:
1442                     - boundary: true
1443                     - not: { kind: [ocean,playa] }
1444                     - $zoom: { min: 8}
1445                 # WARNING: any area filters here must match the area filters in the lakes layer
1446                 any:
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 } }
1464             draw:
1465                 lines:
1466                     order: function() { return feature.sort_rank; }
1467                     # color: [0.625,0.806,0.822]
1468                     color: [0.431,0.806,0.914]
1469                     width: 1px
1470                     join: round
1471             early:
1472                 filter: { $zoom: { min: 14 } }
1473                 draw:
1474                     lines:
1475                         order: 241
1476             swimming-pools-early:
1477                 filter: { kind: swimming_pool, $zoom: { max: 19 } }
1478                 draw:
1479                     lines:
1480                         visible: false
1481             riverbank:
1482                 # river boundaries like the thames in london, la seine in paris
1483                 filter: { kind: riverbank }
1484                 draw:
1485                     lines:
1486                         color: [0.431,0.806,0.914]
1487                         width: 1px
1488         river:
1489             #river center lines, not boundaries for polygons
1490             filter: { kind: [river,canal,stream,dam,ditch,drain], $zoom: { min: 11 }, not: { is_tunnel: true } }
1491             draw:
1492                 lines:
1493                     order: function() { return feature.sort_rank; }
1494                     interactive: true
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]]
1500                     cap: round
1501                     outline:
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]]
1504             not-river-early:
1505                 filter: { $zoom: [11,12], not: { kind: river } }
1506                 draw:
1507                     lines:
1508                         width: [[11,0px], [12,0.6px]]
1509             intermittent:
1510                 filter:
1511                     any:
1512                         - intermittent: true
1513                         - kind: drain
1514                 draw:
1515                     lines:
1516                         visible: false
1517                     dots-lines:
1518                         interactive: 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]]
1522
1523     water-line-labels:
1524         data: { source: mapzen, layer: [water] }
1525         visible: *text_visible_water_labels
1526         filter:
1527             all:
1528                 - name: true
1529                 - $geometry: line
1530                 - kind: [river,canal,stream,dam,ditch,drain]
1531                 - $zoom: { min: 11 }
1532         draw:
1533             text-blend-order:
1534                 font:
1535                     fill: *text_fill_water
1536                     family: *text_font_family
1537                     style: italic
1538                     weight: 400
1539                     size: [[12,11px],[13,12px]]
1540         water-line-labels-z17:
1541             filter: { $zoom: [17] }
1542             draw:
1543                 text-blend-order: { font: { size: 14px } }
1544         not-river-not-stream:
1545             filter: { kind: [canal,dam,ditch,drain], $zoom: { max: 14 } }
1546             draw:
1547                 text-blend-order:
1548                     visible: false
1549         stream:
1550             filter: { kind: [stream], $zoom: { max: 14 } }
1551             draw:
1552                 text-blend-order:
1553                     visible: false
1554
1555     subway-light-rail:
1556         data: { source: mapzen, layer: transit }
1557         filter: { not: { kind: [platform] }, $zoom: { min: 14 } }
1558         draw:
1559             lines:
1560                 interactive: true
1561                 order: function() { return feature.sort_rank || 275; }
1562         railway:
1563             filter: { kind: [railway,train] }
1564             draw:
1565                 lines:
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]]
1568         subway:
1569             filter: { kind: subway }
1570             draw:
1571                 lines:
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]]
1574         light_rail:
1575             filter: { kind: [light_rail,tram], $zoom: { min: 15 } }
1576             draw:
1577                 lines:
1578                     order: 415
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]]
1581
1582     railway-late:
1583         data: { source: mapzen, layer: roads }
1584         filter: { kind: rail, not: { railway: [subway,light_rail,tram] } }
1585         draw:
1586             lines:
1587                 interactive: true
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]]
1591         service:
1592             filter: { service: true }
1593             draw:
1594                 lines:
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]]
1597         z-order:
1598             #filter: { $zoom: {min: 12} }
1599             draw:
1600                 lines:
1601                     # let roads sort themselves past zoom 14
1602                     order: function() { return feature.sort_rank; }
1603                     # but give them all the same outline
1604                     outline:
1605                         order: 354
1606
1607             bridges-tunnels:
1608                 filter: { any: [is_bridge: true, is_tunnel: true] }
1609                 draw:
1610                     lines:
1611                         outline:
1612                             # except bridges and tunnels, their outlines should also self-sort
1613                             order: function() { return feature.sort_rank || 305; }
1614
1615     roads:
1616         data: { source: mapzen, layer: roads }
1617         filter: { not: { kind: rail } }
1618         draw:
1619             lines:
1620                 interactive: true
1621                 #color: black
1622                 width: 1px
1623                 order: function() { return feature.sort_rank; }
1624                 # but give them all the same outline
1625                 outline:
1626                     order: 352
1627             text-blend-order:
1628                 visible: false    # labels are enabled by each layer below
1629                 font:
1630                     family: *text_font_family
1631                     weight: 500
1632                     fill: *text_fill
1633
1634         early:
1635             filter: { $zoom: { max: 15 } }
1636             draw:
1637                 lines:
1638                     outline:
1639                         order: function() { return feature.sort_rank; }
1640         bridges-tunnels:
1641             filter: { any: [is_bridge: true, is_tunnel: true] }
1642             draw:
1643                 lines:
1644                     #cap: butt
1645                     outline:
1646                         # except bridges and tunnels, their outlines should also self-sort
1647                         order: function() { return feature.sort_rank; }
1648
1649         # default outlines starting at zoom 16
1650         default-outline-width:
1651             filter: { $zoom: { min: 16 } }
1652             draw:
1653                 lines:
1654                     outline:
1655                         width: function () { return 3/16 * Math.log($zoom); }
1656
1657         natural_earth_highways:
1658             filter: { source: 'naturalearthdata.com' }
1659             draw:
1660                 lines:
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]]
1663                     outline:
1664                         color: *highway_casing1
1665                         width: [[9, 0px], [10, 0px], [12, 1px], [16, 2px]]
1666             major_road:
1667                 filter: { type: ['Secondary Highway','Road'] }
1668                 draw:
1669                     lines:
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]]
1671                         #color: red
1672                         width: [[5, 0.25px], [7, 0.5px], [7, 0.75px], [9, 1px], [10, 9px], [11, 9px], [13, 1px], [16, 2.5px], [19, 6m]]
1673                         outline:
1674                             width: [[8, 0.0px], [9, 0.0px], [11, .5px], [16, .75px]]
1675             minor_road:
1676                 filter: { type: 'Unknown' }
1677                 draw:
1678                     lines:
1679                         color: [[12, *minor_road1], [17, *minor_road2]]
1680                         width: [[12, 1.0px], [14, 1.5px], [15, 3px], [16, 5m]]
1681                         # outline:
1682                         #     width: [[12, 0px], [14, .5px], [17, 1px]]
1683             ferry:
1684                 filter: { kind: Ferry }
1685                 draw:
1686                     lines:
1687                         color: *ferry1
1688                         width: [[12, 0.5px], [13, 0.75px], [15, 1.0px]]
1689                         outline:
1690                             width: 0px
1691         highway:
1692             filter: { kind: highway }
1693             draw:
1694                 lines:
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]]
1697                     outline:
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]]
1700                 #dashedTunnel:
1701                 #    width: [[8, 1px], [12, 1.25px], [13, 1.5px], [14, 0px], [15, 1px], [16, 5px], [17, 10px], [18, 10m]]
1702             link:
1703                 filter: { is_link: true } # on- and off-ramps, etc
1704                 draw:
1705                     lines:
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]]
1709                         outline:
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]]
1712                 early_link:
1713                     filter: { $zoom: {min: 13, max: 15} }
1714                     draw:
1715                         lines:
1716                             order: 352
1717                 tunnel-link:
1718                     filter: {is_tunnel: true, $zoom: {min: 13} }
1719                     draw:
1720                         lines:
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]]]
1722                             outline:
1723                                 color: [0.900,0.900,0.900]
1724             tunnel:
1725                 filter: {is_tunnel: true, $zoom: {min: 13} }
1726                 draw:
1727                     #dashedTunnel:
1728                     #    color: blue
1729                     #    order: function() { return (feature.sort_rank - 1); }
1730                     lines:
1731                         #visible: false
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]]]
1733                         outline:
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]]]
1735             highway_bridge:
1736                 filter: {is_bridge: true}
1737                 draw:
1738                     lines:
1739                         cap: round
1740                         outline:
1741                             cap: butt
1742             # labels-highway-early:
1743             #     filter: { $zoom: [7,8,9] }
1744             #     draw:
1745             #         text-blend-order:
1746             #             priority: 50
1747             #             visible: *text_visible_shields
1748             #             text_source: ref
1749             #             font:
1750             #                 fill: [0.408,0.427,0.459]
1751             #                 weight: 400
1752             #                 size: 9px
1753             #                 stroke: { color: [0.898,0.906,0.910], width: 4 }
1754             # labels-highway-z10:
1755             #     filter:
1756             #         $zoom: 10
1757             #     draw:
1758             #         text-blend-order:
1759             #             visible: *text_visible_shields
1760             #             text_source: ref
1761             #             font:
1762             #                 fill: [0.408,0.427,0.459]
1763             #                 weight: 400
1764             #                 size: 9px
1765             #                 stroke: { color: [0.898,0.906,0.910], width: 4 }
1766             # labels-highway-z11:
1767             #     filter:
1768             #         $zoom: 11
1769             #     draw:
1770             #         text-blend-order:
1771             #             visible: *text_visible_shields
1772             #             text_source: ref
1773             #             font:
1774             #                 fill: [0.408,0.427,0.459]
1775             #                 weight: 600
1776             #                 size: 10px
1777             #                 stroke: { color: [0.898,0.906,0.910], width: 4 }
1778             # labels-highway-z12:
1779             #     filter:
1780             #         $zoom: 12
1781             #     draw:
1782             #         text-blend-order:
1783             #             visible: *text_visible_shields
1784             #             text_source: ref
1785             #             font:
1786             #                 fill: [0.408,0.427,0.459]
1787             #                 weight: 600
1788             #                 size: 10px
1789             #                 stroke: { color: [0.898,0.906,0.910], width: 4 }
1790             labels-highway-z13:
1791                 filter:
1792                     $zoom: 13
1793                 draw:
1794                     text-blend-order:
1795                         priority: 50
1796                         visible: *text_visible_highway
1797                         #text_source: ref
1798                         #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1799                         font:
1800                             fill: [0.408,0.427,0.459]
1801                             weight: 600
1802                             size: 11px
1803                             stroke: { color: [0.898,0.906,0.910], width: 4 }
1804             labels-highway-z14:
1805                 filter:
1806                     $zoom: 14
1807                 draw:
1808                     text-blend-order:
1809                         priority: 50
1810                         visible: *text_visible_highway
1811                         #text_source: ref
1812                         #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1813                         font:
1814                             fill: [0.408,0.427,0.459]
1815                             weight: 600
1816                             size: 11px
1817                             stroke: { color: [0.898,0.906,0.910], width: 4 }
1818             labels-highway-z15:
1819                 filter:
1820                     $zoom: 15
1821                 draw:
1822                     text-blend-order:
1823                         visible: *text_visible_highway
1824                         font:
1825                             fill: [1.0,1.0,1.0]
1826                             weight: 600
1827                             size: 12px
1828                             stroke: { color: [0.408,0.427,0.459], width: 4 }
1829             labels-highway-z16:
1830                 filter: { $zoom: { min: 16, max: 18 } }
1831                 draw:
1832                     text-blend-order:
1833                         priority: 50
1834                         visible: *text_visible_highway
1835                         font:
1836                             fill: [1.0,1.0,1.0]
1837                             weight: 600
1838                             size: 13px
1839                             stroke: { color: [0.408,0.427,0.459], width: 4 }
1840             labels-highway-z17:
1841                 filter: { $zoom: { min: 17 } }
1842                 draw:
1843                     text-blend-order:
1844                         priority: 50
1845                         visible: *text_visible_highway
1846                         font:
1847                             fill: [0.408,0.427,0.459]
1848                             weight: 600
1849                             size: 15px
1850                             stroke: { color: [1.000,1.000,1.000], width: 4 }
1851             labels-highway-z18:
1852                 filter: { $zoom: { min: 18 } }
1853                 draw:
1854                     text-blend-order:
1855                         priority: 50
1856                         visible: *text_visible_highway
1857                         font:
1858                             fill: [0.408,0.427,0.459]
1859                             weight: 600
1860                             size: 16px
1861                             stroke: { color: [1.000,1.000,1.000], width: 4 }
1862             labels-highway-z19:
1863                 filter: { $zoom: { min: 19 } }
1864                 draw:
1865                     text-blend-order:
1866                         priority: 50
1867                         visible: *text_visible_highway
1868                         font:
1869                             fill: [0.408,0.427,0.459]
1870                             weight: 600
1871                             size: 16px
1872                             stroke: { color: [1.000,1.000,1.000], width: 4 }
1873
1874         major_road:
1875             filter: { kind: major_road }
1876             # default style
1877             draw:
1878                 lines:
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]]
1881                     outline:
1882                         width: [[12, 0px], [13, .5px], [15, 1px], [17, 2px]]
1883             trunk_primary:
1884                 filter: { kind_detail: [trunk, primary] }
1885                 draw:
1886                     lines:
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]]
1889                         outline:
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]]
1892                 early:
1893                     filter: { $zoom: { max: 16 } }
1894                     draw:
1895                         lines:
1896                             order: 352
1897                             outline:
1898                                 order: function() { return feature.sort_rank + 2; }
1899                     primary:
1900                         filter: { kind: [primary] }
1901                         draw:
1902                             lines:
1903                                 outline:
1904                                     order: function() { return feature.sort_rank + 1; }
1905                 routes:
1906                     filter: { ref: true }
1907                     draw:
1908                         #dashedTunnel:
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]]
1910                         #    outline:
1911                         #        color: green
1912                         #        width: [[8,0px], [13,0px], [14,0.75px], [15,2px], [16, 3px], [17, 4px], [18, 4px]]
1913                         lines:
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]]
1916                             outline:
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]]
1919                     early:
1920                         filter: { $zoom: { max: 16 } }
1921                         draw:
1922                             lines:
1923                                 order: function() { return feature.sort_rank + 2; }
1924                                 outline:
1925                                     order: 353
1926                     primary-route-in-green:
1927                         filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
1928                         draw:
1929                             lines:
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]]
1932                                 outline:
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]]]
1934                     # national-routes:
1935                     #     filter: { network: [US:US, US:I] }
1936                     #     draw:
1937                     #         lines:
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]]
1941                     #             outline:
1942                     #                 color: [1.0,1.0,1.0]
1943                     #                 width: 2px
1944                     tunnel:
1945                         filter: {is_tunnel: true, $zoom: {min: 13} }
1946                         draw:
1947                             #dashedTunnel:
1948                             #    color: blue
1949                             #    order: function() { return (feature.sort_rank - 1); }
1950                             lines:
1951                                 #visible: false
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]]
1953                                 outline:
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] }
1957                         draw:
1958                             text-blend-order:
1959                                 priority: 51
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; } }
1962                                 font:
1963                                     fill: [0.495,0.511,0.532]
1964                                     size: 11px
1965                                     stroke: { color: *text_stroke, width: 3 }
1966                     labels-trunk_primary-route-z15:
1967                         filter: { $zoom: [15] }
1968                         draw:
1969                             text-blend-order:
1970                                 priority: 51
1971                                 visible: *text_visible_trunk_primary
1972                                 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1973                                 font:
1974                                     fill: [0.495,0.511,0.532]
1975                                     weight: 600
1976                                     size: 12px
1977                                     stroke: { color: [0.969,0.973,0.973], width: 3 }
1978                     labels-trunk_primary-route-z16:
1979                         filter: { $zoom: { min: 16 } }
1980                         draw:
1981                             text-blend-order:
1982                                 priority: 51
1983                                 visible: *text_visible_trunk_primary
1984                                 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1985                                 font:
1986                                     fill: [0.495,0.511,0.532]
1987                                     weight: 600
1988                                     size: 13px
1989                                     stroke: { color: [0.969,0.973,0.973], width: 4 }
1990                     labels-trunk_primary-route-z17-z18:
1991                         filter: { $zoom: [17,18] }
1992                         draw:
1993                             text-blend-order:
1994                                 priority: 51
1995                                 visible: *text_visible_trunk_primary
1996                                 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
1997                                 font:
1998                                     fill: [0.495,0.511,0.532]
1999                                     weight: 600
2000                                     size: 13px
2001                                     stroke: { color: [0.969,0.973,0.973], width: 6 }
2002                     labels-trunk_primary-route-z19:
2003                         filter: { $zoom: { min: 19 } }
2004                         draw:
2005                             text-blend-order:
2006                                 priority: 51
2007                                 visible: *text_visible_trunk_primary
2008                                 #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2009                                 font:
2010                                     fill: [0.495,0.511,0.532]
2011                                     weight: 600
2012                                     size: 16px
2013                                     stroke: { color: [0.969,0.973,0.973], width: 6 }
2014                 primary-in-green:
2015                     filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
2016                     draw:
2017                         lines:
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]]
2020                             outline:
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]]
2023                     tunnel:
2024                         filter: {is_tunnel: true, $zoom: {min: 13} }
2025                         draw:
2026                             lines:
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]]]
2028                                 outline:
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]]
2031                     # golf_course:
2032                     #     filter: { landuse_kind: golf_course }
2033                     #     draw:
2034                     #         lines:
2035                     #             outline:
2036                     #                 color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2037                     # zoo:
2038                     #     filter: { landuse_kind: zoo }
2039                     #     draw:
2040                     #         lines:
2041                     #             outline:
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:
2044                     filter:
2045                         $zoom: [11]
2046                     draw:
2047                         text-blend-order:
2048                             priority: 51
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; } }
2051                             font:
2052                                 fill: [0.495,0.511,0.532]
2053                                 size: 9px
2054                                 stroke: { color: *text_stroke, width: 2 }
2055                 labels-trunk_primary-z12:
2056                     filter:
2057                         $zoom: [12]
2058                     draw:
2059                         text-blend-order:
2060                             priority: 51
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; } }
2063                             font:
2064                                 fill: [0.495,0.511,0.532]
2065                                 size: 10px
2066                                 stroke: { color: *text_stroke, width: 3 }
2067                 labels-trunk_primary-z13:
2068                     filter:
2069                         $zoom: [13]
2070                     draw:
2071                         text-blend-order:
2072                             priority: 51
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; } }
2075                             font:
2076                                 fill: [0.495,0.511,0.532]
2077                                 size: 11px
2078                                 stroke: { color: *text_stroke, width: 3 }
2079                 labels-trunk_primary-z14:
2080                     filter:
2081                         $zoom: [14]
2082                     draw:
2083                         text-blend-order:
2084                             priority: 51
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; } }
2087                             font:
2088                                 fill: [0.495,0.511,0.532]
2089                                 size: 11px
2090                                 stroke: { color: *text_stroke, width: 4 }
2091                 labels-trunk_primary-z15:
2092                     filter: { $zoom: [15] }
2093                     draw:
2094                         text-blend-order:
2095                             priority: 51
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; } }
2098                             font:
2099                                 fill: [0.495,0.511,0.532]
2100                                 size: 12px
2101                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2102                 labels-trunk_primary-z16:
2103                     filter: { $zoom: [16] }
2104                     draw:
2105                         text-blend-order:
2106                             priority: 51
2107                             visible: *text_visible_trunk_primary
2108                             #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2109                             font:
2110                                 fill: [0.495,0.511,0.532]
2111                                 weight: 600
2112                                 size: 13px
2113                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2114                 labels-trunk_primary-z17:
2115                     filter: { $zoom: [17] }
2116                     draw:
2117                         text-blend-order:
2118                             priority: 51
2119                             visible: *text_visible_trunk_primary
2120                             #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2121                             font:
2122                                 fill: [0.495,0.511,0.532]
2123                                 weight: 600
2124                                 size: 13px
2125                                 stroke: { color: [0.969,0.973,0.973], width: 6 }
2126                 labels-trunk_primary-z18:
2127                     filter: { $zoom: { min: 18 } }
2128                     draw:
2129                         text-blend-order:
2130                             priority: 51
2131                             visible: *text_visible_trunk_primary
2132                             #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2133                             font:
2134                                 fill: [0.495,0.511,0.532]
2135                                 weight: 600
2136                                 size: [[18,13px],[19,16px]]
2137                                 stroke: { color: [0.969,0.973,0.973], width: 6 }
2138             link:
2139                 filter: { is_link: true } # on- and off-ramps, etc
2140                 draw:
2141                     lines:
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]]
2144                         outline:
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]]
2147             tunnel:
2148                 filter: {is_tunnel: true, $zoom: {min: 13} }
2149                 draw:
2150                     lines:
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]]]
2152                         outline:
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]]
2155             secondary:
2156                 filter: { kind_detail: secondary }
2157                 draw:
2158                     lines:
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]]
2161                         outline:
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]]
2164                 early:
2165                     filter: { $zoom: { max: 16 } }
2166                     draw:
2167                         lines:
2168                             order: 352
2169                             outline:
2170                                 order: 353 #function() { return feature.sort_rank + 2; }
2171                 routes:
2172                     filter: { ref: true, $zoom: { min: 10} }
2173                     draw:
2174                         lines:
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]]
2177                             outline:
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]]
2180                     early:
2181                         filter: { $zoom: { max: 15 } }
2182                         draw:
2183                             lines:
2184                                 order: function() { return feature.sort_rank + 2; }
2185                                 outline:
2186                                     order: 353
2187                     secondary-route-in-green:
2188                         filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
2189                         draw:
2190                             lines:
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]]
2193                                 outline:
2194                                     width: [[10,0.5px], [14,0.5px], [15,0.65px], [16,1.5px], [17, 2px], [18, 4px]]
2195                     tunnel:
2196                         filter: {is_tunnel: true, $zoom: {min: 13} }
2197                         draw:
2198                             lines:
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]]]
2200                                 outline:
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] }
2205                         draw:
2206                             text-blend-order:
2207                                 priority: 56
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; } }
2210                                 font:
2211                                     fill: [0.536,0.556,0.581]
2212                                     size: 11px
2213                                     stroke: { color: *text_stroke, width: 4 }
2214                     labels-secondary-routes-z14:
2215                         filter: { $zoom: [14] }
2216                         draw:
2217                             text-blend-order:
2218                                 priority: 56
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; } }
2221                                 font:
2222                                     fill: [0.536,0.556,0.581]
2223                                     size: 11px
2224                                     stroke: { color: *text_stroke, width: 4 }
2225                     labels-secondary-routes-z15:
2226                         filter: { $zoom: { min: 15 } }
2227                         draw:
2228                             text-blend-order:
2229                                 priority: 56
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; } }
2232                                 font:
2233                                     fill: [0.536,0.556,0.581]
2234                                     weight: 600
2235                                     size: 11px
2236                                     stroke: { color: *text_stroke, width: 4 }
2237                     labels-secondary-routes-z16:
2238                         filter: { $zoom: { min: 16 } }
2239                         draw:
2240                             text-blend-order:
2241                                 priority: 56
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; } }
2244                                 font:
2245                                     fill: [0.536,0.556,0.581]
2246                                     weight: 600
2247                                     size: 12px
2248                                     stroke: { color: [0.969,0.973,0.973], width: 4 }
2249                 secondary-in-green:
2250                     filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
2251                     draw:
2252                         lines:
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]]]
2254                             outline:
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 } }
2258                         draw:
2259                             text-blend-order:
2260                                 priority: 56
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; } }
2263                                 font:
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 } }
2268                         draw:
2269                             text-blend-order:
2270                                 priority: 56
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; } }
2273                                 font:
2274                                     fill: [0.536,0.556,0.581]
2275                                     stroke: { color: [1.00,1.00,1.00], width: 4 }
2276                     # golf_course:
2277                     #     filter: { landuse_kind: golf_course }
2278                     #     draw:
2279                     #         lines:
2280                     #             outline:
2281                     #                 color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2282                     # zoo:
2283                     #     filter: { landuse_kind: zoo }
2284                     #     draw:
2285                     #         lines:
2286                     #             outline:
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:
2289                     filter:
2290                         $zoom: [13]
2291                     draw:
2292                         text-blend-order:
2293                             priority: 56
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; } }
2296                             font:
2297                                 fill: [0.536,0.556,0.581]
2298                                 size: 9px
2299                                 stroke: { color: *text_stroke, width: 4 }
2300                 labels-secondary-z14:
2301                     filter:
2302                         $zoom: [14]
2303                     draw:
2304                         text-blend-order:
2305                             priority: 56
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; } }
2308                             font:
2309                                 fill: [0.536,0.556,0.581]
2310                                 size: 9px
2311                                 stroke: { color: *text_stroke, width: 4 }
2312                 labels-secondary-z15:
2313                     filter:
2314                         $zoom: [15]
2315                     draw:
2316                         text-blend-order:
2317                             priority: 56
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; } }
2320                             font:
2321                                 fill: [0.536,0.556,0.581]
2322                                 size: 10px
2323                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2324                 labels-secondary-z16:
2325                     filter: { $zoom: { min: 16, max: 18 } }
2326                     draw:
2327                         text-blend-order:
2328                             priority: 56
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; } }
2331                             font:
2332                                 fill: [0.536,0.556,0.581]
2333                                 size: 12px
2334                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2335                 labels-secondary-z17:
2336                     filter: { $zoom: { min: 17 } }
2337                     draw:
2338                         text-blend-order:
2339                             priority: 56
2340                             visible: *text_visible_secondary
2341                             #text_source: ref
2342                             #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
2343                             font:
2344                                 fill: [0.536,0.556,0.581]
2345                                 size: 13px
2346                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2347             tertiary:
2348                 filter: { kind_detail: [tertiary, tertiary_link] }
2349                 draw:
2350                     lines:
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]]
2353                         outline:
2354                             color: [0.529,0.556,0.592]
2355                             width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
2356                 early:
2357                     filter: { $zoom: { max: 15 } }
2358                     draw:
2359                         lines:
2360                             order: 352
2361                             outline:
2362                                 order: function() { return feature.sort_rank + 3; }
2363                 routes:
2364                     filter: { ref: true, $zoom: { min: 12} }
2365                     draw:
2366                         lines:
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]]
2369                             outline:
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]]
2372                     early:
2373                         filter: { $zoom: { max: 15 } }
2374                         draw:
2375                             lines:
2376                                 order: function() { return feature.sort_rank + 3; }
2377                                 outline:
2378                                     order: 353
2379                     tunnel:
2380                         filter: {is_tunnel: true, $zoom: {min: 13} }
2381                         draw:
2382                             lines:
2383                                 color: *major_tunnel1
2384                                 outline:
2385                                     color: *major_tunnel_casing1
2386                 link:
2387                     filter: { is_link: true } # on- and off-ramps, etc
2388                     draw:
2389                         lines:
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]]
2392                             outline:
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]]
2395                 tertiary-in-green:
2396                     filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield,forest] }
2397                     draw:
2398                         lines:
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]]
2401                             outline:
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]]
2404                     green-routes:
2405                         filter: { ref: true, $zoom: { min: 12} }
2406                         draw:
2407                             lines:
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 } }
2411                         draw:
2412                             text-blend-order:
2413                                 priority: 57
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; } }
2416                                 font:
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 } }
2421                         draw:
2422                             text-blend-order:
2423                                 priority: 57
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; } }
2426                                 font:
2427                                     fill: [0.536,0.556,0.581]
2428                                     stroke: { color: [1.00,1.00,1.00], width: 4 }
2429                     # golf_course:
2430                     #     filter: { landuse_kind: golf_course }
2431                     #     draw:
2432                     #         lines:
2433                     #             outline:
2434                     #                 color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
2435                     # zoo:
2436                     #     filter: { landuse_kind: zoo }
2437                     #     draw:
2438                     #         lines:
2439                     #             outline:
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] }
2443                     draw:
2444                         text-blend-order:
2445                             priority: 57
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; } }
2448                             font:
2449                                 fill: [0.536,0.556,0.581]
2450                                 size: 9px
2451                                 stroke: { color: *text_stroke, width: 4 }
2452                 labels-tertiary-z14:
2453                     filter: { $zoom: [14] }
2454                     draw:
2455                         text-blend-order:
2456                             priority: 57
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; } }
2459                             font:
2460                                 fill: [0.536,0.556,0.581]
2461                                 size: 9px
2462                                 stroke: { color: *text_stroke, width: 4 }
2463                 labels-tertiary-z15:
2464                     filter: { $zoom: [15] }
2465                     draw:
2466                         text-blend-order:
2467                             priority: 57
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; } }
2470                             font:
2471                                 fill: [0.536,0.556,0.581]
2472                                 size: 10px
2473                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2474                 labels-tertiary-z16:
2475                     filter: { $zoom: [16] }
2476                     draw:
2477                         text-blend-order:
2478                             priority: 57
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; } }
2481                             font:
2482                                 fill: [0.536,0.556,0.581]
2483                                 size: 12px
2484                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2485                 labels-tertiary-z17:
2486                     filter: { $zoom: { min: 17, max: 18 } }
2487                     draw:
2488                         text-blend-order:
2489                             priority: 57
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; } }
2492                             font:
2493                                 fill: [0.536,0.556,0.581]
2494                                 size: 13px
2495                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2496                 labels-tertiary-z18:
2497                     filter: { $zoom: { min: 18 } }
2498                     draw:
2499                         text-blend-order:
2500                             priority: 57
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; } }
2503                             font:
2504                                 fill: [0.536,0.556,0.581]
2505                                 size: 13px
2506                                 stroke: { color: [0.969,0.973,0.973], width: 4 }
2507         minor_road:
2508             filter: { kind: minor_road, not: { kind_detail: service } }
2509             draw:
2510                 lines:
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]]
2513                     outline:
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]]
2516             early:
2517                 filter: { $zoom: { max: 16 } }
2518                 draw:
2519                     lines:
2520                         order: 350
2521                         outline:
2522                             order: 351
2523             motor_vehicle_no:
2524                 filter: { kind_detail: unclassified, motor_vehicle: no }
2525                 draw:
2526                     lines:
2527                         visible: false
2528
2529             # Is this junk code?
2530             round:
2531                 filter: { $zoom: { min: 17 } }
2532                 draw:
2533                     lines:
2534                         cap: round
2535                         join: round
2536
2537             minor-in-green:
2538                 filter: { landuse_kind: [park,protected_area,nature_reserve,conservation,golf_course,garden,wood,farmland,farm,national_park,protected_area,battlefield] }
2539                 draw:
2540                     lines:
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]]]
2542                         outline:
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 } }
2546                     draw:
2547                         text-blend-order:
2548                             priority: 59
2549                             visible: *text_visible_minor_road_e
2550                             text_source: name
2551                             font:
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 } }
2556                     draw:
2557                         text-blend-order:
2558                             priority: 59
2559                             visible: *text_visible_minor_road_e
2560                             text_source: name
2561                             font:
2562                                 fill: [0.536,0.556,0.581]
2563                                 stroke: { color: [1.00,1.00,1.00], width: 4 }
2564             #     golf_course:
2565             #         filter: { landuse_kind: golf_course }
2566             #         draw:
2567             #             lines:
2568             #                 outline:
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]]]
2570             #     zoo:
2571             #         filter: { landuse_kind: zoo }
2572             #         draw:
2573             #             lines:
2574             #                 outline:
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]]]
2576             # in_university:
2577             #     filter: { landuse_kind: university }
2578             #     draw:
2579             #         lines:
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]]]
2581             #             outline:
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]]
2584             # in_hospital:
2585             #     filter: { landuse_kind: hospital }
2586             #     draw:
2587             #         lines:
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]]]
2589             #             outline:
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]]
2592
2593             tunnel:
2594                 filter: {is_tunnel: true, $zoom: {min: 13} }
2595                 draw:
2596                     lines:
2597                         color: *minor_tunnel1
2598                         outline:
2599                             color: *minor_tunnel_casing1
2600             minor_road_bridge:
2601                 filter: { is_bridge: true }
2602                 draw:
2603                     lines:
2604                         cap: round
2605                         outline:
2606                             cap: butt
2607             labels-minor_road-z15:
2608                 filter: { $zoom: 15 }
2609                 draw:
2610                     text-blend-order:
2611                         priority: 59
2612                         visible: *text_visible_minor_road_e
2613                         text_source: name
2614                         font:
2615                             fill: [0.536,0.556,0.581]
2616                             size: 9px
2617                             stroke: { color: *text_stroke, width: 4 }
2618             labels-minor_road-z16:
2619                 filter: { $zoom: 16 }
2620                 draw:
2621                     text-blend-order:
2622                         priority: 59
2623                         visible: *text_visible_minor_road_e
2624                         text_source: name
2625                         font:
2626                             fill: [0.536,0.556,0.581]
2627                             size: 12px
2628                             stroke: { color: *text_stroke, width: 4 }
2629             labels-minor_road-z17:
2630                 filter: { $zoom: { min: 17, max: 18 } }
2631                 draw:
2632                     text-blend-order:
2633                         priority: 59
2634                         visible: *text_visible_minor_road_e
2635                         text_source: name
2636                         font:
2637                             fill: [0.40,0.40,0.40]
2638                             size: 12px
2639                             stroke: { color: [0.969,0.973,0.973], width: 4 }
2640             labels-minor_road-z18:
2641                 filter: { $zoom: { min: 18 } }
2642                 draw:
2643                     text-blend-order:
2644                         priority: 59
2645                         visible: *text_visible_minor_road
2646                         text_source: name
2647                         font:
2648                             fill: [0.40,0.40,0.40]
2649                             size: 13px
2650                             stroke: { color: [0.969,0.973,0.973], width: 4 }
2651         service_road:
2652             filter: { kind: minor_road, kind_detail: service }
2653             draw:
2654                 lines:
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]]
2657                     outline:
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]]
2660             service-in-green:
2661                 filter: { landuse_kind: [park,protected_area,nature_reserve,conservation,golf_course,garden,wood,farmland,farm,national_park,battlefield] }
2662                 draw:
2663                     lines:
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]]]
2665                         outline:
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:
2668                     draw:
2669                         text-blend-order:
2670                             priority: 60
2671                             visible: *text_visible_service_road
2672                             text_source: name
2673                             font:
2674                                 fill: [0.536,0.556,0.581]
2675                                 stroke: { color: [0.843,0.961,0.914], width: 4 }
2676             #     golf_course:
2677             #         filter: { landuse_kind: golf_course }
2678             #         draw:
2679             #             lines:
2680             #                 outline:
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]]
2683             #     nature_reserve:
2684             #         filter: { landuse_kind: nature_reserve }
2685             #         draw:
2686             #             lines:
2687             #                 outline:
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]]
2690             #     conservation:
2691             #         filter: { landuse_kind: conservation }
2692             #         draw:
2693             #             lines:
2694             #                 outline:
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]]
2697             #     zoo:
2698             #         filter: { landuse_kind: zoo }
2699             #         draw:
2700             #             lines:
2701             #                 outline:
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]]
2704             in_cemetery_garden:
2705                 filter: { landuse_kind: [cemetery,garden] }
2706                 draw:
2707                     lines:
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]]
2710                         outline:
2711                             color: [[14,[0.894,0.906,0.914]], [15,[0.714,0.733,0.760]], [17,[0.714,0.733,0.760]]]
2712             # in_university:
2713             #     filter: { landuse_kind: university }
2714             #     draw:
2715             #         lines:
2716             #             outline:
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]]
2719             # in_hospital:
2720             #     filter: { landuse_kind: hospital }
2721             #     draw:
2722             #         lines:
2723             #             outline:
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 }
2728                 draw:
2729                     text-blend-order:
2730                         priority: 60
2731                         visible: *text_visible_service_road
2732                         text_source: name
2733                         font:
2734                             # need fill color?
2735                             fill: [0.536,0.556,0.581]
2736                             size: 12px
2737                             stroke: { color: [0.969,0.973,0.973], width: 4 }
2738             labels-service_road-z18:
2739                 filter: { $zoom: { min: 18 } }
2740                 draw:
2741                     text-blend-order:
2742                         priority: 60
2743                         visible: *text_visible_service_road
2744                         text_source: name
2745                         font:
2746                             fill: [0.536,0.556,0.581]
2747                             size: 13px
2748                             stroke: { color: [0.969,0.973,0.973], width: 4 }
2749
2750         shields:
2751             filter:
2752                 $zoom: { min: 6 }
2753                 #
2754                 # United State looks great with shield_text alone, but...
2755                 #
2756                 #shield_text: true    # some roads don't have shield text, deal with that later
2757                 #
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
2762                 #
2763                 any:
2764                     - shield_text: true    # some roads don't have shield text, deal with that later
2765                     - all:
2766                         - shield_text: false    # some roads don't have shield text, deal with that later
2767                         - ref: true
2768                         - kind_detail: [motorway, trunk, primary, secondary, tertiary]
2769             # default
2770             draw:
2771                 icons:
2772                     # you need to match any custom shield to the vector tile `network` values
2773                     sprite: |
2774                         function() {
2775                             if( feature.shield_text ) {
2776                                 return ('generic_shield_' + feature.shield_text.length + 'char');
2777                             } else {
2778                                 return ('generic_shield_' + feature.ref.length + 'char');
2779                             }
2780                         }
2781                     sprite_default: generic_shield_5char
2782                     priority: 58
2783                     repeat_group: shields
2784                     repeat_distance: [[8,90px],[10,40px],[13,30px]]
2785                     placement: midpoint
2786                     placement_min_length_ratio:
2787                         - [8, 0.1]
2788                         - [9, 0.25]
2789                         - [10, 0.25]
2790                         - [11, 0.15]
2791                         - [12, 1]
2792                         - [13, 1.50]
2793                         - [14, 2.0]
2794                     cull_from_tile: true
2795                     visible: false
2796                     text:
2797                         offset: [0px, -0.5px]
2798                         repeat_distance: 200px
2799                         anchor: center
2800                         text_source: |
2801                             function() {
2802                                 if( feature.shield_text ) {
2803                                     return feature.shield_text;
2804                                 } else {
2805                                     return feature.ref;
2806                                 }
2807                             }
2808                         font:
2809                             family: Montserrat
2810                             #fill: [0.308,0.308,0.308]
2811                             fill: [0.320,0.320,0.320]
2812                             size: [[7,7px],[12,8px],[16,11px]]
2813
2814             default_priority_highway:
2815                 filter:
2816                     all:
2817                         - kind_detail: motorway
2818                         - $zoom: { min: 9 }
2819                 draw:
2820                     icons:
2821                         priority: 47
2822                         #color: yellow
2823                         visible: *text_visible_shields
2824
2825             default_priority_trunk:
2826                 filter:
2827                     all:
2828                         - kind_detail: [trunk]
2829                         - $zoom: { min: 10 }
2830                 draw:
2831                     icons:
2832                         priority: 48
2833                         #color: red
2834                         visible: *text_visible_shields
2835             default_priority_primary:
2836                 filter:
2837                     all:
2838                         - kind_detail: [primary]
2839                         - $zoom: { min: 12 }
2840                 draw:
2841                     icons:
2842                         priority: 49
2843                         #color: aqua
2844                         visible: *text_visible_shields
2845             default_priority_trunk_secondary:
2846                 filter:
2847                     all:
2848                         - kind_detail: [secondary]
2849                         - $zoom: { min: 12 }
2850                 draw:
2851                     icons:
2852                         priority: 53
2853                         #color: blue
2854                         visible: *text_visible_shields
2855             default_priority_trunk_tertiary:
2856                 filter:
2857                     all:
2858                         - kind_detail: tertiary
2859                         - $zoom: { min: 13 }
2860                 draw:
2861                     icons:
2862                         priority: 55
2863                         #color: green
2864                         visible: *text_visible_shields
2865             # not-special:
2866             #     filter:
2867             #         not: { network: ['US:I','US:US'] }
2868             #         $zoom: { max: 9 }
2869             #     draw:
2870             #         icons:
2871             #             visible: false
2872             width_1char:
2873                 filter: |
2874                     function() {
2875                         if( feature.shield_text ) {
2876                             return (feature.shield_text.length === 1)
2877                         } else {
2878                             return (feature.ref.length === 1)
2879                         }
2880                     }
2881                 draw:
2882                     icons:
2883                         size: [[6,[14px,14px]],[13,[16px,16px]],[16,[18px,18px]]]
2884             width_2char:
2885                 filter: |
2886                     function() {
2887                         if( feature.shield_text ) {
2888                             return (feature.shield_text.length === 2)
2889                         } else {
2890                             return (feature.ref.length === 2)
2891                         }
2892                     }
2893                 draw:
2894                     icons:
2895                         size: [[6,[18px,14px]],[13,[20px,15px]],[16,[24px,18px]]]
2896             width_3char:
2897                 filter: |
2898                     function() {
2899                         if( feature.shield_text ) {
2900                             return (feature.shield_text.length === 3)
2901                         } else {
2902                             return (feature.ref.length === 3)
2903                         }
2904                     }
2905                 draw:
2906                     icons:
2907                         size: [[6,[25px,14px]],[13,[27px,15px]],[16,[33px,18px]]]
2908             width_4char:
2909                 filter: |
2910                     function() {
2911                         if( feature.shield_text ) {
2912                             return (feature.shield_text.length === 4)
2913                         } else {
2914                             return (feature.ref.length === 4)
2915                         }
2916                     }
2917                 draw:
2918                     icons:
2919                         size: [[6,[29px,14px]],[13,[31px,15px]],[16,[38px,18px]]]
2920                 # London sucks
2921                 early:
2922                     filter: { $zoom: { max: 14 } }
2923                     draw:
2924                         icons:
2925                             visible: false
2926             width_5char:
2927                 filter: |
2928                     function() {
2929                         if( feature.shield_text ) {
2930                             return (feature.shield_text.length === 5)
2931                         } else {
2932                             return (feature.ref.length === 5)
2933                         }
2934                     }
2935                 draw:
2936                     icons:
2937                         size: [[6,[34px,14px]],[13,[37px,15px]],[16,[45px,18px]]]
2938                 # London sucks
2939                 early:
2940                     filter: { $zoom: { max: 14 } }
2941                     draw:
2942                         icons:
2943                             visible: false
2944             # this is kinda a hack
2945             width_longggggg:
2946                 filter: |
2947                     function() {
2948                         if( feature.shield_text ) {
2949                             return (feature.shield_text.length > 5)
2950                         } else {
2951                             return (feature.ref.length > 5)
2952                         }
2953                     }
2954                 draw:
2955                     icons:
2956                         visible: false
2957             # missing-route-relations:
2958             #     filter: { shield_text: false }
2959             #     draw:
2960             #         lines:
2961             #             order: 1000
2962             #             color: red
2963             #             width: 2px
2964             #
2965             # Now for the good stuff
2966             #
2967             legit-shields:
2968                 filter: { shield_text: true }
2969                 # draw:
2970                 #     icons:
2971                 #         color: red
2972                 # US Interstate roads
2973                 US-I:
2974                     filter:
2975                         network: 'US:I'
2976                     draw:
2977                         icons:
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'); }
2980                             priority: 46
2981                             visible: *text_visible_shields
2982                             text:
2983                                 offset: [0px, 0.5px]
2984                                 font:
2985                                     fill: [1.0,1.0,1.0]
2986                                     size: [[7,8px],[13,9px],[15,11px]]
2987                     width_1char:
2988                         filter: function() { return (feature.shield_text.length === 1) }
2989                         draw:
2990                             icons:
2991                                 size: [[6,[15px,18px]],[13,[17px,20px]],[15,[22px,25px]]]
2992                     width_2char:
2993                         filter: function() { return (feature.shield_text.length === 2) }
2994                         draw:
2995                             icons:
2996                                 size: [[6,[18px,18px]],[13,[20px,20px]],[15,[25px,25px]]]
2997                     width_3char:
2998                         filter: function() { return (feature.shield_text.length === 3) }
2999                         draw:
3000                             icons:
3001                                 size: [[6,[23px,18px]],[13,[26px,20px]],[15,[33px,25px]]]
3002                     width_4char:
3003                         filter: function() { return (feature.shield_text.length === 4) }
3004                         draw:
3005                             icons:
3006                                 size: [[6,[25px,18px]],[13,[27px,20px]],[15,[35px,25px]]]
3007                     width_5char:
3008                         filter: function() { return (feature.shield_text.length === 5) }
3009                         draw:
3010                             icons:
3011                                 size: [[6,[26px,18px]],[13,[30px,20px]],[15,[38px,25px]]]
3012                 # US Federal Routes
3013                 US-US:
3014                     filter:
3015                         network: ['US:US','US:US:Business', 'US:US:Truck', 'US:US:Alternate']
3016                         $zoom: { min: 7 }
3017                     draw:
3018                         icons:
3019                             # you need to match any custom shield to the vector tile `network` values
3020                             sprite: |
3021                                 function() { return ('US:US_' + feature.shield_text.length + 'char'); }
3022                             priority: 47
3023                             cull_from_tile: true
3024                             visible: *text_visible_shields
3025                             text:
3026                                 offset: [0px, -0.7px]
3027                                 font:
3028                                     fill: [0.0,0.0,0.0]
3029                                     size: [[7,8px],[13,9px],[15,11px]]
3030                     # early:
3031                     #     filter: { $zoom: [7] }
3032                     #     icons:
3033                     #         visible: false
3034                     width_1char:
3035                         filter: function() { return (feature.shield_text.length === 1) }
3036                         draw:
3037                             icons:
3038                                 size: [[6,[15px,17px]],[13,[17px,19px]],[15,[22px,24px]]]
3039                     width_2char:
3040                         filter: function() { return (feature.shield_text.length === 2) }
3041                         draw:
3042                             icons:
3043                                 size: [[6,[18px,17px]],[13,[20px,19px]],[15,[26px,24px]]]
3044                     width_3char:
3045                         filter: function() { return (feature.shield_text.length === 3) }
3046                         draw:
3047                             icons:
3048                                 size: [[6,[22px,17px]],[13,[25px,19px]],[15,[34px,25px]]]
3049                     width_4char:
3050                         filter: function() { return (feature.shield_text.length === 4) }
3051                         draw:
3052                             icons:
3053                                 size: [[6,[25px,17px]],[13,[29px,19px]],[15,[39px,25px]]]
3054                     width_5char:
3055                         filter: function() { return (feature.shield_text.length === 5) }
3056                         draw:
3057                             icons:
3058                                 size: [[6,[27px,17px]],[13,[30px,19px]],[15,[41px,25px]]]
3059                 # US State Routes
3060                 # US-states:
3061                 #     # Match state highways: `US:??`
3062                 #     filter: |
3063                 #         function() {
3064                 #             return feature.shield_text &&
3065                 #                 /^US:(?!US)\w\w$/.test(feature.network)
3066                 #         }
3067                 #     draw:
3068                 #         icons:
3069                 #             # you need to match any custom shield to the vector tile `network` values
3070                 #             priority: 18
3071                 #     early:
3072                 #         filter: { $zoom: [7,8,9] }
3073                 #         icons:
3074                 #             visible: false
3075                 US-CA:
3076                     # Match California state highways: `US:CA`
3077                     filter: |
3078                         function() {
3079                             return feature.shield_text &&
3080                                 /^US:CA$/.test(feature.network)
3081                         }
3082                     draw:
3083                         icons:
3084                             sprite: function() { return (feature.network + '_' + feature.shield_text.length + 'char'); }
3085                             text:
3086                                 offset: [0px, 1px]
3087                                 font:
3088                                     fill: [1.0,1.0,1.0]
3089                                     size: [[7,7px],[13,9px],[15,10px]]
3090                     motorway:
3091                         filter: { kind_detail: [motorway], $zoom: [7,8] }
3092                         draw:
3093                             icons:
3094                                 visible: *text_visible_shields
3095                     trunk:
3096                         filter: { kind_detail: [trunk], $zoom: [8,9] }
3097                         draw:
3098                             icons:
3099                                 visible: *text_visible_shields
3100                     primary:
3101                         filter: { kind_detail: primary, $zoom: [10,11] }
3102                         draw:
3103                             icons:
3104                                 visible: *text_visible_shields
3105                     width_1char:
3106                         filter: function() { return (feature.shield_text.length === 1) }
3107                         draw:
3108                             icons:
3109                                 size: [[6,[14px,16px]],[13,[15px,18px]],[15,[18px,21px]]]
3110                     width_2char:
3111                         filter: function() { return (feature.shield_text.length === 2) }
3112                         draw:
3113                             icons:
3114                                 size: [[6,[18px,18px]],[13,[20px,20px]],[15,[23px,23px]]]
3115                     width_3char:
3116                         filter: function() { return (feature.shield_text.length === 3) }
3117                         draw:
3118                             icons:
3119                                 size: [[6,[21px,18px]],[13,[24px,20px]],[15,[28px,23px]]]
3120                     width_4char:
3121                         filter: function() { return (feature.shield_text.length === 4) }
3122                         draw:
3123                             icons:
3124                                 size: [[6,[24px,18px]],[13,[26px,20px]],[15,[31px,23px]]]
3125                     width_5char:
3126                         filter: function() { return (feature.shield_text.length === 5) }
3127                         draw:
3128                             icons:
3129                                 size: [[6,[25px,18px]],[13,[27px,20px]],[15,[32px,23px]]]
3130                 US-NY:
3131                     # Match New York state highways: `US:NY`
3132                     filter: |
3133                         function() {
3134                             return feature.shield_text &&
3135                                 /^US:NY$/.test(feature.network)
3136                                 /* (/^US:NY$/.test(feature.network) || /^NY:US$/.test(feature.network)) */
3137                         }
3138                     draw:
3139                         icons:
3140                             sprite: |
3141                                 function() { return ( 'US:NY_' + feature.shield_text.length + 'char'); }
3142                             text:
3143                                 # offset: [0px, 1px]
3144                                 font:
3145                                     fill: [0.0,0.0,0.0]
3146                                     size: [[7,7px],[13,9px],[15,10px]]
3147                     width_1char:
3148                         filter: function() { return (feature.shield_text.length === 1) }
3149                         draw:
3150                             icons:
3151                                 size: [[6,[13px,17px]],[13,[15px,19px]],[15,[18px,22px]]]
3152                     width_2char:
3153                         filter: function() { return (feature.shield_text.length === 2) }
3154                         draw:
3155                             icons:
3156                                 size: [[6,[17px,17px]],[13,[19px,19px]],[15,[22px,22px]]]
3157                     width_3char:
3158                         filter: function() { return (feature.shield_text.length === 3) }
3159                         draw:
3160                             icons:
3161                                 size: [[6,[20px,17px]],[13,[22px,19px]],[15,[27px,22px]]]
3162                     width_4char:
3163                         filter: function() { return (feature.shield_text.length === 4) }
3164                         draw:
3165                             icons:
3166                                 size: [[6,[21px,17px]],[13,[24px,19px]],[15,[29px,22px]]]
3167                     width_5char:
3168                         filter: function() { return (feature.shield_text.length === 5) }
3169                         draw:
3170                             icons:
3171                                 size: [[6,[22px,17px]],[13,[25px,19px]],[15,[30px,22px]]]
3172                 US-PA:
3173                     # Match Pennsylvania state highways
3174                     filter: |
3175                         function() {
3176                             return feature.shield_text &&
3177                                 /^US:PA$/.test(feature.network)
3178                         }
3179                     draw:
3180                         icons:
3181                             sprite: |
3182                                 function() { return ( 'US:PA_' + feature.shield_text.length + 'char'); }
3183                             text:
3184                                 offset: [0px, 1px]
3185                                 font:
3186                                     fill: [0.0,0.0,0.0]
3187                                     size: [[7,7px],[13,9px],[15,10px]]
3188                     width_1char:
3189                         filter: function() { return (feature.shield_text.length === 1) }
3190                         draw:
3191                             icons:
3192                                 size: [[6,[13px,17px]],[13,[15px,19px]],[15,[18px,22px]]]
3193                     width_2char:
3194                         filter: function() { return (feature.shield_text.length === 2) }
3195                         draw:
3196                             icons:
3197                                 size: [[6,[17px,17px]],[13,[19px,19px]],[15,[22px,22px]]]
3198                     width_3char:
3199                         filter: function() { return (feature.shield_text.length === 3) }
3200                         draw:
3201                             icons:
3202                                 size: [[6,[21px,17px]],[13,[24px,19px]],[15,[28px,22px]]]
3203                     width_4char:
3204                         filter: function() { return (feature.shield_text.length === 4) }
3205                         draw:
3206                             icons:
3207                                 size: [[6,[22px,17px]],[13,[25px,19px]],[15,[30x,22px]]]
3208                     width_5char:
3209                         filter: function() { return (feature.shield_text.length === 5) }
3210                         draw:
3211                             icons:
3212                                 size: [[6,[24px,17px]],[13,[27px,19px]],[15,[32px,22px]]]
3213                 # USA County Routes
3214                 US-counties:
3215                     # Match state highways: `US:??:*`
3216                     #
3217                     # this is very USA specific
3218                     #
3219                     # filter: |
3220                     #     function() {
3221                     #         return feature.shield_text &&
3222                     #             /^US:(?!US)\w\w:.*$/.test(feature.network)
3223                     #     }
3224                     #
3225                     # this generic for any country with 3rd level networks (like county routes in USA)
3226                     # BEWARE:
3227                     # US:US:Business  about 150
3228                     # US:US:Truck
3229                     # US:US:Alternate
3230     #
3231                     # STATE ROUTE
3232                     # ??:??:Loop  about 200
3233                     # ??:??:Spur  about 200
3234                     # ??:??:Business   about 100
3235     #
3236                     # STATE TEXAS SPECIAL ROUTE
3237                     # US:TX:FM -- probably just state? there are 3k of these
3238                     #
3239                     #
3240                     filter: |
3241                         function() {
3242                             return feature.shield_text &&
3243                                 /^\w+:\w+:(!Alternate).+$/.test(feature.network) &&
3244                                 $zoom > 10
3245                         }
3246                     draw:
3247                         icons:
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'); }
3250                             # priority: 19
3251                             visible: *text_visible_shields
3252                             text:
3253                                 font:
3254                                     fill: [0.320,0.320,0.320]
3255                                     #size: [[11,7px],[15,10px]]
3256                     # early:
3257                     #     filter: { $zoom: { max: 11 } }
3258                     #     draw:
3259                     #         icons:
3260                     #             visible: false
3261                     width_1char:
3262                         filter: function() { return (feature.shield_text.length === 1) }
3263                         draw:
3264                             icons:
3265                                 size: [[6,[14px,14px]],[13,[16px,16px]],[15,[18px,18px]]]
3266                     width_2char:
3267                         filter: function() { return (feature.shield_text.length === 2) }
3268                         draw:
3269                             icons:
3270                                 size: [[6,[16px,14px]],[13,[18px,15px]],[15,[22px,18px]]]
3271                     width_3char:
3272                         filter: function() { return (feature.shield_text.length === 3) }
3273                         draw:
3274                             icons:
3275                                 size: [[6,[20px,14px]],[13,[21px,15px]],[15,[26px,18px]]]
3276                     width_4char:
3277                         filter: function() { return (feature.shield_text.length === 4) }
3278                         draw:
3279                             icons:
3280                                 size: [[6,[25px,14px]],[13,[28px,15px]],[15,[34px,18px]]]
3281                     width_5char:
3282                         filter: function() { return (feature.shield_text.length === 5) }
3283                         draw:
3284                             icons:
3285                                 size: [[6,[30px,14px]],[13,[33px,15px]],[15,[40px,18px]]]
3286         path:
3287             filter:
3288                 all:
3289                     - kind: [path, portage_way]
3290                 not:
3291                     - kind_detail: [footway, steps, track, cycleway]
3292                     - kind_detail: [pier]
3293             draw:
3294                 dashedline:
3295                     order: function() { return feature.sort_rank; }
3296                     interactive: true
3297                     visible: false
3298                     color: [0.350,0.350,0.350]
3299                     width: [[14, 0.35px], [15, 0.5px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
3300                     # outline:
3301                     #     color: [0.790,0.790,0.790]
3302                     #     width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3303             early:
3304                 filter:
3305                     $zoom: { max: 17 }
3306                 draw:
3307                     lines:
3308                         order: 351
3309                         outline:
3310                             order: 350
3311             portage_way:
3312                 filter: { kind: portage_way }
3313                 draw:
3314                     lines:
3315                         color: [0.350,0.350,0.350]
3316             pedestrian:
3317                 filter: { kind_detail: pedestrian }
3318                 draw:
3319                     lines:
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]]
3322                         # outline:
3323                         #     color: [0.790,0.790,0.790]
3324                         #     width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3325             bridge:
3326                 filter: { is_bridge: true }
3327                 draw:
3328                     lines:
3329                         width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3330                         cap: round
3331                         outline:
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]]
3334                             cap: butt
3335             in_park:
3336                 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
3337                 draw:
3338                     dashedline:
3339                         color: [0.350,0.350,0.350]
3340                         # outline:
3341                         #     color: [0.790,0.790,0.790]
3342                         #     width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3343             #     golf_course:
3344             #         filter: { landuse_kind: golf_course }
3345             #         draw:
3346             #             lines:
3347             #                 color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3348             #                 outline:
3349             #                     color: [0.790,0.790,0.790]
3350             #                     width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3351             #     nature_reserve:
3352             #         filter: { landuse_kind: nature_reserve }
3353             #         draw:
3354             #             lines:
3355             #                 color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3356             #                 outline:
3357             #                     color: [0.790,0.790,0.790]
3358             #                     width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3359             #     conservation:
3360             #         filter: { landuse_kind: conservation }
3361             #         draw:
3362             #             lines:
3363             #                 color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
3364             #                 outline:
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] }
3369             #     draw:
3370             #         lines:
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]]
3373             #             outline:
3374             #                 color: [0.790,0.790,0.790]
3375             #                 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3376             # in_zoo:
3377             #     filter: { landuse_kind: zoo }
3378             #     draw:
3379             #         lines:
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]]
3382             #             outline:
3383             #                 color: [0.790,0.790,0.790]
3384             #                 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3385             # in_university:
3386             #     filter: { landuse_kind: university }
3387             #     draw:
3388             #         lines:
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]]
3391             #             outline:
3392             #                 color: [0.790,0.790,0.790]
3393             #                 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3394             # in_hospital:
3395             #     filter: { landuse_kind: hospital }
3396             #     draw:
3397             #         lines:
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]]
3400             #             outline:
3401             #                 color: [0.790,0.790,0.790]
3402             #                 width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3403             labels-path:
3404                 filter: { $zoom: { min: 17 } }
3405                 draw:
3406                     text-blend-order:
3407                         priority: 61
3408                         visible: *text_visible_path
3409                         text_source: name
3410                         font:
3411                             fill: [0.536,0.556,0.581]
3412                             size: 12px
3413                             stroke: { color: *text_stroke, width: 4 }
3414         track:
3415             filter: { kind: path, kind_detail: track }
3416             draw:
3417                 lines:
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]]
3420                     cap: butt
3421                     join: round
3422                     outline:
3423                         color: [0.790,0.790,0.790]
3424                         width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3425             bridge:
3426                 filter: { is_bridge: true }
3427                 draw:
3428                     lines:
3429                         cap: butt
3430                         width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
3431                         cap: round
3432                         outline:
3433                             color: [1.0,1.0,1.0]
3434                             width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3435                             cap: butt
3436             in_park:
3437                 filter: { landuse_kind: [park,national_park,nature_reserve,conservation,golf_course,garden,battlefield] }
3438                 draw:
3439                     lines:
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]]
3442                         outline:
3443                             color: [0.790,0.790,0.790]
3444                             width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
3445         steps:
3446             filter:
3447                 all:
3448                     - kind: path
3449                     - kind_detail: steps
3450             draw:
3451                 dashed:
3452                     #order: function() { return feature.sort_rank; }
3453                     order: 1005
3454                     color: [0.501,0.650,0.650]
3455                     width: [[15, 0.6], [16, 1px], [17, 1px], [18, 4px], [19, 1.5m]]
3456                     interactive: true
3457                 lines:
3458                     visible: false
3459                     order: 1000
3460                     interactive: true
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]]
3465                     visible: true
3466                     #color: purple
3467             steps-late:
3468                 filter: { $zoom: { min: 17 } }
3469                 draw:
3470                     # lines:
3471                     #     color: [0.707,0.884,0.872]
3472                     #     visible: true
3473                     #     outline:
3474                     #         width: [[17, 0px], [18, 1px], [19, 2px]]
3475                     #         color: [0.850,0.850,0.850]
3476                     dashed:
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 } }
3481                 draw:
3482                     dashed:
3483                         visible: false
3484                     lines:
3485                         visible: true
3486             networked:
3487                 filter: { walking_network: true }
3488                 draw:
3489                     lines:
3490                         width: [[13, 0.75px], [14, 1px], [15, 2px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
3491                     dashed:
3492                         width: [[13, 1.25px],[14, 2px],[15, 1.75px],[16, 2px], [17, 4px], [18, 5px], [19, 8px]]
3493                     highlight:
3494                         order: 980
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]]
3497                         join: round
3498                 early:
3499                     filter: { $zoom: { max: 15 } }
3500                     draw:
3501                         lines:
3502                             color: [0.120,0.600,0.520]
3503                 networked-steps-late:
3504                     filter: { $zoom: { min: 18 } }
3505                     draw:
3506                         dashed:
3507                             color: [0.120,0.600,0.520]
3508             in_park:
3509                 filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
3510                 draw:
3511                     dashed:
3512                         color: [0.120,0.600,0.520]
3513             # in_university:
3514             #     filter: { landuse_kind: university }
3515             #     draw:
3516             #         dashed:
3517             #             color: *path_steps1_b
3518             #             outline:
3519             #                 color: [1.0,1.0,1.0]
3520             # in_hospital:
3521             #     filter: { landuse_kind: hospital }
3522             #     draw:
3523             #         dashed:
3524             #             color: *path_steps1_b
3525             #             outline:
3526             #                 color: [1.0,1.0,1.0]
3527             labels-steps:
3528                 filter: { $zoom: { min: 17 } }
3529                 draw:
3530                     text-blend-order:
3531                         priority: 63
3532                         visible: *text_visible_steps
3533                         text_source: name
3534                         font:
3535                             fill: [0.45,0.45,0.45]
3536                             size: 11px
3537                             stroke: { color: *text_stroke, width: 4 }
3538         winter_sport_pistes:
3539             filter: { kind: piste }
3540             draw:
3541                 lines:
3542                     order: 388   # We override the server value here because Eraser Map is also a special Ski Map
3543                     cap: round
3544                     join: round
3545                     color: '#909090'
3546                     width: [[13,0px],[14,1px],[15, 1.25px], [16, 2px], [18, 3m]]
3547                 text-blend-order:
3548                     priority: 18
3549                     visible: *text_visible_piste
3550                     font:
3551                         fill: *text_fill_piste
3552                         size: 12px
3553                         stroke: { color: [0.913,0.925,0.933], width: 4 }
3554             early:
3555                 filter: { $zoom: { max: 15 } }
3556                 draw:
3557                     text-blend-order:
3558                         visible: false
3559             early-z15:
3560                 filter: { $zoom: [15] }
3561                 draw:
3562                     text-blend-order:
3563                         font:
3564                             fill: *text_fill_piste_e
3565                             size: 11px
3566             easy:
3567                 filter: { piste_difficulty: easy }
3568                 draw:
3569                     lines:
3570                         color: [0.367,0.750,0.622]
3571             intermediate:
3572                 filter: { piste_difficulty: intermediate }
3573                 draw:
3574                     lines:
3575                         color: [0.420,0.678,0.863]
3576             advanced:
3577                 filter: { piste_difficulty: advanced }
3578                 draw:
3579                     lines:
3580                         color: [0.450,0.450,0.450]
3581                     text-blend-order:
3582                         text_source: function() { if( feature.name ){ return '◆ ' + feature.name; } else { return ''; } }
3583             expert:
3584                 filter: { piste_difficulty: expert }
3585                 draw:
3586                     lines:
3587                         color: [0.450,0.450,0.450]
3588                     text-blend-order:
3589                         text_source: function() { if( feature.name ){ return '◆◆ ' + feature.name; } else { return ''; } }
3590         pier:
3591             filter: { kind: path, kind_detail: pier }
3592             draw:
3593                 lines:
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]]
3596                     outline:
3597                         color: [0.431,0.806,0.914]
3598                         width: [[15, 0px],[16,0.65px], [17, 0.75px], [18, 1px], [19, 1.5px]]
3599         racetrack:
3600             filter: { kind: racetrack }
3601             draw:
3602                 lines:
3603                     interactive: true
3604                     cap: round
3605                     join: round
3606                     color: [0.400,0.666,0.690]
3607                     width: [[13,0.5px],[14,1px],[15, 1px], [16, 1.5px], [18, 3px], [19, 5px]]
3608         airport-lines:
3609             filter: { kind: aeroway }
3610             draw:
3611                 lines:
3612                     color: [[11, [0.25,0.25,0.25]], [17, [0.0,0.0,0.0]]]
3613                     cap: butt
3614                     width: [[10, 1px], [11, 1.5px], [12, 2px], [13, 4px], [14, 8px], [15, 16px], [16, 32px], [17, 60m]]
3615                     outline:
3616                         color: [1.0,1.0,1.0]
3617             # Features come in at zoom 9, but include mostly minor airports without POIs until z13
3618             early:
3619                 filter: { $zoom: { max: 12 }, not: { landuse_kind: [aerodrome, runway, taxiway] } }
3620                 draw:
3621                     lines:
3622                         visible: false
3623             not-round:
3624                 filter: { $zoom: { min: 17 } }
3625                 draw:
3626                     lines:
3627                         cap: butt
3628             taxiway:
3629                 filter: { kind_detail: taxiway }
3630                 draw:
3631                     lines:
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]]
3634                         outline:
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]]
3637                 early:
3638                     filter: { $zoom: { max: 13 } }
3639                     draw:
3640                         lines:
3641                             visible: false
3642             runway:
3643                 filter: { kind_detail: runway }
3644                 draw:
3645                     lines:
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]]]
3647                         outline:
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]]
3650         ferry:
3651             filter: { kind: ferry }
3652             draw:
3653                 lines:
3654                     color: [0.451,0.804,0.878]
3655                     width: [[12, 0.5px], [13, 0.75px], [15, 1.0px]]
3656         aerialway:
3657             filter: { kind: aerialway }
3658             draw:
3659                 lines:
3660                     interactive: true
3661                     color: [0.5,0.5,0.5]
3662                     width: [[14, 0.5px], [15, 1.0px], [16, 2m]]
3663             gondola_cable_car:
3664                 filter: { kind_detail: [gondola, cable_car] }
3665                 draw:
3666                     lines:
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]]
3672             chair_lift:
3673                 filter: { kind_detail: chair_lift }
3674                 draw:
3675                     lines:
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]]
3681             aerialway-labels:
3682                 filter: { $zoom: { min: 14 } }
3683                 draw:
3684                     text-blend-order:
3685                         priority: 63
3686                         visible: *text_visible_aerialway
3687                         text_source: name
3688                         font:
3689                             fill: *text_fill
3690                             size: 10px
3691                             stroke: { color: *text_stroke_park, width: 4 }
3692                 minor:
3693                     filter: { not: { kind_detail: [gondola,cable_car,chair_lift] }, $zoom: { max: 17 } }
3694                     draw:
3695                         text-blend-order:
3696                             visible: false
3697                 early_gondola:
3698                     filter: { $zoom: [14], kind_detail: [gondola,cable_car] }
3699                     draw:
3700                         text-blend-order:
3701                             font:
3702                                 weight: 600
3703                 later:
3704                     filter: { $zoom: { min: 15 } }
3705                     draw:
3706                         text-blend-order:
3707                             font:
3708                                 weight: 600
3709     buildings:
3710         data: { source: mapzen, layer: buildings }
3711         filter:
3712             not: { location: underground }
3713         # set default footprint and extrusion draw properties, but don't draw by default (rules below will turn visibility on)
3714         draw:
3715             polygons:
3716                 visible: false
3717                 order: 329
3718                 color: [[14,[0.930,0.940,0.940]],[15,[0.920,0.930,0.930]],[16,[0.930,0.940,0.940]]]
3719             lines:
3720                 style: lines
3721                 order: 330
3722                 visible: false
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]]
3725
3726         # turn interactive feature selection on for buildings with names
3727         interactive:
3728             filter: { name: true }
3729             draw: { polygons: { interactive: true } }
3730
3731         # building footprints, pre-extrusion
3732         footprints:
3733             filter:
3734                 any:
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 } }
3749                 all:
3750                    - not: { location: underground }
3751             draw:
3752                 polygons:
3753                     visible: true
3754                 lines:
3755                     visible: true
3756
3757             extrude:
3758                 filter:
3759                     any:
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 } }
3772                 draw:
3773                     polygons:
3774                         visible: true
3775                         order: 438
3776                         style: building-grid
3777                         extrude: 100
3778                         color: [0.930,0.940,0.940]
3779                     lines:
3780                         visible: true
3781                         order: 439
3782                         style: building-lines
3783                         extrude: 100
3784                 z16-default:
3785                     filter: { $zoom: [16] }
3786                     draw:
3787                         polygons:
3788                             extrude: 20
3789                         lines:
3790                             extrude: 20
3791                 z18-default:
3792                     filter: { $zoom: { min: 18 } }
3793                     draw:
3794                         polygons:
3795                             extrude: 20
3796                         lines:
3797                             extrude: 20
3798                 z18-special:
3799                     filter:
3800                         any:
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 } }
3806                     draw:
3807                         polygons:
3808                             extrude: 100
3809                         lines:
3810                             extrude: 100
3811
3812
3813         # landuse-specific rules
3814         # in_park:
3815         #     filter: { landuse_kind: [park,forest,nature_reserve,conservation,golf_course,garden] }
3816         #     draw:
3817         #         polygons:
3818         #             color: [0.864,0.910,0.905]
3819
3820         #     # golf_course:
3821         #     #     filter: { landuse_kind: golf_course }
3822         #     #     draw:
3823         #     #         polygons:
3824         #     #             color: *building2
3825         #     # nature_reserve:
3826         #     #     filter: { landuse_kind: nature_reserve }
3827         #     #     draw:
3828         #     #         polygons:
3829         #     #             color: *building2
3830         #     # conservation:
3831         #     #     filter: { landuse_kind: conservation }
3832         #     #     draw:
3833         #     #         polygons:
3834         #     #             color: *building2
3835         #     # zoo:
3836         #     #     filter: { landuse_kind: zoo }
3837         #     #     draw:
3838         #     #         polygons:
3839         #     #             color: *building2
3840         # in_university:
3841         #     filter: { landuse_kind: [university,school] }
3842         #     draw:
3843         #         polygons:
3844         #             color: [0.950,0.917,0.883]
3845         #         lines:
3846         #             color: *brown1_bo
3847         # in_hospital:
3848         #     filter: { landuse_kind: hospital }
3849         #     draw:
3850         #         polygons:
3851         #             color: [0.976,0.908,0.913]
3852         # in_airport:
3853         #     filter: { landuse_kind: [aerodrome, runway, taxiway] }
3854         #     draw:
3855         #         polygons:
3856         #             color: *purple_b
3857         #         lines:
3858         #             color: *purple_bo
3859         #             width: [[14,0.5px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
3860         # in_retail:
3861         #    filter: { landuse_kind: retail }
3862         #    draw:
3863         #         polygons:
3864         #             color: [0.945, 0.898, 0.878]
3865
3866     buildings-labels:
3867         data: { source: mapzen, layer: buildings }
3868         filter:
3869             all:
3870                 - { $zoom: { min: 17 } }
3871                 - $geometry: point
3872                 - not: { location: underground, kind: address }
3873                 - name: true
3874             any:
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 }
3887         draw:
3888             text-blend-order:
3889                 interactive: true
3890                 move_into_tile: true
3891                 priority: 70
3892                 visible: *text_visible_building
3893                 order: 7
3894                 font:
3895                     fill: '#666'
3896                     family: *text_font_family
3897                     style: italic
3898                     size: 11px
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; } }
3911             draw:
3912                 text-blend-order:
3913                     visible: false
3914         building-labels-z17:
3915             filter: function() { if( $zoom == 17 && feature.name.length > 30 ) { return true; } else { return false; } }
3916             draw:
3917                 text-blend-order:
3918                     visible: false
3919         building-labels-z20+:
3920             filter: { $zoom: { min: 20 } }
3921             draw:
3922                 text-blend-order:
3923                     text_source: function() { if( feature.addr_housenumber ) { return feature.name + '\n' + feature.addr_housenumber; } else { return feature.name; } }
3924     address-labels:
3925         data: { source: mapzen, layer: buildings }
3926         filter:
3927             $zoom: { min: 20 }
3928             any:
3929                 - kind: address
3930                 - { label_position: true, addr_housenumber: true, name: false }
3931         draw:
3932             text-blend-order:
3933                 interactive: true
3934                 order: 7
3935                 visible: *text_visible_address
3936                 text_source: addr_housenumber
3937                 font:
3938                     fill: *text_fill_address
3939                     family: *text_font_family
3940                     style: italic
3941                     size: 10px
3942                     stroke: { color: *text_stroke_address, width: 4 }
3943
3944     boundaries:
3945         data: { source: mapzen, layer: boundaries }
3946         # country subdivisions (states, provinces)
3947         draw:
3948             lines:
3949                 interactive: true
3950                 order: function() { return (feature.sort_rank + 100); }
3951 #                color: red
3952 #                width: [[9, 1px], [14, 2px], [16, 3px], [17, 8m]]
3953         country:
3954             filter:
3955                 kind: country
3956                 # any:
3957                 #     - kind: country
3958                 #     - kind_detail: 2
3959             draw:
3960                 lines:
3961                     interactive: true
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]]
3964             water:
3965                 filter: { maritime_boundary: true }
3966                 draw:
3967                     lines:
3968                         visible: false
3969                         #order: function() { return (feature.sort_rank - 2); }
3970                         #color: [0.568,0.942,1.000]
3971
3972         # other_country_boundary_disputed_etc:
3973         #     filter: { kind: [disputed, indefinite, indeterminate, lease_limit, line_of_control, overlay_limit] }
3974         #     draw:
3975         #         dashed:
3976         #             interactive: true
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]]
3979
3980         region:
3981             filter:
3982                 kind: region
3983                 # any:
3984                 #     - type: state
3985                 #     # territorial here is probably a hack
3986                 #     - kind: [state, department, region, provincial, territorial]
3987                 #     - kind_detail: 4
3988                 # not:
3989                 #     # deal with bogus Hungary data
3990                 #     - scalerank: 0
3991             draw:
3992                 lines:
3993                     interactive: true
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]]
3996             water:
3997                 filter: { maritime_boundary: true }
3998                 draw:
3999                     lines:
4000                         visible: false
4001             early:
4002                 filter: { not: { min_zoom: [1,2] }, $zoom: { max: 8 } }
4003                 draw:
4004                     lines:
4005                         visible: false
4006         city_walls:
4007             filter: { kind: city_wall }
4008             draw:
4009                 lines:
4010                     color: *city_wall
4011                     width: [[12, 0.75px], [13, 1.0px], [14, 1.2px], [15, 2.0px], [16, 2.5px], [19, 6m]]
4012         retaining_wall:
4013             filter: { kind: retaining_wall }
4014             draw:
4015                 lines:
4016                     color: *retaining_wall
4017                     width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 4m]]
4018         snow_fence:
4019             filter: { kind: snow_fence }
4020             draw:
4021                 lines:
4022                     color: *snow_fence
4023                     width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
4024         fence:
4025             filter: { kind: fence }
4026             draw:
4027                 lines:
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]]
4030         dam:
4031             filter: { kind: dam }
4032             draw:
4033                 lines:
4034                     color: *dam
4035                     width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
4036
4037     places:
4038         data: { source: mapzen, layer: places }
4039         filter: { not: { kind: [ocean, sea] } }
4040         draw:
4041             text-blend-order:
4042                 visible: false    # labels are enabled by each layer below
4043                 font:
4044                     family: *text_font_family
4045                     # weight: 500
4046                     fill: *text_fill
4047
4048         country-z2:
4049             filter:
4050                 all:
4051                     - kind: [country]
4052                     - $zoom: [2]
4053                     - name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"]
4054             draw:
4055                 text-blend-order:
4056                     priority: 3
4057                     visible: *text_visible_admin
4058                     text_source: function() { return feature["name:en"] || feature["name"]; }
4059                     font:
4060                         fill: *text_fill
4061                         weight: 200
4062                         size: 11px
4063                         stroke: { color: *text_stroke, width: 4 }
4064         country-z3:
4065             filter: { name: true, population: true, kind: [country], $zoom: [3] }
4066             draw:
4067                 text-blend-order:
4068                     priority: 3
4069                     visible: *text_visible_admin
4070                     text_source: function() { return feature["name:en"] || feature["name"]; }
4071                     font:
4072                         fill: *text_fill
4073                         weight: 200
4074                         size: 11px
4075                         stroke: { color: *text_stroke, width: 4 }
4076     #            icons:
4077     #                size: [[13, 12px], [15, 18px]]
4078     #                interactive: true
4079     #                sprite: *townspot_sprite
4080             early-ones:
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} }
4083                 draw:
4084                     text-blend-order:
4085                         visible: false
4086         country-z4:
4087             filter: { name: true, population: true, kind: [country], $zoom: [4] }
4088             draw:
4089                 text-blend-order:
4090                     priority: 3
4091                     visible: *text_visible_admin
4092                     text_source: function() { return feature["name:en"] || feature["name"]; }
4093                     font:
4094                         fill: *text_fill
4095                         weight: 200
4096                         size: 13px
4097                         stroke: { color: *text_stroke, width: 4 }
4098     #            icons:
4099     #                size: [[13, 12px], [15, 18px]]
4100     #                interactive: true
4101     #                sprite: *townspot_sprite
4102             early-ones-z4:
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} }
4104                 draw:
4105                     text-blend-order:
4106                         visible: false
4107         country-z5:
4108             filter:
4109                 all:
4110                     - name: true
4111                     - population: true
4112                     - kind: [country]
4113                     - $zoom: [5]
4114                 any:
4115                     - { population: { min: 5000000 } }
4116             draw:
4117                 text-blend-order:
4118                     priority: 3
4119                     visible: *text_visible_admin
4120                     text_source: function() { return feature["name:en"] || feature["name"]; }
4121                     font:
4122                         fill: *text_fill
4123                         weight: 600
4124                         size: 13px
4125                         stroke: { color: *text_stroke, width: 4 }
4126             # country-spacer-z5:
4127             #     filter: { kind: country, $zoom: [5] }
4128             #     draw:
4129             #         text-blend-order:
4130             #             text_source: function() { return feature.name.split('').join(' ') }
4131             #             text_wrap: false
4132     #            icons:
4133     #                size: [[13, 12px], [15, 18px]]
4134     #                interactive: true
4135     #                sprite: *townspot_sprite
4136             early-ones-z5:
4137                 filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,El Salvador,Belize,België - Belgique - Belgien], $zoom: {min: 5, max: 6} }
4138                 draw:
4139                     text-blend-order:
4140                         visible: false
4141         country-z6:
4142             # South Ossetia and Abkhazia aren't countries (they are disputed areas)
4143             filter: { name: true, kind: [country], $zoom: [6] }
4144             draw:
4145                 text-blend-order:
4146                     priority: 3
4147                     visible: *text_visible_admin
4148                     text_source: function() { return feature["name:en"] || feature["name"]; }
4149                     font:
4150                         size: 14px
4151                         weight: 600
4152                         fill: *text_fill
4153                         stroke: { color: *text_stroke, width: 4 }
4154             small-ones-z6:
4155                 filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,België - Belgique - Belgien,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 6, max: 7} }
4156                 draw:
4157                     text-blend-order:
4158                         visible: false
4159         country-z7:
4160             # South Ossetia and Abkhazia aren't countries (they are disputed areas)
4161             filter: { name: true, kind: [country], $zoom: { min: 7, max: 9 } }
4162             draw:
4163                 text-blend-order:
4164                     priority: 3
4165                     visible: *text_visible_admin
4166                     text_source: function() { return feature["name:en"] || feature["name"]; }
4167                     font:
4168                         size: 16px
4169                         weight: 600
4170                         fill: *text_fill
4171                         stroke: { color: *text_stroke, width: 4 }
4172             small-ones-z7:
4173                 filter: { name: [Liechtenstein,San Marino,Civitatis Vaticanæ,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 7, max: 8} }
4174                 draw:
4175                     text-blend-order:
4176                         visible: false
4177
4178         region-z4:
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"] } }
4180             draw:
4181                 text-blend-order:
4182                     priority: 14
4183                     visible: *text_visible_admin
4184                     text_source: 'name:short'
4185                     font:
4186                         size: 11px
4187                         weight: 400
4188                         fill: [0.70,0.70,0.70]
4189                         stroke: { color: *text_stroke, width: 4 }
4190
4191         region-z5:
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"] } }
4193             draw:
4194                 text-blend-order:
4195                     priority: 14
4196                     visible: *text_visible_admin
4197                     text_source: 'name:short'
4198                     font:
4199                         size: 18px
4200                         weight: 200
4201                         fill: [0.5,0.5,0.5,0.5]
4202                         stroke: { color: *text_stroke, width: 4 }
4203
4204         region-z6:
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"] } }
4206             draw:
4207                 text-blend-order:
4208                     priority: 14
4209                     visible: *text_visible_admin
4210                     text_source: 'name:short'
4211                     font:
4212                         size: 21px
4213                         weight: 200
4214                         fill: [0.5,0.5,0.5,0.5]
4215                         # stroke: { color: *text_stroke, width: 4 }
4216                         transform: uppercase
4217
4218         region:
4219             filter: { name: true, kind: [region], $zoom: {min: 7, max: 9} }
4220             draw:
4221                 text-blend-order:
4222                     priority: 14
4223                     visible: *text_visible_admin
4224                     text_source: function() { if(feature["name:short"]) { return feature["name"]; } else { return ""; } }
4225                     font:
4226                         size: 30px
4227                         weight: 200
4228                         fill: [0.5,0.5,0.5,0.5]
4229                         # stroke: { color: *text_stroke, width: 4 }
4230                         transform: uppercase
4231     #            icons:
4232     #                size: [[13, 12px], [15, 18px]]
4233     #                interactive: true
4234     #                sprite: *townspot_sprite
4235             pesky:
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} }
4237                 draw:
4238                     text-blend-order:
4239                         visible: false
4240             small-ones:
4241                 filter: { name: ["Delaware","New Jersey","Connecticut","Rhode Island","Massachusetts","New Hampshire","Vermont"], $zoom: {min: 7, max: 8} }
4242                 draw:
4243                     text-blend-order:
4244                         text_source: function() { return feature["name:abbreviation"] || feature["name"]; }
4245                         font: { transform: uppercase }
4246
4247         populated-places:
4248             filter:
4249                 kind: locality
4250                 name: true
4251             draw:
4252                 icons:
4253                     interactive: true
4254                     priority: 5
4255                     text:
4256                         interactive: true
4257                         buffer: 3px
4258
4259             populated-places-natural-earth-z2:
4260                 filter: { $zoom: [2], min_zoom: 2 }
4261                 draw:
4262                     icons:
4263                         size: 5px
4264                         visible: *icon_visible_populated_places
4265                         sprite: townspot-s-rev
4266                         text:
4267                             visible: *text_visible_populated_places
4268                             font:
4269                                 size: 10px
4270                                 fill: *text_fill
4271                                 stroke: { color: *text_stroke, width: 4 }
4272
4273             populated-places-natural-earth-z3:
4274                 filter: { $zoom: [3] }
4275                 z3places-1:
4276                     filter: { min_zoom: 2 }
4277                     draw:
4278                         icons:
4279                             size: 5px
4280                             visible: *icon_visible_populated_places
4281                             sprite: townspot-s-rev
4282                             text:
4283                                 visible: *text_visible_populated_places
4284                                 font:
4285                                     size: 11px
4286                                     fill: *text_fill
4287                                     stroke: { color: *text_stroke, width: 4 }
4288                 z3places-2:
4289                     filter: { min_zoom: 3 }
4290                     draw:
4291                         icons:
4292                             priority: 7
4293                             size: 5px
4294                             visible: *icon_visible_populated_places
4295                             sprite: townspot-s-rev
4296                             text:
4297                                 visible: *text_visible_populated_places
4298                                 font:
4299                                     size: 9px
4300                                     fill: *text_fill
4301                                     stroke: { color: *text_stroke, width: 4 }
4302
4303             populated-places-natural-earth-z4:
4304                 filter: { $zoom: [4] }
4305                 z4places-1:
4306                     filter: { min_zoom: 2 }
4307                     draw:
4308                         icons:
4309                             size: 5px
4310                             visible: *icon_visible_populated_places
4311                             sprite: townspot-s-rev
4312                             text:
4313                                 visible: *text_visible_populated_places
4314                                 font:
4315                                     size: 11px
4316                                     fill: *text_fill
4317                                     stroke: { color: *text_stroke, width: 4 }
4318
4319                 z4places-2:
4320                     filter: { min_zoom: [3,4] }
4321                     draw:
4322                         icons:
4323                             priority: 7
4324                             size: 5px
4325                             visible: *icon_visible_populated_places
4326                             sprite: townspot-s-rev
4327                             text:
4328                                 visible: *text_visible_populated_places
4329                                 font:
4330                                     size: 9px
4331                                     fill: *text_fill
4332                                     stroke: { color: *text_stroke, width: 4 }
4333
4334             populated-places-natural-earth-z5:
4335                 filter: { $zoom: [5] }
4336                 z5places-1:
4337                     filter: { min_zoom: [2,3] }
4338                     draw:
4339                         icons:
4340                             priority: 7
4341                             size: 6px
4342                             visible: *icon_visible_populated_places
4343                             sprite: townspot-m-rev
4344                             text:
4345                                 visible: *text_visible_populated_places
4346                                 font:
4347                                     size: 15px
4348                                     fill: *text_fill
4349                                     stroke: { color: *text_stroke, width: 4 }
4350                     capital:
4351                         filter: { country_capital: true }
4352                         draw:
4353                             icons:
4354                                 priority: 5
4355                                 size: 8px
4356                                 sprite: capital-l
4357 #                                text:
4358 #                                    priority: 6
4359
4360                 z5places-2:
4361                     filter: { min_zoom: 4 }
4362                     draw:
4363                         icons:
4364                             priority: 11
4365                             size: 5px
4366                             visible: *icon_visible_populated_places
4367                             sprite: townspot-s-rev
4368                             text:
4369                                 visible: *text_visible_populated_places
4370                                 font:
4371                                     size: 12px
4372                                     fill: *text_fill
4373                                     stroke: { color: *text_stroke, width: 4 }
4374                     capital:
4375                         filter: { country_capital: true }
4376                         draw:
4377                             icons:
4378                                 priority: 9
4379                                 size: 6px
4380                                 sprite: capital-m
4381 #                                text:
4382 #                                    priority: 10
4383
4384                 z5places-3:
4385                     filter: { min_zoom: 5 }
4386                     draw:
4387                         icons:
4388                             priority: 17
4389                             size: 5px
4390                             visible: *icon_visible_populated_places
4391                             sprite: townspot-s-rev
4392                             text:
4393                                 visible: *text_visible_populated_places
4394                                 font:
4395                                     size: 10px
4396                                     fill: *text_fill
4397                                     stroke: { color: *text_stroke, width: 4 }
4398                     capital:
4399                         filter: { country_capital: true }
4400                         draw:
4401                             icons:
4402                                 priority: 15
4403                                 size: 6px
4404                                 sprite: capital-m
4405 #                                text:
4406 #                                    priority: 16
4407
4408             populated-places-natural-earth-z6:
4409                 filter: { $zoom: [6] }
4410                 z6places-1:
4411                     filter: { min_zoom: [2,3] }
4412                     draw:
4413                         icons:
4414                             priority: 7
4415                             size: 8px
4416                             visible: *icon_visible_populated_places
4417                             sprite: townspot-l-rev
4418                             text:
4419                                 visible: *text_visible_populated_places
4420                                 font:
4421                                     size: 16px
4422                                     fill: *text_fill
4423                                     stroke: { color: *text_stroke, width: 4 }
4424                     capital:
4425                         filter: { country_capital: true }
4426                         draw:
4427                             icons:
4428                                 sprite: capital-l
4429                                 size: 8px
4430                                 priority: 5
4431 #                                text:
4432 #                                    priority: 6
4433
4434                 z6places-2:
4435                     filter: { min_zoom: [4,5] }
4436                     draw:
4437                         icons:
4438                             priority: 11
4439                             size: 6px
4440                             visible: *icon_visible_populated_places
4441                             sprite: townspot-m-rev
4442                             text:
4443                                 visible: *text_visible_populated_places
4444                                 font:
4445                                     size: 13px
4446                                     fill: *text_fill
4447                                     stroke: { color: *text_stroke, width: 4 }
4448                     capital:
4449                         filter: { country_capital: true }
4450                         draw:
4451                             icons:
4452                                 size: 6px
4453                                 sprite: capital-m
4454                                 priority: 9
4455 #                                text:
4456 #                                    priority: 10
4457
4458                 z6places-3:
4459                     filter: { min_zoom: 6 }
4460                     draw:
4461                         icons:
4462                             size: 5px
4463                             visible: *icon_visible_populated_places
4464                             sprite: townspot-s-rev
4465                             priority: 15
4466                             text:
4467                                 visible: *text_visible_populated_places
4468                                 font:
4469                                     size: 11px
4470                                     fill: *text_fill
4471                                     stroke: { color: *text_stroke, width: 4 }
4472                     capital:
4473                         filter: { country_capital: true }
4474                         draw:
4475                             icons:
4476                                 size: 6px
4477                                 sprite: capital-m
4478                                 priority: 13
4479 #                                text:
4480 #                                    priority: 14
4481
4482             populated-places-natural-earth-z7:
4483                 filter: { $zoom: [7] }
4484                 z7places-1:
4485                     filter: { min_zoom: [2,3] }
4486                     draw:
4487                         icons:
4488                             size: 8px
4489                             visible: *icon_visible_populated_places
4490                             sprite: townspot-l-rev
4491                             priority: 7
4492                             text:
4493                                 visible: *text_visible_populated_places
4494                                 font:
4495                                     size: 17px
4496                                     fill: *text_fill
4497                                     stroke: { color: *text_stroke, width: 4 }
4498                     capital:
4499                         filter: { country_capital: true }
4500                         draw:
4501                             icons:
4502                                 size: 8px
4503                                 sprite: capital-l
4504                                 priority: 5
4505 #                                text:
4506 #                                    priority: 6
4507
4508                 z7places-2:
4509                     filter: { min_zoom: [4,5,6] }
4510                     draw:
4511                         icons:
4512                             size: 6px
4513                             visible: *icon_visible_populated_places
4514                             sprite: townspot-m-rev
4515                             priority: 13
4516                             text:
4517                                 visible: *text_visible_populated_places
4518                                 font:
4519                                     size: 14px
4520                                     fill: *text_fill
4521                                     stroke: { color: *text_stroke, width: 4 }
4522                     capital:
4523                         filter: { country_capital: true }
4524                         draw:
4525                             icons:
4526                                 size: 8px
4527                                 sprite: capital-l
4528                                 priority: 11
4529 #                                text:
4530 #                                    priority: 12
4531
4532                 z7places-3:
4533                     filter: { min_zoom: [6,7] }
4534                     draw:
4535                         icons:
4536                             size: 5px
4537                             visible: *icon_visible_populated_places
4538                             sprite: townspot-s-rev
4539                             priority: 17
4540                             text:
4541                                 visible: *text_visible_populated_places
4542                                 font:
4543                                     size: 12px
4544                                     fill: *text_fill
4545                                     stroke: { color: *text_stroke, width: 4 }
4546                     capital:
4547                         filter: { country_capital: true }
4548                         draw:
4549                             icons:
4550                                 size: 6px
4551                                 sprite: capital-m
4552                                 priority: 15
4553 #                                text:
4554 #                                    priority: 16
4555
4556             populated-places-osm-z8:
4557                 filter:
4558                     all:
4559                         - source: [openstreetmap, openstreetmap.org]
4560                         - name: true
4561                         - population: true
4562                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
4563                         - $zoom: [8]
4564
4565                 z8places-1:
4566                     filter:
4567                         any:
4568                             - { population: { min: 1000000 } }
4569                     draw:
4570                         icons:
4571                             size: 6px
4572                             visible: *icon_visible_populated_places
4573                             sprite: townspot-m-rev
4574                             priority: 7
4575                             repeat_group: abc
4576                             text:
4577                                 visible: *text_visible_populated_places
4578                                 font:
4579                                     size: 17px
4580                                     fill: *text_fill
4581                                     stroke: { color: *text_stroke, width: 4 }
4582                     capital:
4583                         filter: { country_capital: true }
4584                         draw:
4585                             icons:
4586                                 size: 8px
4587                                 sprite: capital-l
4588                                 priority: 5
4589 #                                text:
4590 #                                    priority: 6
4591                 z8places-2:
4592                     filter:
4593                         any:
4594                             - { population: { min: 150000, max: 999999 } }
4595                     draw:
4596                         icons:
4597                             size: 6px
4598                             visible: *icon_visible_populated_places
4599                             sprite: townspot-m-rev
4600                             priority: 11
4601                             repeat_group: abc
4602                             text:
4603                                 visible: *text_visible_populated_places
4604                                 font:
4605                                     size: 14px
4606                                     fill: *text_fill
4607                                     stroke: { color: *text_stroke, width: 4 }
4608                     capital:
4609                         filter: { country_capital: true }
4610                         draw:
4611                             icons:
4612                                 size: 6px
4613                                 sprite: capital-m
4614                                 priority: 9
4615 #                                text:
4616 #                                    priority: 10
4617
4618                 z8places-3:
4619                     filter:
4620                         any:
4621                             - { population: { min: 85000, max: 149999 } }
4622                     draw:
4623                         icons:
4624                             size: 6px
4625                             visible: *icon_visible_populated_places
4626                             sprite: townspot-m-rev
4627                             priority: 15
4628                             repeat_group: abc
4629                             text:
4630                                 visible: *text_visible_populated_places
4631                                 font:
4632                                     size: 12px
4633                                     fill: *text_fill
4634                                     stroke: { color: *text_stroke, width: 4 }
4635                     capital:
4636                         filter: { country_capital: true }
4637                         draw:
4638                             icons:
4639                                 size: 6px
4640                                 sprite: capital-m
4641                                 priority: 13
4642 #                                text:
4643 #                                    priority: 14
4644
4645                 z8places-4:
4646                     filter:
4647                         any:
4648                             - { population: { min: 50000, max: 84999 } }
4649                     draw:
4650                         icons:
4651                             size: 5px
4652                             visible: *icon_visible_populated_places
4653                             sprite: townspot-s-rev
4654                             priority: 19
4655                             repeat_group: abc
4656                             text:
4657                                 visible: *text_visible_populated_places
4658                                 font:
4659                                     size: 10px
4660                                     fill: *text_fill
4661                                     stroke: { color: *text_stroke, width: 4 }
4662                     capital:
4663                         filter: { country_capital: true }
4664                         draw:
4665                             icons:
4666                                 size: 5px
4667                                 sprite: capital-m
4668                                 priority: 17
4669 #                                text:
4670 #                                    priority: 18
4671                 z8places-5:
4672                     filter:
4673                         all:
4674                             - { population: { max: 50000 } }
4675                         any:
4676                             - { country_capital: true }
4677                             - { region_capital: true }
4678                     draw:
4679                         icons:
4680                             size: 5px
4681                             visible: *icon_visible_populated_places
4682                             sprite: townspot-s-rev
4683                             priority: 19
4684                             repeat_group: abc
4685                             text:
4686                                 visible: *text_visible_populated_places
4687                                 font:
4688                                     size: 10px
4689                                     fill: *text_fill
4690                                     stroke: { color: *text_stroke, width: 4 }
4691                     capital:
4692                         filter: { country_capital: true }
4693                         draw:
4694                             icons:
4695                                 size: 5px
4696                                 sprite: capital-s
4697                                 priority: 17
4698 #                                text:
4699 #                                    priority: 18
4700
4701             populated-places-natural-earth-z8-backfill:
4702                 filter: { $zoom: [8], population: { max: 50000 } }
4703                 draw: { icons: { text: { font: { fill: *text_fill } } } }
4704                 z8places-1-ne:
4705                     filter: { min_zoom: [2,3] }
4706                     draw:
4707                         icons:
4708                             size: 8px
4709                             visible: *icon_visible_populated_places
4710                             sprite: townspot-l-rev
4711                             priority: 23
4712                             repeat_group: abc
4713                             text:
4714                                 visible: *text_visible_populated_places
4715                                 font:
4716                                     size: 17px
4717                                     stroke: { color: *text_stroke, width: 4 }
4718                     capital:
4719                         filter: { country_capital: true }
4720                         draw:
4721                             icons:
4722                                 size: 8px
4723                                 sprite: capital-l
4724                                 priority: 21
4725 #                                text:
4726 #                                    priority: 22
4727
4728                 z8places-2-ne:
4729                     filter: { min_zoom: [4,5,6] }
4730                     draw:
4731                         icons:
4732                             size: 6px
4733                             visible: *icon_visible_populated_places
4734                             sprite: townspot-m-rev
4735                             repeat_group: abc
4736                             text:
4737                                 visible: *text_visible_populated_places
4738                                 font:
4739                                     size: 14px
4740                                     stroke: { color: *text_stroke, width: 4 }
4741                     capital:
4742                         filter: { country_capital: true }
4743                         draw:
4744                             icons:
4745                                 sprite: capital-m
4746
4747                 z8places-3-ne:
4748                     filter: { min_zoom: [6,7] }
4749                     draw:
4750                         icons:
4751                             size: 5px
4752                             visible: *icon_visible_populated_places
4753                             sprite: townspot-s-rev
4754                             priority: 27
4755                             repeat_group: abc
4756                             text:
4757                                 visible: *text_visible_populated_places
4758                                 font:
4759                                     size: 10px
4760                                     stroke: { color: *text_stroke, width: 4 }
4761                     capital:
4762                         filter: { country_capital: true }
4763                         draw:
4764                             icons:
4765                                 sprite: capital-s
4766                                 priority: 25
4767 #                                text:
4768 #                                    priority: 26
4769
4770             populated-places-osm-z9:
4771                 filter:
4772                     all:
4773                         - source: [openstreetmap, openstreetmap.org]
4774                         - name: true
4775                         - population: true
4776                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
4777                         - $zoom: [9]
4778
4779                 z9places-1:
4780                     filter:
4781                         any:
4782                             - { population: { min: 1000000 } }
4783                     draw:
4784                         text-blend-order:
4785                             anchor: center
4786                             visible: *text_visible_populated_places
4787                             priority: 6
4788                             font:
4789                                 size: 17px
4790                                 fill: *text_fill
4791                                 stroke: { color: *text_stroke, width: 4 }
4792
4793                 z9places-2a:
4794                     filter:
4795                         any:
4796                             - { population: { min: 350000, max: 999999 } }
4797                     draw:
4798                         text-blend-order:
4799                             anchor: center
4800                             visible: *text_visible_populated_places
4801                             priority: 8
4802                             font:
4803                                 size: 14px
4804                                 fill: *text_fill
4805                                 stroke: { color: *text_stroke, width: 4 }
4806
4807                 z9places-2b:
4808                     filter:
4809                         any:
4810                             - { population: { min: 150000, max: 350000 } }
4811                     draw:
4812                         icons:
4813                             size: 6px
4814                             visible: *icon_visible_populated_places
4815                             sprite: townspot-m-rev
4816                             priority: 11
4817                             text:
4818                                 visible: *text_visible_populated_places
4819                                 font:
4820                                     size: 14px
4821                                     fill: *text_fill
4822                                     stroke: { color: *text_stroke, width: 4 }
4823                     capital:
4824                         filter: { country_capital: true }
4825                         draw:
4826                             icons:
4827                                 sprite: capital-m
4828                                 priority: 9
4829 #                                text:
4830 #                                    priority: 10
4831
4832                 z9places-3:
4833                     filter:
4834                         any:
4835                             - { population: { min: 85000, max: 149999 } }
4836                     draw:
4837                         icons:
4838                             size: 6px
4839                             visible: *icon_visible_populated_places
4840                             sprite: townspot-m-rev
4841                             priority: 15
4842                             text:
4843                                 visible: *text_visible_populated_places
4844                                 font:
4845                                     size: 12px
4846                                     fill: *text_fill
4847                                     stroke: { color: *text_stroke, width: 4 }
4848                     capital:
4849                         filter: { country_capital: true }
4850                         draw:
4851                             icons:
4852                                 sprite: capital-m
4853                                 priority: 13
4854                                 text:
4855                                     font:
4856                                         size: 14px
4857
4858                 z9places-4:
4859                     filter:
4860                         any:
4861                             - { population: { min: 50000, max: 84999 } }
4862                     draw:
4863                         icons:
4864                             size: 5px
4865                             visible: *icon_visible_populated_places
4866                             sprite: townspot-s-rev
4867                             priority: 19
4868                             text:
4869                                 visible: *text_visible_populated_places
4870                                 font:
4871                                     size: 10px
4872                                     fill: *text_fill
4873                                     stroke: { color: *text_stroke, width: 4 }
4874                     capital:
4875                         filter: { country_capital: true }
4876                         draw:
4877                             icons:
4878                                 sprite: capital-s
4879                                 priority: 17
4880 #                                text:
4881 #                                    priority: 18
4882                 z9places-5:
4883                     filter:
4884                         all:
4885                             - { population: { max: 50000 } }
4886                         any:
4887                             - { country_capital: true }
4888                             - { region_capital: true }
4889                     draw:
4890                         icons:
4891                             size: 5px
4892                             visible: *icon_visible_populated_places
4893                             sprite: townspot-s-rev
4894                             priority: 19
4895                             text:
4896                                 visible: *text_visible_populated_places
4897                                 font:
4898                                     size: 10px
4899                                     fill: *text_fill
4900                                     stroke: { color: *text_stroke, width: 4 }
4901                     capital:
4902                         filter: { country_capital: true }
4903                         draw:
4904                             icons:
4905                                 sprite: capital-s
4906                                 priority: 17
4907 #                                text:
4908 #                                    priority: 18
4909
4910             populated-places-osm-z9-no-population:
4911                 filter:
4912                     all:
4913                         - source: [openstreetmap, openstreetmap.org]
4914                         - name: true
4915                         - population: false
4916                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
4917                         - $zoom: [9]
4918                         - kind_detail: [city,town]
4919                 draw:
4920                     icons:
4921                         size: 5px
4922                         visible: *icon_visible_populated_places
4923                         sprite: townspot-s-rev
4924                         priority: 21
4925                         text:
4926                             # anchor: center
4927                             visible: *text_visible_populated_places
4928                             font:
4929                                 size: 10px
4930                                 fill: *text_fill
4931                                 stroke: { color: *text_stroke, width: 4 }
4932
4933             populated-places-natural-earth-z9-backfill:
4934                 filter: { $zoom: [9], population: { max: 50000 } }
4935                 draw: { icons: { text: { font: { fill: *text_fill } } } }
4936                 z9places-1-ne:
4937                     filter: { min_zoom: [2,3] }
4938                     draw:
4939                         icons:
4940                             size: 8px
4941                             visible: *icon_visible_populated_places
4942                             sprite: townspot-l-rev
4943                             priority: 25
4944                             text:
4945                                 visible: *text_visible_populated_places
4946                                 font:
4947                                     size: 17px
4948                                     stroke: { color: *text_stroke, width: 4 }
4949                     capital:
4950                         filter: { country_capital: true }
4951                         draw:
4952                             icons:
4953                                 sprite: capital-l
4954                                 priority: 23
4955 #                                text:
4956 #                                    priority: 24
4957
4958                 z9places-2-ne:
4959                     filter: { min_zoom: [4,5,6] }
4960                     draw:
4961                         icons:
4962                             size: 6px
4963                             visible: *icon_visible_populated_places
4964                             sprite: townspot-m-rev
4965                             priority: 29
4966                             text:
4967                                 visible: *text_visible_populated_places
4968                                 font:
4969                                     size: 14px
4970                                     stroke: { color: *text_stroke, width: 4 }
4971                     capital:
4972                         filter: { country_capital: true }
4973                         draw:
4974                             icons:
4975                                 sprite: capital-m
4976                                 priority: 28
4977 #                                text:
4978 #                                    priority: 27
4979
4980                 z9places-3-ne:
4981                     filter: { min_zoom: [6,7,9] }
4982                     draw:
4983                         icons:
4984                             size: 6px
4985                             visible: *icon_visible_populated_places
4986                             sprite: townspot-m-rev
4987                             priority: 33
4988                             text:
4989                                 visible: *text_visible_populated_places
4990                                 font:
4991                                     size: 12px
4992                                     stroke: { color: *text_stroke, width: 4 }
4993                     capital:
4994                         filter: { country_capital: true }
4995                         draw:
4996                             icons:
4997                                 sprite: capital-m
4998                                 priority: 31
4999 #                                text:
5000 #                                    priority: 32
5001
5002             populated-places-osm-z10:
5003                 filter:
5004                     all:
5005                         - source: [openstreetmap, openstreetmap.org]
5006                         - name: true
5007                         - population: true
5008                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5009                         - $zoom: [10]
5010
5011                 z10places-1:
5012                     filter:
5013                         any:
5014                             - { population: { min: 1000000 } }
5015                     draw:
5016                         text-blend-order:
5017                             anchor: center
5018                             visible: *text_visible_populated_places
5019                             font:
5020                                 size: 17px
5021                                 fill: *text_fill
5022                                 stroke: { color: *text_stroke, width: 4 }
5023
5024                 z10places-2a:
5025                     filter:
5026                         any:
5027                             - { population: { min: 350000, max: 1000000 } }
5028                     draw:
5029                         text-blend-order:
5030                             anchor: center
5031                             visible: *text_visible_populated_places
5032                             font:
5033                                 size: 14px
5034                                 fill: *text_fill
5035                                 stroke: { color: *text_stroke, width: 4 }
5036
5037                 z10places-2b:
5038                     filter:
5039                         any:
5040                             - { population: { min: 150000, max: 350000 } }
5041                     draw:
5042                         icons:
5043                             size: 6px
5044                             visible: *icon_visible_populated_places
5045                             sprite: townspot-m-rev
5046                             priority: 7
5047                             text:
5048                                 visible: *text_visible_populated_places
5049                                 font:
5050                                     size: 14px
5051                                     fill: *text_fill
5052                                     stroke: { color: *text_stroke, width: 4 }
5053
5054                 z10places-3:
5055                     filter:
5056                         any:
5057                             - { population: { min: 50000, max: 149999 } }
5058                     draw:
5059                         icons:
5060                             size: 6px
5061                             visible: *icon_visible_populated_places
5062                             sprite: townspot-m-rev
5063                             priority: 11
5064                             text:
5065                                 visible: *text_visible_populated_places
5066                                 font:
5067                                     size: 12px
5068                                     fill: *text_fill
5069                                     stroke: { color: *text_stroke, width: 4 }
5070
5071                 z10places-4:
5072                     filter:
5073                         any:
5074                             - { population: { min: 20000, max: 49999 } }
5075                     draw:
5076                         icons:
5077                             size: 5px
5078                             visible: *icon_visible_populated_places
5079                             sprite: townspot-s-rev
5080                             priority: 13
5081                             text:
5082                                 visible: *text_visible_populated_places
5083                                 font:
5084                                     size: 10px
5085                                     fill: *text_fill
5086                                     stroke: { color: *text_stroke, width: 4 }
5087
5088             populated-places-osm-z10-no-population:
5089                 filter:
5090                     all:
5091                         - source: [openstreetmap, openstreetmap.org]
5092                         - name: true
5093                         - population: false
5094                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5095                         - $zoom: [10]
5096                         - kind_detail: [city,town]
5097                 draw:
5098                     icons:
5099                         size: 5px
5100                         visible: *icon_visible_populated_places
5101                         sprite: townspot-s-rev
5102                         priority: 15
5103                         text:
5104                             # anchor: center
5105                             visible: *text_visible_populated_places
5106                             font:
5107                                 size: 10px
5108                                 fill: *text_fill
5109                                 stroke: { color: *text_stroke, width: 4 }
5110
5111             populated-places-natural-earth-z10-backfill:
5112                 filter: { $zoom: [10], population: { max: 20000 } }
5113                 draw: { icons: { text: { font: { fill: *text_fill } } } }
5114                 z10places-1-ne:
5115                     filter: { min_zoom: [2,3] }
5116                     draw:
5117                         icons:
5118                             text:
5119                                 visible: *text_visible_populated_places
5120                                 font:
5121                                     size: 17px
5122                                     stroke: { color: *text_stroke, width: 4 }
5123
5124                 z10places-2-ne:
5125                     filter: { min_zoom: [4,5,6] }
5126                     draw:
5127                         icons:
5128                             size: 6px
5129                             visible: *icon_visible_populated_places
5130                             sprite: townspot-m-rev
5131                             priority: 21
5132                             text:
5133                                 visible: *text_visible_populated_places
5134                                 font:
5135                                     size: 14px
5136                                     stroke: { color: *text_stroke, width: 4 }
5137                     capital:
5138                         filter: { country_capital: true }
5139                         draw:
5140                             icons:
5141                                 sprite: capital-m
5142                                 priority: 20
5143 #                                text:
5144 #                                    priority: 21
5145
5146                 z10places-3-ne:
5147                     filter: { min_zoom: [6,7,9,10] }
5148                     draw:
5149                         icons:
5150                             size: 5px
5151                             visible: *icon_visible_populated_places
5152                             sprite: townspot-s-rev
5153                             priority: 25
5154                             text:
5155                                 visible: *text_visible_populated_places
5156                                 font:
5157                                     size: 12px
5158                                     stroke: { color: *text_stroke, width: 4 }
5159                     capital:
5160                         filter: { country_capital: true }
5161                         draw:
5162                             icons:
5163                                 size: 7px
5164                                 sprite: capital-m
5165                                 priority: 23
5166 #                                text:
5167 #                                    priority: 24
5168
5169             populated-places-osm-z11:
5170                 filter:
5171                     all:
5172                         - source: [openstreetmap, openstreetmap.org]
5173                         - name: true
5174                         - population: true
5175                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5176                         - $zoom: [11]
5177                         - kind_detail: [city,town]
5178                 draw:
5179                     text-blend-order:
5180                         anchor: center
5181
5182                 z11places-1:
5183                     filter:
5184                         any:
5185                             - { population: { min: 1000000 } }
5186                     draw:
5187                         text-blend-order:
5188                             visible: *text_visible_populated_places
5189                             priority: 5
5190                             font:
5191                                 size: 18px
5192                                 fill: *text_fill
5193                                 stroke: { color: *text_stroke, width: 4 }
5194
5195                 z11places-2:
5196                     filter:
5197                         any:
5198                             - { population: { min: 50000, max: 999999 } }
5199                     draw:
5200                         text-blend-order:
5201                             visible: *text_visible_populated_places
5202                             priority: 6
5203                             font:
5204                                 size: 14px
5205                                 fill: *text_fill
5206                                 stroke: { color: *text_stroke, width: 4 }
5207
5208                 z11places-3:
5209                     filter:
5210                         any:
5211                         - { population: { min: 5000, max: 49999 } }
5212                     draw:
5213                         text-blend-order:
5214                             visible: *text_visible_populated_places
5215                             priority: 7
5216                             font:
5217                                 size: 11px
5218                                 fill: *text_fill
5219                                 stroke: { color: *text_stroke, width: 4 }
5220
5221             populated-places-osm-z11-no-population:
5222                 filter:
5223                     all:
5224                         - source: [openstreetmap, openstreetmap.org]
5225                         - name: true
5226                         - population: false
5227                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5228                         - $zoom: [11]
5229                         - kind_detail: [city,town]
5230                 draw:
5231                     text-blend-order:
5232                         anchor: center
5233                         visible: *text_visible_populated_places
5234                         priority: 8
5235                         font:
5236                             size: 11px
5237                             fill: *text_fill
5238                             stroke: { color: *text_stroke, width: 4 }
5239
5240             populated-places-natural-earth-z11-backfill:
5241                 filter: { name: true, source: naturalearthdata.com, $zoom: [11], population: { max: 5000 } }
5242                 draw:
5243                     text-blend-order:
5244                         anchor: center
5245                         font:
5246                             fill: *text_fill
5247                 z11places-1-ne:
5248                     filter: { min_zoom: [2,3] }
5249                     draw:
5250                         text-blend-order:
5251                             visible: *text_visible_populated_places
5252                             priority: 10
5253                             font:
5254                                 size: 18px
5255                                 stroke: { color: *text_stroke, width: 4 }
5256                     capital:
5257                         filter: { country_capital: true }
5258                         draw:
5259                             text-blend-order:
5260                                 priority: 9
5261                                 font:
5262                                     size: 18px
5263                                     stroke: { color: *text_stroke, width: 4 }
5264
5265                 z11places-2-ne:
5266                     filter: { min_zoom: [4,5,6] }
5267                     draw:
5268                         text-blend-order:
5269                             visible: *text_visible_populated_places
5270                             priority: 13
5271                             font:
5272                                 size: 14px
5273                                 stroke: { color: *text_stroke, width: 4 }
5274                     capital:
5275                         filter: { country_capital: true }
5276                         draw:
5277                             text-blend-order:
5278                                 priority: 11
5279                                 font:
5280                                     size: 14px
5281                                     stroke: { color: *text_stroke, width: 4 }
5282                     state_capital:
5283                         filter: { region_capital: true }
5284                         draw:
5285                             text-blend-order:
5286                                 priority: 12
5287                                 font:
5288                                     size: 14px
5289                                     stroke: { color: *text_stroke, width: 4 }
5290
5291                 z11places-3-ne:
5292                     filter: { min_zoom: [6,7,9,10] }
5293                     draw:
5294                         text-blend-order:
5295                             visible: *text_visible_populated_places
5296                             priority: 15
5297                             font:
5298                                 size: 11px
5299                                 stroke: { color: *text_stroke, width: 4 }
5300                     capital:
5301                         filter: { country_capital: true }
5302                         draw:
5303                             text-blend-order:
5304                                 priority: 14
5305                                 font:
5306                                     size: 11px
5307                                     stroke: { color: *text_stroke, width: 4 }
5308
5309             populated-places-osm-z12:
5310                 filter:
5311                     all:
5312                         - source: [openstreetmap, openstreetmap.org]
5313                         - name: true
5314                         - population: true
5315                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5316                         - $zoom: [12]
5317                         - kind_detail: [city,town]
5318                 draw:
5319                     text-blend-order:
5320                         anchor: center
5321
5322                 z12places-1:
5323                     filter:
5324                         any:
5325                             - { population: { min: 1000000 } }
5326
5327                     draw:
5328                         text-blend-order:
5329                             visible: *text_visible_populated_places
5330                             priority: 5
5331                             font:
5332                                 size: 18px
5333                                 fill: *text_fill
5334                                 stroke: { color: *text_stroke, width: 4 }
5335
5336                 z12places-2:
5337                     filter:
5338                         any:
5339                             - { population: { min: 50000, max: 999999 } }
5340                     draw:
5341                         text-blend-order:
5342                             visible: *text_visible_populated_places
5343                             priority: 6
5344                             font:
5345                                 size: 14px
5346                                 fill: *text_fill
5347                                 stroke: { color: *text_stroke, width: 4 }
5348
5349                 z12places-3:
5350                     filter:
5351                         any:
5352                         - { population: { min: 5000, max: 49999 } }
5353                     draw:
5354                         text-blend-order:
5355                             visible: *text_visible_populated_places
5356                             priority: 7
5357                             font:
5358                                 size: 11px
5359                                 fill: *text_fill
5360                                 stroke: { color: *text_stroke, width: 4 }
5361
5362                 z12places-4:
5363                     filter:
5364                         any:
5365                         - { population: { max: 5000 } }
5366                     draw:
5367                         text-blend-order:
5368                             visible: *text_visible_populated_places
5369                             priority: 8
5370                             font:
5371                                 size: 11px
5372                                 fill: *text_fill
5373                                 stroke: { color: *text_stroke, width: 4 }
5374
5375             populated-places-osm-z12-no-population:
5376                 filter:
5377                     all:
5378                         - source: [openstreetmap, openstreetmap.org]
5379                         - name: true
5380                         - population: false
5381                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5382                         - $zoom: [12]
5383                         - kind_detail: [city,town]
5384                 draw:
5385                     text-blend-order:
5386                         anchor: center
5387                         visible: *text_visible_populated_places
5388                         priority: 9
5389                         font:
5390                             size: 11px
5391                             fill: *text_fill
5392                             stroke: { color: *text_stroke, width: 4 }
5393
5394             populated-places-natural-earth-z12-backfill:
5395                 filter: { name: true, source: naturalearthdata.com, $zoom: [12], population: { max: 5000 } }
5396                 draw:
5397                     text-blend-order:
5398                         anchor: center
5399                         priority: 10
5400                         font:
5401                             fill: *text_fill
5402
5403                 z12places-1-ne:
5404                     filter: { min_zoom: [2,3] }
5405                     draw:
5406                         text-blend-order:
5407                             visible: *text_visible_populated_places
5408                             priority: 12
5409                             font:
5410                                 size: 18px
5411                                 stroke: { color: *text_stroke, width: 4 }
5412                     capital:
5413                         filter: { country_capital: true }
5414                         draw:
5415                             text-blend-order:
5416                                 priority: 11
5417                                 font:
5418                                     size: 18px
5419                                     stroke: { color: *text_stroke, width: 4 }
5420
5421                 z12places-2-ne:
5422                     filter: { min_zoom: [4,5,6] }
5423                     draw:
5424                         text-blend-order:
5425                             visible: *text_visible_populated_places
5426                             priority: 14
5427                             font:
5428                                 size: 14px
5429                                 stroke: { color: *text_stroke, width: 4 }
5430                     capital:
5431                         filter: { country_capital: true }
5432                         draw:
5433                             text-blend-order:
5434                                 priority: 13
5435                                 font:
5436                                     size: 14px
5437                                     stroke: { color: *text_stroke, width: 4 }
5438
5439                 z12places-3-ne:
5440                     filter: { min_zoom: [6,7,9,10] }
5441                     draw:
5442                         text-blend-order:
5443                             visible: *text_visible_populated_places
5444                             priority: 16
5445                             font:
5446                                 size: 11px
5447                                 stroke: { color: *text_stroke, width: 4 }
5448                     capital:
5449                         filter: { country_capital: true }
5450                         draw:
5451                             text-blend-order:
5452                                 priority: 15
5453                                 font:
5454                                     size: 11px
5455                                     stroke: { color: *text_stroke, width: 4 }
5456
5457             populated-places-osm-z13-z14:
5458                 filter:
5459                     all:
5460                         - source: [openstreetmap, openstreetmap.org]
5461                         - name: true
5462                         - population: true
5463                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5464                         - $zoom: [13,14]
5465                         - kind_detail: [city,town]
5466                 draw:
5467                     text-blend-order:
5468                         anchor: center
5469                         visible: *text_visible_populated_places
5470                         font:
5471                             weight: 600
5472                             fill: *text_fill
5473                 z14:
5474                     filter:
5475                         $zoom: [14]
5476                     draw:
5477                         text-blend-order:
5478                             font:
5479                                 weight: 600
5480
5481                 z13places-1:
5482                     filter:
5483                         any:
5484                             - { population: { min: 200000 } }
5485                     draw:
5486                         text-blend-order:
5487                             visible: false
5488
5489                 z13places-2:
5490                     filter:
5491                         any:
5492                             - { population: { min: 50000, max: 199999 } }
5493                     draw:
5494                         text-blend-order:
5495                             visible: *text_visible_populated_places
5496                             priority: 5
5497                             font:
5498                                 size: 14px
5499                                 stroke: { color: *text_stroke, width: 4 }
5500
5501                 z13places-3:
5502                     filter:
5503                         any:
5504                         - { population: { min: 5000, max: 49999 } }
5505                     draw:
5506                         text-blend-order:
5507                             visible: *text_visible_populated_places
5508                             priority: 6
5509                             font:
5510                                 size: 12px
5511                                 stroke: { color: *text_stroke, width: 4 }
5512
5513                 z13places-4:
5514                     filter:
5515                         any:
5516                             - population: false
5517                             - population: true
5518                               all:
5519                                 - population: { max: 5000 }
5520                     draw:
5521                         text-blend-order:
5522                             font:
5523                                 size: 12px
5524                                 stroke: { color: *text_stroke, width: 4 }
5525
5526             populated-places-osm-z13-z14-no-population:
5527                 filter:
5528                     all:
5529                         - source: [openstreetmap, openstreetmap.org]
5530                         - name: true
5531                         - population: false
5532                         - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
5533                         - $zoom: [13, 14]
5534                         - kind_detail: [city,town]
5535                 draw:
5536                     text-blend-order:
5537                         anchor: center
5538                         visible: *text_visible_populated_places
5539                         priority: 7
5540                         font:
5541                             size: 11px
5542                             stroke: { color: *text_stroke, width: 4 }
5543
5544             populated-places-natural-earth-z13-z14-backfill:
5545                 filter: { name: true, source: naturalearthdata.com, $zoom: [13,14], population: { max: 5000 } }
5546                 draw:
5547                     text-blend-order:
5548                         anchor: center
5549                         font:
5550                             fill: *text_fill
5551                             weight: 400
5552
5553                 z13places-1-ne:
5554                     filter: { min_zoom: [2,3] }
5555                     draw:
5556                         text-blend-order:
5557                             priority: 8
5558                             interactive: false
5559                             visible: false
5560
5561                 z13places-2-ne:
5562                     filter: { min_zoom: [4,5,6] }
5563                     draw:
5564                         text-blend-order:
5565                             priority: 9
5566                             visible: *text_visible_populated_places
5567                             font:
5568                                 size: 13px
5569                                 stroke: { color: *text_stroke, width: 4 }
5570
5571                 z13places-3-ne:
5572                     filter: { min_zoom: [6,7,9,10] }
5573                     draw:
5574                         text-blend-order:
5575                             visible: *text_visible_populated_places
5576                             priority: 10
5577                             font:
5578                                 size: 12px
5579                                 stroke: { color: *text_stroke, width: 4 }
5580         neighbourhoods:
5581             filter:
5582                 all:
5583                     - name: true
5584                     - kind: [macrohood, neighbourhood]
5585                     - is_landuse_aoi: false
5586             neighborhood-z11:
5587                 filter:
5588                       all:
5589                         - $zoom: [11]
5590                         - min_zoom: [11]
5591                         - max_zoom: { min: 12 }
5592                         #- kind_tile_rank: { max: 6 }
5593                 draw:
5594                     text-blend-order:
5595                         priority: 18
5596                         text_wrap: 10
5597                         visible: *text_visible_neighbourhoods_e
5598                         font:
5599                             size: 9px
5600                             weight: 400
5601                             fill: [0.085,0.658,0.710]
5602                             transform: uppercase
5603                             stroke: { color: [0.894,0.906,0.914], width: 4 }
5604             neighborhood-z12:
5605                 filter:
5606                   all:
5607                     - $zoom: [12]
5608                     - min_zoom: [11,12]
5609                     - max_zoom: { min: 13 }
5610                     #- kind_tile_rank: { max: 8 }
5611                 draw:
5612                     text-blend-order:
5613                         priority: 18
5614                         text_wrap: 10
5615                         visible: *text_visible_neighbourhoods_e
5616                         font:
5617                             size: 10px
5618                             weight: 400
5619                             fill: [0.085,0.658,0.710]
5620                             transform: uppercase
5621                             stroke: { color: [0.894,0.906,0.914], width: 4 }
5622             neighborhood-z13:
5623                 filter:
5624                   all:
5625                     - $zoom: [13]
5626                     - min_zoom: [11,12,13]
5627                     - max_zoom: { min: 14 }
5628                     - kind_tile_rank: { max: 8 }
5629                 draw:
5630                     text-blend-order:
5631                         priority: 18
5632                         text_wrap: 10
5633                         visible: *text_visible_neighbourhoods_e
5634                         font:
5635                             size: 12px
5636                             weight: 400
5637                             fill: [0.085,0.658,0.710]
5638                             transform: uppercase
5639                             stroke: { color: [0.904,0.916,0.924], width: 4 }
5640             neighborhood-z14:
5641                 filter:
5642                   all:
5643                     - $zoom: [14]
5644                     - min_zoom: [11,12,13,14]
5645                     - max_zoom: { min: 15 }
5646                     - kind_tile_rank: { max: 8 }
5647                 draw:
5648                     text-blend-order:
5649                         priority: 18
5650                         text_wrap: 12
5651                         visible: *text_visible_neighbourhoods
5652                         font:
5653                             size: 15px
5654                             weight: 300
5655                             fill: [0.085,0.658,0.710]
5656                             transform: uppercase
5657                             stroke: { color: [0.914,0.926,0.934], width: 5 }
5658             neighborhood-z15:
5659                 filter:
5660                   all:
5661                     - $zoom: [15]
5662                     - min_zoom: [11,12,13,14,15]
5663                     - max_zoom: { min: 16 }
5664                     - kind_tile_rank: { max: 8 }
5665                 draw:
5666                     text-blend-order:
5667                         priority: 18
5668                         text_wrap: 12
5669                         visible: *text_visible_neighbourhoods
5670                         font:
5671                             size: 18px
5672                             weight: 200
5673                             fill: [0.085,0.658,0.710]
5674                             transform: uppercase
5675                             stroke: { color: [0.949,0.953,0.953], width: 6 }
5676                 z15-new:
5677                     filter:
5678                         all:
5679                             - min_zoom: 15
5680                     draw:
5681                         text-blend-order:
5682                             priority: 19
5683                             font:
5684                                 size: 13px
5685             neighborhood-z16:
5686                 filter:
5687                   all:
5688                     - $zoom: [16]
5689                     - min_zoom: [11,12,13,14,15,16]
5690                     - max_zoom: { min: 17 }
5691                     - kind_tile_rank: { max: 8 }
5692                 draw:
5693                     text-blend-order:
5694                         priority: 18
5695                         visible: *text_visible_neighbourhoods
5696                         font:
5697                             size: 20px
5698                             weight: 300
5699                             fill: [0.082,0.780,1.000]
5700                             transform: uppercase
5701                             stroke: { color: [0.949,0.953,0.953], width: 6 }
5702
5703     highway-exit:
5704         data: { source: mapzen, layer: [pois] }
5705         filter: { kind: motorway_junction, $zoom: { min: 15 } }
5706         draw:
5707             icons:
5708                 visible: false
5709             text-blend-order:
5710                 visible: *text_visible_exits
5711                 interactive: true
5712                 text_source: ref
5713                 priority: 52
5714                 font:
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]] }
5718         later:
5719             filter: { $zoom: { min: 16 } }
5720             draw:
5721                 text-blend-order:
5722                     font:
5723                         weight: 600
5724     airport-gate:
5725         data: { source: mapzen, layer: [pois] }
5726         filter: { kind: aeroway_gate, $zoom: { min: 16 } }
5727         draw:
5728             icons:
5729                 visible: false
5730             text-blend-order:
5731                 visible: *text_visible_airport_gate
5732                 interactive: true
5733                 text_source: ref
5734                 font:
5735                     fill: *text_fill_exits
5736                     size: [[16,9px],[17,10px],[20,12px]]
5737                     #stroke: { color: *highway1, width: [[12,2px],[14,3px],[15,3px]] }
5738         later:
5739             filter: { $zoom: { min: 19 } }
5740             draw:
5741                 text-blend-order:
5742                     font:
5743                         weight: 600
5744
5745     pois_and_landuse_labels:
5746         data: { source: mapzen, layer: [pois,landuse] }
5747         visible: *label_visible_poi_landuse
5748         filter:
5749             all:
5750                 - not: { kind: [building,address,apron,residential] }
5751                 - $geometry: point
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 } }
5754                 - any:
5755                     - area: false
5756                       all:
5757                           - $zoom: { min: 12 }
5758                     - area: false
5759                       elevation: true
5760                       all:
5761                           - $zoom: { min: 11 }
5762                     - area: true
5763                       all:
5764                           - kind: true
5765         draw:
5766             icons:
5767                 size: [[13, 18px], [16, 18px], [18, 22px]]
5768                 interactive: true
5769                 visible: false
5770                 priority: 65
5771                 repeat_group: abc
5772                 text:
5773                     visible: false    # labels are enabled by each layer below
5774                     move_into_tile: false # preserves text alignment w/icons in JS
5775                     buffer: 7px
5776                     interactive: true
5777                     font:
5778                         family: *text_font_family
5779                         weight: 600
5780                         fill: [0.10,0.10,0.10]
5781                         size: 10px
5782                         stroke: { color: *text_stroke, width: 3 }
5783             text:
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
5786                 interactive: true
5787                 font:
5788                     family: *text_font_family
5789                     weight: 600
5790                     fill: [0.10,0.10,0.10]
5791                     size: 10px
5792                     stroke: { color: *text_stroke, width: 3 }
5793         poi_labels-z14:
5794             filter: { $zoom: [14] }
5795             draw: { icons: { text: { font: { size: 10px } } } }
5796         poi_labels-z15:
5797             filter: { $zoom: [15,16,17] }
5798             draw: { icons: { text: { font: { size: 10px, stroke: { width: 2 } } } } }
5799         poi_labels-z18:
5800             filter: { $zoom: [18,19] }
5801             draw: { icons: { text: { font: { size: 11px, weight: 600, stroke: { width: 3 } } } } }
5802         poi_labels-z20-up:
5803             filter: { $zoom: { min: 20 } }
5804             draw: { icons: { text: { font: { size: 11px, weight: 600, stroke: { width: 3 }  } } } }
5805
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
5808         text-colours:
5809             greens:
5810                 filter: { kind: [park, national_park, "park or protected land", conservation, protected_area, nature_reserve, forest, grass, beach, battlefield] }
5811                 draw:
5812                     icons:
5813                         text:
5814                             font:
5815                                 fill: [0.032,0.522,0.530]
5816                                 weight: 600
5817                                 stroke:
5818                                     color: *text_stroke_park
5819         no-name:
5820             filter: { name: false }
5821             sports-pitch:
5822                 filter: { kind: [grass, pitch], $geometry: point, area: true, $zoom: { min: 16 } }
5823                 draw:
5824                     icons:
5825                         sprite: function() { return feature.kind_detail; }
5826                         visible: *icon_visible_poi_landuse_e
5827                         priority: 49
5828                 baseball:
5829                     filter: { kind_detail: baseball }
5830                     draw: { icons: { sprite: baseball-field } }
5831                 basketball:
5832                     filter: { kind_detail: basketball }
5833                     draw: { icons: { sprite: basketball-court } }
5834                 football:
5835                     filter: { kind_detail: football }
5836                     draw: { icons: { sprite: football-stadium } }
5837                 hockey:
5838                     filter: { kind_detail: hockey-field }
5839                     draw: { icons: { sprite: hockey-field } }
5840                 soccer:
5841                     filter: { kind_detail: soccer }
5842                     draw: { icons: { sprite: soccer-field } }
5843                 tennis:
5844                     filter: { kind_detail: tennis }
5845                     draw: { icons: { sprite: tennis } }
5846             tree:
5847                 filter: { kind: tree, $zoom: { min: 18 } }
5848                 draw:
5849                     icons:
5850                         # TODO: put tree icons behind the buildings
5851                         # See SF State University #20/37.72314/-122.47772
5852                         sprite: tree
5853                         color: [0.145,0.745,0.643]
5854                         visible: *icon_visible_poi_landuse_e
5855                 z18:
5856                     filter: { $zoom: [18] }
5857                     draw:
5858                         icons:
5859                             # to circle white SMALL
5860                             color: [0.459,0.765,0.722]
5861                             sprite: dot-white
5862                 z19:
5863                     filter: { $zoom: [19] }
5864                     draw:
5865                         icons:
5866                             # to circle white SMALL
5867                             sprite: tree
5868             gate:
5869                 filter: { kind: gate, $zoom: { min: 19 } }
5870                 draw:
5871                     icons:
5872                         # to circle black generic
5873                         sprite: dot-black
5874                         visible: *icon_visible_poi_landuse_e
5875                         text:
5876                             text_source: function() { return 'gate'; }
5877             toilets:
5878                 filter: { kind: toilets, $zoom: { min: 16 }  }
5879                 draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
5880             toilets:
5881                 filter: { kind: toilets, $zoom: { min: 16 }  }
5882                 draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
5883             playground:
5884                 filter: { kind: playground, $zoom: { min: 18 }  }
5885                 draw: { icons: { sprite: playground, visible: *icon_visible_poi_landuse_e } }
5886             picnic_site:
5887                 filter: { kind: [picnic_site, picnic_table], $zoom: { min: 15 }  }
5888                 draw: { icons: { sprite: picnic-spot, visible: *icon_visible_poi_landuse_e } }
5889             information:
5890                 filter: { kind: information, $zoom: { min: 18 }  }
5891                 draw: { icons: { sprite: information, visible: *icon_visible_poi_landuse_e } }
5892             drinking-water:
5893                 filter: { kind: drinking_water, $zoom: { min: 18 }  }
5894                 draw: { icons: { sprite: drinking-water, visible: *icon_visible_poi_landuse_e } }
5895             traffic-signal:
5896                 filter: { kind: traffic_signals, $zoom: { min: 18 } }
5897                 draw:   { icons: { sprite: traffic-signal, visible: *icon_visible_poi_landuse_e } }
5898             bicycle-parking:
5899                 filter: { kind: [bicycle_parking], $zoom: { min: 19 } }
5900                 draw:   { icons: { sprite: bicycle-parking, visible: *icon_visible_poi_landuse_e } }
5901             car-parking:
5902                 filter: { kind: parking, $zoom: { min: 17 } }
5903                 draw:
5904                     icons:
5905                         sprite: parking
5906                         visible: *icon_visible_poi_landuse_e
5907             power_tower:
5908                 filter: { kind: [power_tower], $zoom: { max: 16 } }
5909                 draw:   { icons: { visible: false } }
5910             power_pole:
5911                 filter: { kind: [power_pole], $zoom: { max: 17 } }
5912                 draw:   { icons: { visible: false } }
5913             playgrounds:
5914                 filter:
5915                     all:
5916                         - kind: [playground, allotments, attraction, landmark]
5917                     any:
5918                         - { $zoom: [15], area: { min: 600 } }
5919                         - { $zoom: [16], area: { min: 300 } }
5920                         - { $zoom: { min: 17 } }
5921                 draw:
5922                     icons:
5923                         sprite: function() { return feature.kind; }
5924             pylon:
5925                 filter: { kind: [pylon], $zoom: { max: 17 } }
5926                 draw:   { icons: { visible: false }}
5927             bbq:
5928                 filter: { kind: [bbq], $zoom: { min: 17 } }
5929                 draw:
5930                     icons:
5931                         sprite: bbq
5932                         visible: *icon_visible_poi_landuse_e
5933             ranger-station:
5934                 filter: { kind: [ranger_station], $zoom: { min: 15 } }
5935                 draw:   { icons: { sprite: ranger-station, visible: *icon_visible_poi_landuse_e } }
5936             trailhead:
5937                 filter: { kind: [trailhead], $zoom: { min: 15 } }
5938                 draw:   { icons: { sprite: trailhead, visible: *icon_visible_poi_landuse_e } }
5939             firepit:
5940                 filter: { kind: [firepit], $zoom: { min: 15 } }
5941                 draw:   { icons: { sprite: firepit, visible: *icon_visible_poi_landuse_e } }
5942             swimming-area:
5943                 filter: { kind: [swimming_area], $zoom: { min: 15 } }
5944                 draw:   { icons: { sprite: swimming-area, visible: *icon_visible_poi_landuse_e } }
5945             fishing_area:
5946                 filter: { kind: [fishing_area], $zoom: { min: 15 } }
5947                 draw:   { icons: { sprite: fishing-area, visible: *icon_visible_poi_landuse_e } }
5948             slipway:
5949                 filter: { kind: [slipway], $zoom: { min: 15 } }
5950                 draw:   { icons: { sprite: slipway, visible: *icon_visible_poi_landuse_e } }
5951             hot-spring:
5952                 filter: { kind: [hot_spring], $zoom: { min: 15 } }
5953                 draw:   { icons: { sprite: hot-spring, visible: *icon_visible_poi_landuse_e } }
5954             spring:
5955                 filter: { kind: [spring], $zoom: { min: 15 } }
5956                 draw:   { icons: { sprite: spring, visible: *icon_visible_poi_landuse_e } }
5957             shower:
5958                 filter: { kind: [shower], $zoom: { min: 15 } }
5959                 draw:   { icons: { sprite: shower, visible: *icon_visible_poi_landuse_e } }
5960             geyser:
5961                 filter: { kind: [geyser], $zoom: { min: 15 } }
5962                 draw:   { icons: { sprite: geyser, visible: *icon_visible_poi_landuse_e } }
5963             observatory:
5964                     filter: { kind: [observatory], $zoom: { min: 14 } }
5965                     draw:   { icons: { sprite: observatory, visible: *icon_visible_poi_landuse_e } }
5966             boat-rental:
5967                     filter: { kind: [boat_rental], $zoom: { min: 15 } }
5968                     draw:   { icons: { sprite: boat-rental, visible: *icon_visible_poi_landuse_e } }
5969             water-tower:
5970                     filter: { kind: [water_tower], $zoom: { min: 15 } }
5971                     draw:   { icons: { sprite: water-tower, visible: *icon_visible_poi_landuse_e } }
5972             battlefield:
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] }
5977                 draw:
5978                     icons:
5979                         sprite: generic
5980                         visible: *icon_visible_poi_landuse_e
5981                         text:
5982                             visible: true
5983                             text_source: ref
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] }
5986                 draw:
5987                     icons:
5988                         priority: 43
5989                         sprite: generic
5990                 hide-early:
5991                     filter: { kind: [recreation_track, dam] }
5992                     draw:
5993                         icons:
5994                             priority: 50
5995                     early:
5996                         filter: { $zoom: { max: 15 } }
5997                         draw:
5998                             icons:
5999                                 visible: false
6000         has-name:
6001             filter: { name: true }
6002             # match 1:1 correlations between data and sprite name
6003             direct-match:
6004                 filter:
6005                     all:
6006                         - area: false
6007                 draw:
6008                     icons:
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
6013             generic-icons:
6014                filter: { $zoom: { min: 18 }, area: false }
6015                draw:
6016                    icons:
6017                        priority: 47
6018                        sprite_default: generic
6019                        visible: *icon_visible_poi_landuse
6020
6021             # add generic icon at high zoom
6022             default-label-names:
6023                filter: { $zoom: { min: 13 }, area: false }
6024                draw:
6025                     icons:
6026                         text:
6027                            visible: *text_visible_poi_landuse
6028             landuse-labels-green-areas-national-park:
6029                 filter:
6030                     all:
6031                         - area: true
6032                         - $geometry: point
6033                         - kind: [national_park]
6034                     any:
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 } }
6046                 national-park:
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
6050                     draw:
6051                         icons:
6052                             visible: *icon_visible_landuse_green
6053                             sprite: park
6054                             priority: 41
6055                             text:
6056                                 visible: *text_visible_landuse_green
6057                                 font:
6058                                     style: italic
6059                                     stroke: { color: *text_stroke_park, width: 4 }
6060                     natl-park-labels-z4-z5:
6061                         filter: { $zoom: [4,5] }
6062                         draw:
6063                             icons:
6064                                 visible: false
6065                                 text: { font: { size: 9px, stroke: { width: 2px } } }
6066                     natl-park-labels-z6:
6067                         filter: { $zoom: [6] }
6068                         draw:
6069                             icons:
6070                                 text: { font: { size: 9px, stroke: { width: 2px } } }
6071                     natl-park-labels-z7:
6072                         filter: { $zoom: [7] }
6073                         draw:
6074                             icons:
6075                                 text: { font: { size: 10px, stroke: { width: 2px } } }
6076                     natl-park-labels-z8:
6077                         filter: { $zoom: [8,9] }
6078                         draw:
6079                             icons:
6080                                 text: { font: { size: 11px, stroke: { width: 2px } } }
6081                     natl-park-labels-z10:
6082                         filter: { $zoom: {min: 10, max: 14 } }
6083                         draw:
6084                             icons:
6085                                 text: { font: { size: 12px } }
6086                     poi_labels-z14:
6087                         filter: { $zoom: [14] }
6088                         draw: { icons: { text: { font: { size: 11px } } } }
6089                     poi_labels-z15:
6090                         filter: { $zoom: [15,16,17] }
6091                         draw: { icons: { text: { font: { size: 11px } } } }
6092                     poi_labels-z18:
6093                         filter: { $zoom: [18,19] }
6094                         draw: { icons: { text: { font: { size: 11px } } } }
6095                     poi_labels-z20-up:
6096                         filter: { $zoom: { min: 20 } }
6097                         draw: { icons: { text: { font: { size: 11px } } } }
6098             landuse-labels-green-areas-not-national-park:
6099                 filter:
6100                     all:
6101                         - area: true
6102                         - $geometry: point
6103                         - kind: [park, national_park, "park or protected land", conservation, protected_area, nature_reserve, forest, grass]
6104                     any:
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 } }
6118                 not-national-park:
6119                     filter: function() { return feature.name && !((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
6120                     draw:
6121                         icons:
6122                             visible: *icon_visible_landuse_green
6123                             sprite: park
6124                             priority: 41
6125                             text:
6126                                 visible: *text_visible_landuse_green
6127                                 font:
6128                                     #fill: [0.032,0.522,0.530]
6129                                     # fill: [0.093,0.473,0.408]
6130                                     size: 11px
6131                                     style: italic
6132                                     stroke: { color: *text_stroke_park, width: 3 }
6133                     green-areas-z6:
6134                         # mojave national preserve
6135                         filter: { $zoom: [6] }
6136                         draw:
6137                             icons:
6138                                 visible: false
6139                                 text: { font: { size: 10px, stroke: { width: 2px } } }
6140                     green-areas-z7:
6141                         filter: { $zoom: [7] }
6142                         draw:
6143                             icons:
6144                                 visible: false
6145                                 text: { font: { size: 10px, stroke: { width: 2px } } }
6146                     green-areas-z17-up:
6147                         filter: { $zoom: { min: 17 } }
6148                         draw:
6149                             icons:
6150                                 text:
6151                                     font:
6152                                         size: 11px
6153                                         stroke: { color: *text_stroke, width: 4 }
6154
6155                     wilderness-areas:
6156                         filter: function() { return feature.name && (feature.name.indexOf("Wilderness") > -1 || feature.name.indexOf("BLM") > -1) }
6157                         draw:
6158                             icons:
6159                                 sprite: forest
6160                         early:
6161                            filter: { $zoom: { max: 8 } }
6162                            draw:
6163                                 icons:
6164                                     visible: false
6165                                     text: { visible: false }
6166                     early-not-national-park:
6167                         filter: { not: { kind: [national_park] }, $zoom: { max: 6 } }
6168                         draw:
6169                             icons:
6170                                 visible: false
6171                                 text: { visible: false }
6172                     not-national-park:
6173                         filter: function() { return feature.name && !((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
6174                         # draw:
6175                         #     icons:
6176                         #         sprite: park
6177                         early:
6178                             filter: { $zoom: { max: 8 } }
6179                             draw:
6180                                 icons:
6181                                     visible: false
6182                                     text: { visible: false }
6183                     forest:
6184                         filter: function() { return ( (feature.name && feature.name.indexOf("Forest") > -1) || (feature.protect_class >=6 && feature.name.indexOf("Park") < 0) ) }
6185                         draw:
6186                             icons:
6187                                 sprite: forest
6188                         early:
6189                             filter: { $zoom: { max: 8 } }
6190                             draw:
6191                                 icons:
6192                                     visible: false
6193                                     text: { visible: false }
6194                     hide-till-later:
6195                         filter: { kind: [grass], $zoom: { max: 16 } }
6196                         draw:
6197                             icons:
6198                                 visible: false
6199                                 text: { visible: false }
6200                     only-text-later:
6201                         filter: { kind: [grass], $zoom: { min: 16 } }
6202                         draw:
6203                             icons:
6204                                 visible: false
6205                                 text: { font: { style: italic } }
6206             battlefield:
6207                 filter:
6208                     all:
6209                         - area: true
6210                         - $geometry: point
6211                         - kind: [battlefield]
6212                     any:
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 } }
6224                 draw:
6225                     icons:
6226                         visible: *icon_visible_landuse_green
6227                         sprite: battlefield
6228                         priority: 41
6229                         text:
6230                             visible: *text_visible_landuse_green
6231                             font:
6232                                 #fill: [0.058,0.605,0.615]
6233                                 # fill: [0.093,0.473,0.408]
6234                                 style: italic
6235                                 stroke: { color: *text_stroke_park, width: 4 }
6236             beach:
6237                 filter:
6238                     all:
6239                         - area: true
6240                         - $geometry: point
6241                         - kind: [beach]
6242                     any:
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 } }
6252                 draw:
6253                     icons:
6254                         visible: *icon_visible_landuse_green
6255                         interactive: true
6256                         sprite: beach
6257                         text:
6258                             visible: *text_visible_landuse_green
6259                             interactive: true
6260             airport:
6261                 filter:
6262                     all:
6263                         - kind: [airport, aerodrome]
6264                         - area: true
6265                         - $geometry: point
6266                     any:
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 } }
6279                 draw:
6280                     icons:
6281                         sprite: airport
6282                         visible: *icon_visible_landuse_green
6283                         priority: 42
6284                         text:
6285                             visible: *text_visible_landuse_green
6286                             text_source: function() { if(feature.iata) { return feature.name + ' (' + feature.iata + ')'; } else { return feature.name; } }
6287                             font:
6288                                 #fill: [0.10,0.10,0.10]
6289                                 size: 10px
6290                                 stroke: { color: *text_stroke, width: 4 }
6291                 early:
6292                     filter: { $zoom: [9,10,11] }
6293                     # todo: huh?
6294                     draw: { icons: { text: { text_source: iata, font: { size: 11px } } } }
6295                 early2:
6296                     filter: { $zoom: { min: 12, max: 14 } }
6297                     draw: { icons: { text: { font: { size: 11px } } } }
6298             university:
6299                 filter:
6300                     all:
6301                         - kind: [university, college]
6302                         - area: true
6303                         - $geometry: point
6304                         - not: { $layer: buildings }
6305                     any:
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
6319                 draw:
6320                     icons:
6321                         sprite: college-university
6322                         visible: *icon_visible_landuse_green
6323                         priority: 41
6324                         text:
6325                             visible: *text_visible_landuse_green
6326                             font:
6327                                 #fill: [0.10,0.10,0.10]
6328                                 size: 10px
6329                                 stroke: { color: *text_stroke, width: 4 }
6330                 # early:
6331                 #     filter: { $zoom: { max: 12 } }
6332                 #     draw: { icons: { text: { visible: false } } }
6333                 early2:
6334                     filter: { $zoom: { max: 14 } }
6335                     draw: { icons: { text: { font: { size: 10px } } } }
6336             school:
6337                 filter:
6338                     all:
6339                         - kind: [school, kindergarten]
6340                         - area: true
6341                         - $geometry: point
6342                         - not: { $layer: buildings }
6343                     any:
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 } }
6352                 draw:
6353                     icons:
6354                         sprite: school
6355                         visible: *icon_visible_landuse_green
6356                         priority: 41
6357                         text:
6358                             visible: *text_visible_landuse_green
6359                             font:
6360                                 #fill: [0.10,0.10,0.10]
6361                                 size: 10px
6362                                 stroke: { color: *text_stroke, width: 4 }
6363                 early:
6364                     filter: { $zoom: { max: 14 } }
6365                     draw: { icons: { text: { font: { size: 11px } } } }
6366             winter_sports:
6367                 filter:
6368                     all:
6369                         - kind: winter_sports
6370                         - area: true
6371                         - $geometry: point
6372                     any:
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 } }
6384                 draw:
6385                     icons:
6386                         sprite: ski-area
6387                         visible: *icon_visible_landuse_green
6388                         priority: 41
6389                         text:
6390                             visible: *text_visible_landuse_green
6391                             font:
6392                                 #fill: [0.10,0.10,0.10]
6393                                 size: 10px
6394                                 stroke: { color: *text_stroke, width: 4 }
6395 #                early:
6396 #                    filter: { $zoom: { max: 14 } }
6397 #                    draw: { icons: { text: { font: { size: 10px } } } }
6398             tourism-related:
6399                 filter:
6400                     all:
6401                         - kind: [zoo, theme_park, resort, aquarium, winery, maze, stadium, enclosure, animal]
6402                         - area: true
6403                         - $geometry: point
6404                     any:
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 } }
6412                 draw:
6413                     icons:
6414                         sprite: function() { return feature.kind; }
6415                         sprite_default: generic
6416                         visible: *icon_visible_poi_landuse
6417                         priority: 43
6418                         text:
6419                             visible: *text_visible_poi_landuse
6420                             font:
6421                                 #fill: [0.10,0.10,0.10]
6422                                 size: 10px
6423                                 stroke: { color: *text_stroke, width: 4 }
6424                 enclosure:
6425                     filter: { kind: [enclosure, animal] }
6426                     draw:
6427                         icons:
6428                             visible: false
6429                             sprite_default: dot-black
6430                         text:
6431                             text_wrap: 10
6432                             font:
6433                                 style: italic
6434                                 weight: 400
6435                 #early-sizing:
6436 #                    filter: { $zoom: { max: 14 } }
6437 #                    draw: { icons: { text: { font: { size: 10px } } } }
6438             playgrounds_allotments_attraction_landmark_supermarket:
6439                 filter:
6440                     all:
6441                         - kind: [playground, allotments, attraction, landmark, supermarket]
6442                         - area: true
6443                         - $geometry: point
6444                     any:
6445                         - { $zoom: [15], area: { min: 600 } }
6446                         - { $zoom: [16], area: { min: 300 } }
6447                         - { $zoom: { min: 17 } }
6448                 draw:
6449                     icons:
6450                         visible: *icon_visible_landuse_green
6451                         priority: 41
6452                         text:
6453                             visible: *text_visible_landuse_green
6454                             font:
6455                                 size: 10px
6456                                 stroke: { color: *text_stroke, width: 4 }
6457                 attraction:
6458                     filter: { kind: [attraction] }
6459                     draw:
6460                         icons:
6461                             sprite: attraction
6462                 landmark:
6463                     filter: { kind: [landmark] }
6464                     draw:
6465                         icons:
6466                             sprite: landmark
6467             glacier:
6468                 filter:
6469                     all:
6470                         - kind: glacier
6471                         - area: true
6472                         - $geometry: point
6473                     any:
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 } }
6481                 draw:
6482                     icons:
6483                         visible: false
6484                     text:
6485                         visible: true
6486                         priority: 44
6487                         interactive: true
6488                         text_wrap: 10
6489                         font:
6490                             weight: 400
6491                             style: italic
6492                             fill: '#4ba3c5'
6493             landuse-labels-not-any-above:
6494                 filter:
6495                     all:
6496                         - $zoom: { min: 6 }
6497                         - area: true
6498                         - $geometry: point
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] }
6500                     any:
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 } }
6514                 draw:
6515                     icons:
6516                         sprite: function() { return feature.kind; }
6517                         sprite_default: generic
6518                         visible: *icon_visible_poi_landuse
6519                         priority: 43
6520                         text:
6521                             visible: *text_visible_poi_landuse
6522                             font:
6523                                 weight: 600
6524                                 size: 10px
6525                                 stroke: { color: *text_stroke, width: 3 }
6526                 landuse-z18:
6527                     filter: { $zoom: { min: 18 } }
6528                     draw:
6529                         icons:
6530                             text:
6531                                 font:
6532                                     size: 11px
6533                                     stroke: { color: *text_stroke, width: 4 }
6534                 # building-like:
6535                 #     filter: { kind: [commercial,residential,warehouse,public,dormitory], osm_relation: false }
6536                 #     draw:
6537                 #         icons:
6538                 #             sprite: building
6539                 residential-relations-paris-wtf-early:
6540                     filter: { kind: [residential], osm_relation: true, $zoom: { max: 13 } }
6541                     draw:
6542                         icons:
6543                             visible: false
6544                             text: { visible: false }
6545                 residential-relations-paris-wtf:
6546                     filter: { kind: [residential], osm_relation: true, $zoom: { min: 13 } }
6547                     draw:
6548                         icons:
6549                             visible: false
6550                             text:
6551                                 visible: true
6552                                 text_source: short_name
6553                 hide-till-later:
6554                     filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland,pitch], $zoom: { max: 17 } }
6555                     draw:
6556                         icons:
6557                             visible: false
6558                             text: { visible: false }
6559                 only-text-later:
6560                     filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland,pitch], $zoom: { min: 17 } }
6561                     draw:
6562                         icons:
6563                             visible: false
6564                             text: { font: { style: italic } }
6565                 burial_vault-early:
6566                     filter: { kind: [burial_vault], $zoom: { max: 19 } }
6567                     draw:
6568                         icons:
6569                             visible: false
6570                             text:  { visible: false }
6571                 garden-area-early:
6572                    filter:
6573                        all:
6574                            - kind: [garden, allotments]
6575                        any:
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 } }
6581                    draw:
6582                        icons:
6583                            visible: false
6584             university-poi:
6585                 filter: { kind: [university, college], area: false, $zoom: { max: 16 } }
6586                 draw:
6587                     icons:
6588                         visible: false
6589                         text:  { visible: false }
6590             office-early:
6591                 filter:
6592                     any:
6593                         - { kind: [insurance, office, company], $zoom: [15], area: { max: 10000 } }
6594                         - { kind: [insurance, office, company], $zoom: [16], area: { max: 5000 } }
6595                 draw:
6596                     icons:
6597                         visible: false
6598                         text:  { visible: false }
6599             bank-early:
6600                 filter: { kind: [bank], $zoom: { max: 17 } }
6601                 draw:
6602                     icons:
6603                         visible: false
6604                         text:  { visible: false }
6605             garden-no-area-early2:
6606                 filter: { kind: [garden, allotments], $zoom: { max: 16 }, area: false }
6607                 draw:
6608                     icons:
6609                         visible: false
6610             garden-no-area-early:
6611                 filter: { kind: [garden, allotments], $zoom: [16], area: false }
6612                 draw:
6613                     icons:
6614                         priority: 45
6615                         size: 14px
6616                         text:  { font: { size: 10px, style: italic } }
6617             garden-no-area-later:
6618                 filter: { kind: [garden, allotments], $zoom: { min: 17 }, area: false }
6619                 draw:
6620                     icons:
6621                         priority: 45
6622                         size: 16px
6623                         text:  { font: { size: 11px, style: italic } }
6624             post-office-early:
6625                 filter: { kind: [post_office], $zoom: { max: 14 } }
6626                 draw:
6627                     icons:
6628                         visible: false
6629                         text:  { visible: false }
6630             pylon-early:
6631                 filter: { kind: [pylon], name: true, $zoom: { max: 18 } }
6632                 draw:   { icons: { text: { visible: false } } }
6633             school-early:
6634                 filter: { kind: [school, kindergarten], $zoom: { max: 16 } }
6635                 draw:
6636                     icons:
6637                         visible: false
6638                         text:  { visible: false }
6639             atm-early:
6640                 filter: { kind: [atm], $zoom: { max: 18 } }
6641                 draw:
6642                     icons:
6643                         visible: false
6644                         text:  { visible: false }
6645             bicycle-parking-early:
6646                 filter: { kind: [bicycle_parking], $zoom: { max: 19 } }
6647                 draw:
6648                     icons:
6649                         visible: false
6650                         text:  { visible: false }
6651             true-early:
6652                 filter: { kind: [true], $zoom: { max: 18 } }
6653                 draw:
6654                     icons:
6655                         visible: false
6656                         text:  { visible: false }
6657             peak-early:
6658                 filter: { kind: [peak, volcano] }
6659                 draw:
6660                     icons:
6661                         visible: *icon_visible_landuse_green
6662                         priority: 43
6663                         text:  { visible: *text_visible_landuse_green }
6664                 low-priority-early-z11:
6665                     filter: { kind_tile_rank: { min: 3 }, $zoom: [11,12] }
6666                     draw:
6667                         icons:
6668                             visible: false
6669                             text: { visible: false }
6670                 low-priority-early-z13:
6671                     filter: { kind_tile_rank: { min: 4 }, $zoom: [13] }
6672                     draw:
6673                         icons:
6674                             visible: false
6675                             text: { visible: false }
6676                 peak-labels-later:
6677                     filter: { kind: [peak, volcano], $zoom: { min: 14 } }
6678                     draw:
6679                         icons:
6680                             text:
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; } } }
6682             waterfall-early:
6683                 filter: { kind: [waterfall], $zoom: { max: 14 } }
6684                 draw:
6685                     icons:
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] }
6690                     draw:
6691                         icons:
6692                             visible: false
6693                             text: { visible: false }
6694                 low-priority-early-z13:
6695                     filter: { kind_tile_rank: { min: 4 }, $zoom: [13] }
6696                     draw:
6697                         icons:
6698                             visible: false
6699                             text: { visible: false }
6700             waterfall-labels:
6701                 filter: { kind: [waterfall], $zoom: { min: 14 } }
6702                 draw:
6703                     icons:
6704                         text:
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 } }
6708                 draw:
6709                     icons:
6710                         visible: false
6711                         text:  { visible: false }
6712             memorial-early:
6713                 filter: { kind: [memorial], $zoom: { max: 13 } }
6714                 draw:
6715                     icons:
6716                         visible: false
6717                         text:  { visible: false }
6718             animal-points-early:
6719                 filter: { kind: [animal], area: false, $zoom: { max: 18 } }
6720                 draw:
6721                     icons:
6722                         visible: false
6723                         text:  { visible: false }
6724 #            animal-areas-early:
6725 #                filter: { kind: [animal], area: { min: 500 }, $zoom: { max: 18 } }
6726 #                draw:
6727 #                    icons:
6728 #                        visible: false
6729 #                        text:  { visible: false }
6730             parking-labels-early:
6731                 filter:
6732                     kind: [parking]
6733                     $zoom: { max: 18 }
6734                 draw:
6735                     icons:
6736                         visible: false
6737                         text:
6738                             visible: false
6739             parking-labels:
6740                 filter:
6741                     kind: [parking]
6742                     $zoom: { min: 18 }
6743                 draw:
6744                     icons:
6745                         text:
6746                             visible: *text_visible_poi_landuse
6747                             font:
6748                                 size: 10px
6749                                 stroke: { color: *text_stroke, width: 4 }
6750             landuse-funky:
6751                 filter: { kind: [commercial, residential, wood], $zoom: { max: 17 } }
6752                 draw:
6753                     icons:
6754                         visible: false
6755                         text:
6756                             visible: false
6757             car-sharing:
6758                 filter: { kind: car_sharing }
6759                 icons-early:
6760                     filter: { $zoom: { max: 17 } }
6761                     draw:
6762                         icons:
6763                             visible: false
6764                 text-labels-early:
6765                     filter: { $zoom: { max: 19 } }
6766                     draw:
6767                         icons:
6768                             text:
6769                                 visible: false
6770             bicycle_rental_station-early:
6771                 filter: { kind: bicycle_rental_station }
6772                 icons-early:
6773                     filter: { $zoom: { max: 17 } }
6774                     draw:
6775                         icons:
6776                             size: [[16, 14px], [17, 16px], [18, 20px]]
6777                 early-names:
6778                     filter: { $zoom: { max: 17 } }
6779                     draw:
6780                         icons:
6781                             text:
6782                                 visible: false
6783             tower:
6784                 filter: { kind: [tower], label_placement: true }
6785                 draw:
6786                     icons:
6787                         visible: false
6788                         text:
6789                             font:
6790                                 style: italic
6791             station-train-subway:
6792                 filter: { kind: [station, train-station, train_station], $zoom: { min: 11 } }
6793                 visible: *label_visible_station
6794                 draw:
6795                     icons:
6796                         visible: *icon_visible_station
6797                         sprite: train-station
6798                         size: [[13, 12px], [14, 12px], [15, 16px], [17, 18px], [18, 20px]]
6799                         priority: 41
6800                         text:
6801                             visible: *text_visible_station
6802                             font:
6803                                 weight: 600
6804                                 size: 10px
6805                                 stroke: { color: *text_stroke, width: 4 }
6806                 low-priority-early:
6807                     filter: { kind_tile_rank: { min: 5 }, $zoom: { min: 0, max: 13 } }
6808                     draw:
6809                         icons:
6810                             visible: false
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] }
6815                     draw:
6816                         icons:
6817                             visible: false
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] }
6822                     draw:
6823                         icons:
6824                             #size: [[14, 11px], [15, 16px], [17, 18px], [18, 20px]]
6825                             #visible: false
6826                             text: { visible: false }
6827                 stations-later:
6828                     filter: { $zoom: { min: 18 } }
6829                     draw:
6830                         icons:
6831                             text:
6832                                 font:
6833                                     size: 11px
6834             tram-stop-early:
6835                 filter: { kind: tram_stop, $zoom: { max: 15 } }
6836                 draw:
6837                     icons:
6838                         visible: false
6839                         text:
6840                             visible: false
6841             tram-stop-early-z15:
6842                 filter: { kind: tram_stop, $zoom: [15] }
6843                 draw:
6844                     icons:
6845                         text:
6846                             visible: false
6847             tram-stop:
6848                 filter: { kind: tram_stop, $zoom: { min: 15 } }
6849                 draw:
6850                     icons:
6851                         size: [[16, 12px], [17, 18px]]
6852             glaciers-pois:
6853                 filter: { $zoom: { min: 14 }, kind: glacier, area: false }
6854                 draw:
6855                     icons:
6856                         visible: false
6857                         text:
6858                             visible: false
6859                     text:
6860                         visible: false
6861                         priority: 45
6862                         interactive: true
6863                         text_wrap: 10
6864                         font:
6865                             weight: 400
6866                             style: italic
6867                             fill: '#4ba3c5'
6868             bus-stop-bus-station-labels:
6869                 filter:
6870                     kind: [bus_stop, bus_station]
6871                     $zoom: { min: 18 }
6872                 draw:
6873                     icons:
6874                         size: [[17, 8px], [19, 18px]]
6875                         text:
6876                             visible: *text_visible_poi_landuse
6877                             font:
6878                                 size: 10px
6879                                 stroke: { color: *text_stroke, width: 4 }
6880             bus_stop-early:
6881                 filter:
6882                     kind: [bus_stop]
6883                     $zoom: { max: 17 }
6884                 draw:
6885                     icons:
6886                         visible: false
6887                         text:
6888                             visible: false
6889             bus_stop-early-z17:
6890                 filter:
6891                     kind: [bus_stop]
6892                     $zoom: [17,18]
6893                 draw:
6894                     icons:
6895                         size: [[17, 16px], [19, 18px]]
6896                         text:
6897                             visible: false
6898             minor-z17-early:
6899                 filter:
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]
6901                     area: false
6902                     $zoom: { max: 17 }
6903                 draw:
6904                     icons:
6905                         visible: false
6906                         text:  { visible: false }
6907             minor-z18-early:
6908                 filter:
6909                     kind: [bench, waste_basket]
6910                     area: false
6911                     $zoom: { max: 18 }
6912                 draw:
6913                     icons:
6914                         visible: false
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] }
6918                 draw:
6919                     icons:
6920                         order: 41
6921                         sprite: generic
6922                         text:
6923                             order: 42
6924             outdoor-has-icons:
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] }
6926                 draw:
6927                     icons:
6928                         order: 41
6929                         text:
6930                             order: 42
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] } }
6933                 draw:
6934                     icons:
6935                         order: 45
6936                         text:
6937                             order: 46
6938             suppress-early:
6939                 filter: { $zoom: { max: 15 }, kind: [scrub, wetland, scree, meadow, grass, farmyard, farmland, wood, pier, breakwater, groyne, dike, cutline, residential, retail, commercial, industrial] }
6940                 draw:
6941                     icons:
6942                         visible: false
6943                     text:
6944                         visible: false
6945                 meadow:
6946                     filter: { kind: [meadow], $zoom: [14] }
6947                     draw:
6948                         text:
6949                             visible: true
6950                             text_wrap: 10
6951                             font:
6952                                 style: italic
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] }
6955                 draw:
6956                     icons:
6957                         visible: false
6958                     text:
6959                         visible: true
6960                         text_wrap: 10
6961                         font:
6962                             style: italic
6963             icons:
6964                 adult-boutique:
6965                     filter: { kind: [erotic, adult_boutique] }
6966                     draw:   { icons: { sprite: adult-boutique } }
6967                 allotments:
6968                     filter: { kind: [allotments] }
6969                     draw:   { icons: { sprite: allotments } }
6970                 airport:
6971                     filter: { kind: [airport, aerodrome] }
6972                     draw:   { icons: { sprite: airport } }
6973                 animal-shelter:
6974                     filter: { kind: [animal_shelter, animal-shelter, animal_boarding] }
6975                     draw:   { icons: { sprite: animal-shelter } }
6976                 antique-shop:
6977                     filter: { kind: [antiques, antique-shop] }
6978                     draw:   { icons: { sprite: antique-shop } }
6979                 art-gallery:
6980                     filter: { kind: [art_gallery, art-gallery, art, artwork] }
6981                     draw:   { icons: { sprite: art-gallery } }
6982                 athletics-sports:
6983                     filter: { kind: [athletic_sports, recreation_ground, sports_centre] }
6984                     draw:   { icons: { sprite: athletics-sports } }
6985                 automotive-shop:
6986                     filter: { kind: [car_repair, automotive-shop, automotive, tyres] }
6987                     draw:   { icons: { sprite: automotive-shop } }
6988                 bbq:
6989                     filter: { kind: [bbq] }
6990                     draw:   { icons: { sprite: bbq } }
6991                 bakery:
6992                     filter: { kind: [bakery, pastry, chocolate] }
6993                     draw:   { icons: { sprite: bakery } }
6994                 bar:
6995                     filter: { kind: [pub, bar] }
6996                     draw:   { icons: { sprite: bar } }
6997                 beach-resort:
6998                     filter: { kind: [beach_resort] }
6999                     draw:   { icons: { sprite: beach-resort } }
7000                 beer-garden:
7001                     filter: { kind: [biergarten, beer-garden, brewery] }
7002                     draw:   { icons: { sprite: beer-garden } }
7003                 bike-shop:
7004                     filter: { kind: [bicycle, bicycle_rental, bike, bike_shop, bicycle_rental_station] }
7005                     draw:   { icons: { sprite: bike-shop } }
7006                 bicycle-parking:
7007                     filter: { kind: [bicycle_parking] }
7008                     draw:   { icons: { sprite: bicycle-parking } }
7009                 boat-ferry:
7010                     filter: { kind: [ferry_terminal, boat-ferry, ferry-boat, ferry] }
7011                     draw:   { icons: { sprite: boat-ferry } }
7012                 boat-ramp:
7013                     filter: { kind: [boat-ramp, boat_ramp] }
7014                     draw:   { icons: { sprite: boat-ramp } }
7015                 bookstore:
7016                     filter: { kind: [books, bookstore] }
7017                     draw:   { icons: { sprite: bookstore } }
7018                 bowling-alley:
7019                     filter: { kind: [bowling_alley, bowling-alley] }
7020                     draw:   { icons: { sprite: bowling-alley } }
7021                 bridal-shop:
7022                     filter: { kind: [bridal, bridal-shop] }
7023                     draw:   { icons: { sprite: bridal-shop } }
7024                 building-icon:
7025                     filter: { kind: [building, auditorium, terminal, hangar, retirement_home, manor, recreation_center, apartments] }
7026                     draw:   { icons: { sprite: building } }
7027                     early:
7028                        filter:
7029                            any:
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 } }
7035                        draw:
7036                            icons:
7037                                visible: false
7038                                text:
7039                                    visible: false
7040                 burger:
7041                     filter: { kind: [fast_food, burger] }
7042                     draw:   { icons: { sprite: burger } }
7043                 bus-station:
7044                     filter: { kind: [bus_stop, bus_station] }
7045                     draw:   { icons: { sprite: bus-station } }
7046                 camera-store:
7047                     filter: { kind: [camera, camera-store, photo] }
7048                     draw:   { icons: { sprite: camera-store } }
7049                 campground:
7050                     filter: { kind: [campground, camp_site] }
7051                     draw:   { icons: { sprite: campground } }
7052                 candy-store:
7053                     filter: { kind: [candy, candy-store, confectionery] }
7054                     draw:   { icons: { sprite: candy-store } }
7055                 caravan-site:
7056                     filter: { kind: [caravan_site] }
7057                     draw:   { icons: { sprite: caravan-site } }
7058                 car-dealership:
7059                     filter: { kind: [car, car-dealership] }
7060                     draw:   { icons: { sprite: car-dealership } }
7061                 car-wash:
7062                     filter: { kind: [car_wash, car-wash] }
7063                     draw:   { icons: { sprite: car-wash } }
7064                 castle:
7065                     filter: { kind: [castle, fort] }
7066                     draw:   { icons: { sprite: castle } }
7067                 cemetery:
7068                     filter: { kind: [grave_yard, cemetery] }
7069                     draw:   { icons: { sprite: cemetery } }
7070                 cheese-shop:
7071                     filter: { kind: [cheese, cheese-shop] }
7072                     draw:   { icons: { sprite: cheese-shop } }
7073                 clothing-store:
7074                     filter: { kind: [clothes, chothing-store, "clothes store", fashion] }
7075                     draw:   { icons: { sprite: clothing-store } }
7076                 coffee-shop:
7077                     filter: { kind: [cafe, coffee-shop] }
7078                     draw:   { icons: { sprite: coffee-shop } }
7079                 college-university:
7080                     filter: { kind: [university, college, college-university], area: false }
7081                     draw:   { icons: { sprite: college-university } }
7082                 commercial:
7083                     filter: { kind: [commercial] }
7084                     draw:   { icons: { sprite: mall } }
7085                 concert-hall:
7086                     filter: { kind: [music_venue] }
7087                     draw:   { icons: { sprite: concert-hall } }
7088                 convenience-store:
7089                     filter: { kind: [convenience, convenience-store, convenience_store, beverages] }
7090                     draw:   { icons: { sprite: convenience-store } }
7091                 cosmetics-shop:
7092                     filter: { kind: [cosmetics, cosmetics-shop, beauty] }
7093                     draw:   { icons: { sprite: cosmetics-shop } }
7094                 dam:
7095                     filter: { kind: [dam] }
7096                     draw:   { icons: { sprite: dot-black } }
7097                 department-store:
7098                     filter: { kind: [department_store, department-store] }
7099                     draw:   { icons: { sprite: department-store } }
7100                 doctors:
7101                     filter: { kind: [doctors, clinic] }
7102                     draw:   { icons: { sprite: doctors } }
7103                 dog-park:
7104                     filter: { kind: [dog_park, dog_run, dog-run] }
7105                     draw:   { icons: { sprite: dog-park } }
7106                 drinking-water:
7107                     filter: { kind: drinking_water }
7108                     draw: { icons: { sprite: drinking-water } }
7109                 dry-cleaning:
7110                     filter: { kind: [dry_cleaning] }
7111                     draw:   { icons: { sprite: dry-cleaning } }
7112                 electronics-store:
7113                     filter: { kind: [electronics, electronics-store, computer] }
7114                     draw:   { icons: { sprite: electronics-store } }
7115                 factory:
7116                     filter: { kind: [factory, industrial, chimney, sub_station, substation, wastewater_plant, works, water_works, plant, generator] }
7117                     draw:   { icons: { sprite: factory } }
7118                 farmers-market:
7119                     filter: { kind: [farmers_market, farmers-market] }
7120                     draw:   { icons: { sprite: farmers-market } }
7121                 fire-station:
7122                     filter: { kind: [fire_station, fire-station] }
7123                     draw:   { icons: { sprite: fire-station } }
7124                 fish-market:
7125                     filter: { kind: [fish, fish-market, seafood, fishmonger] }
7126                     draw:   { icons: { sprite: fish-market } }
7127                 fishing-area:
7128                     filter: { kind: [fishing_area, fishing-spot, fishing] }
7129                     draw:   { icons: { sprite: fishing-area } }
7130                 fitness:
7131                     filter: { kind: [gym, fitness, fitness_center] }
7132                     draw:   { icons: { sprite: fitness } }
7133                 flea-market:
7134                     filter: { kind: [flea_market, flea-market] }
7135                     draw:   { icons: { sprite: flea-market } }
7136                 flower-shop:
7137                     filter: { kind: [florist, flower-shop] }
7138                     draw: { icons: { sprite: flower-shop } }
7139                 forest:
7140                     filter: { kind: [forest, conservation, wood] }
7141                     draw:   { icons: { sprite: forest } }
7142                 furniture-store:
7143                     filter: { kind: [furniture, furniture-store] }
7144                     draw:   { icons: { sprite: furniture-store } }
7145                 garden-center:
7146                     filter: { kind: [garden_centre, garden_center] }
7147                     draw:   { icons: { sprite: garden-center } }
7148                 gas:
7149                     filter: { kind: [gas, gas_canister] }
7150                     draw:   { icons: { sprite: gas } }
7151                 gas-station:
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 } }
7157                 generic:
7158                     filter: { kind: [generic] }
7159                     draw:   { icons: { sprite: generic } }
7160                 gift-shop:
7161                     filter: { kind: [gift, gift-shop] }
7162                     draw:   { icons: { sprite: gift-shop } }
7163                 golf-course:
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 } }
7169                 grocery-store:
7170                     filter: { kind: [supermarket, grocery-store, health_food, greengrocer] }
7171                     draw:   { icons: { sprite: grocery-store } }
7172                 harbor-marina:
7173                     filter: { kind: [marina, harbor, harbor-marina, harbor_marina, dock, mooring] }
7174                     draw:   { icons: { sprite: harbor-marina } }
7175                 hardware-store:
7176                     filter: { kind: [hardware, hardware-store, doityourself, paint] }
7177                     draw:   { icons: { sprite: hardware-store } }
7178                 hotel:
7179                     filter: { kind: [hotel, motel, hostel] }
7180                     draw:   { icons: { sprite: hotel } }
7181                 hot_spring:
7182                     filter: { kind: [hot_spring] }
7183                     draw:   { icons: { sprite: hot-spring } }
7184                 hunting:
7185                     filter: { kind: [hunting] }
7186                     draw:   { icons: { sprite: hunting } }
7187                 ice-cream-shop:
7188                     filter: { kind: [ice_cream] }
7189                     draw:   { icons: { sprite: ice-cream-shop } }
7190                 information:
7191                     filter: { kind: [info, information] }
7192                     draw:   { icons: { sprite: information } }
7193                 jewelry-store:
7194                     filter: { kind: [jewelry, jewelry_store, jewelry-store] }
7195                     draw:   { icons: { sprite: jewelry-store } }
7196                 landmark:
7197                     filter: { kind: [landmark, memorial, monument, wayside_shrine, beacon] }
7198                     draw:   { icons: { sprite: landmark } }
7199                 tower:
7200                     filter: { kind: [tower], label_placement: false }
7201                     draw:   { icons: { sprite: landmark } }
7202                 laundry:
7203                     filter: { kind: [laundry] }
7204                     draw:   { icons: { sprite: laundry } }
7205                 light-rail:
7206                     filter: { kind: [light-rail, light_rail, tram_stop] }
7207                     draw:   { icons: { sprite: light-rail } }
7208                 liquor-store:
7209                     filter: { kind: [alcohol, liquor-store, liquor] }
7210                     draw:   { icons: { sprite: liquor-store } }
7211                 market:
7212                     filter: { kind: [market, variety_store, boutique, dairy, retail] }
7213                     draw:   { icons: { sprite: market } }
7214                 mine:
7215                     filter: { kind: [mine, mineshaft, adit] }
7216                     draw:   { icons: { sprite: mine } }
7217                 quarry:
7218                     filter: { kind: [quarry] }
7219                     draw:   { icons: { sprite: quarry } }
7220                 miscellaneous-shop:
7221                     filter: { kind: [houseware, miscellaneous-shop] }
7222                     draw:   { icons: { sprite: miscellaneous-shop } }
7223                 mobile-phone-shop:
7224                     filter: { kind: [mobile_phone] }
7225                     draw:   { icons: { sprite: mobile-phone-shop } }
7226                 motorcycle-shop:
7227                     filter: { kind: [motorcycle_shop, motorcycle_repair] }
7228                     draw:   { icons: { sprite: motorcycle-shop } }
7229                 motorcycle:
7230                     filter: { kind: [motorcycle] }
7231                     draw:   { icons: { sprite: motorcycle } }
7232                 mountain:
7233                     filter: { kind: [mountain, peak] }
7234                     draw:   { icons: { sprite: mountain } }
7235                 movie-theatre:
7236                     filter: { kind: [cinema, movie-theatre, movie-theater] }
7237                     draw:   { icons: { sprite: movie-theatre } }
7238                 museum:
7239                     filter: { kind: [museum] }
7240                     draw:   { icons: { sprite: museum } }
7241                 music-store:
7242                     filter: { kind: [music, music-store, musical_instrument] }
7243                     draw:   { icons: { sprite: music-store } }
7244                 newsstand:
7245                     filter: { kind: [kiosk, newsstand, newsagent] }
7246                     draw:   { icons: { sprite: newsstand } }
7247                 nightlife:
7248                     filter: { kind: [nightclub, nightlife] }
7249                     draw:   { icons: { sprite: nightlife } }
7250                 office:
7251                     filter: { kind: [insurance, office, company] }
7252                     draw:   { icons: { sprite: office } }
7253                 office-supplies:
7254                     filter: { kind: [office_supplies, office-supplies, stationery] }
7255                     draw:   { icons: { sprite: office-supplies } }
7256                 optical-shop:
7257                     filter: { kind: [optician, optical_shop, optical-shop] }
7258                     draw:   { icons: { sprite: optical-shop } }
7259                 outdoor:
7260                     filter: { kind: [outdoor] }
7261                     draw:   { icons: { sprite: outdoor } }
7262                 performing-arts:
7263                     filter: { kind: [theater, theatre, performing-arts] }
7264                     draw:   { icons: { sprite: performing-arts } }
7265                 pet-store:
7266                     filter: { kind: [pet, pet-store, pet-service, pet_store] }
7267                     draw:   { icons: { sprite: pet-store } }
7268                 pharmacy:
7269                     filter: { kind: [pharmacy, chemist] }
7270                     draw:   { icons: { sprite: pharmacy } }
7271                 photography-lab:
7272                     filter: { kind: [photo_studio, photography_lab, photographer] }
7273                     draw:   { icons: { sprite: photography-lab } }
7274                 picnic-spot:
7275                     filter: { kind: [picnic_site, picnic_spot, picnic-spot, picnic_table] }
7276                     draw:   { icons: { sprite: picnic-spot } }
7277                 pool:
7278                     filter: { kind: [pool, swimming_pool] }
7279                     draw:   { icons: { sprite: pool } }
7280                 pool-hall:
7281                     filter: { kind: [billiards, pool-hall] }
7282                     draw:   { icons: { sprite: pool-hall } }
7283                 post-office:
7284                     filter: { kind: [post_office, post-office] }
7285                     draw:   { icons: { sprite: post-office } }
7286                 power-pylon:
7287                     filter: { kind: [tower, power-pylon, pylon] }
7288                     draw:   { icons: { sprite: power-pylon } }
7289                 ranger-station:
7290                     filter: { kind: [ranger_station] }
7291                     draw:   { icons: { sprite: ranger-station } }
7292                 real-estate:
7293                     filter: { kind: [estate_agent, real_estate] }
7294                     draw:   { icons: { sprite: real-estate } }
7295                 recreation-track:
7296                     filter: { kind: [recreation_track] }
7297                     draw:   { icons: { sprite: recreation-track } }
7298                 recycling-facility:
7299                     filter: { kind: [recycling, recycling-facility] }
7300                     draw:   { icons: { sprite: recycling-facility } }
7301                 rental-car:
7302                     filter: { kind: [rental-car, car_rental, car_sharing] }
7303                     draw:   { icons: { sprite: rental-car } }
7304                 rest-area:
7305                     filter: { kind: [rest_area, rest-area] }
7306                     draw:   { icons: { sprite: rest-area } }
7307                 restaurant:
7308                     filter: { kind: [restaurant, deli] }
7309                     draw:   { icons: { sprite: restaurant } }
7310                 ruin:
7311                     filter: { kind: [ruins, archaeological_site] }
7312                     draw:   { icons: { sprite: ruin } }
7313                 salon-barber:
7314                     filter: { kind: [hairdresser, salon-barber, salon, beauty_salon] }
7315                     draw:   { icons: { sprite: salon-barber } }
7316                 scuba-diving:
7317                     filter: { kind: [scuba_diving,dive_centre] }
7318                     draw:   { icons: { sprite: scuba-diving } }
7319                 ship-wreck:
7320                     filter: { kind: [wreck] }
7321                     draw:   { icons: { sprite: ship-wreck } }
7322                 shoe-store:
7323                     filter: { kind: [shoes, shoe-store, shoe_store] }
7324                     draw:   { icons: { sprite: shoe-store } }
7325                 slipway:
7326                     filter: { kind: [slipway] }
7327                     draw:   { icons: { sprite: slipway } }
7328                 smoke-shop:
7329                     filter: { kind: [smoke_shop, tobacco] }
7330                     draw:   { icons: { sprite: smoke-shop } }
7331                 spa-massage:
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
7335                 a-spiritual-center:
7336                     filter:
7337                         all:
7338                             - kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel]
7339                     draw:   { icons: { sprite: spiritual-center } }
7340                 church:
7341                     filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: christian }
7342                     draw:   { icons: { sprite: church } }
7343                 synagogue:
7344                     filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: jewish }
7345                     draw:   { icons: { sprite: synagogue } }
7346                 buddhist:
7347                     filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: buddhist }
7348                     draw:   { icons: { sprite: buddhism } }
7349                 mosque:
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 } }
7355                 stable:
7356                     filter: { kind: [stable, horse_riding, horse] }
7357                     draw:   { icons: { sprite: stable } }
7358                 storage-facility:
7359                     filter: { kind: [storage, storage-facility] }
7360                     draw:   { icons: { sprite: storage-facility } }
7361                 subway-entrance:
7362                     filter: { kind: [subway_entrance] }
7363                     draw:   { icons: { sprite: subway-entrance } }
7364                 summer-camp:
7365                     filter: { kind: [summer_camp] }
7366                     draw:   { icons: { sprite: summer-camp } }
7367                 tailor-shop:
7368                     filter: { kind: [tailor, tailor-shop] }
7369                     draw:   { icons: { sprite: tailor-shop } }
7370                 tattoo-parlor:
7371                     filter: { kind: [tattoo, tattoo_parlor, tattoo-parlor] }
7372                     draw:   { icons: { sprite: tattoo-parlor } }
7373                 telescope:
7374                     filter: { kind: [telescope] }
7375                     draw:   { icons: { sprite: telescope } }
7376                 theme-park:
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 } }
7382                 toll-booth:
7383                     filter: { kind: [toll_booth, checkpoint, border_control] }
7384                     draw:   { icons: { sprite: toll-booth } }
7385                 toy-game-store:
7386                     filter: { kind: [toys, toy-game-store, baby_goods] }
7387                     draw:   { icons: { sprite: toy-game-store } }
7388                 toilets:
7389                     filter: { kind: [toilets] }
7390                     draw:   { icons: { sprite: toilets } }
7391                 trailhead:
7392                     filter: { kind: [trailhead, hiking_trail] }
7393                     draw:   { icons: { sprite: trailhead } }
7394                 veterinarian:
7395                     filter: { kind: [pet_care, veterinarian, veterinary] }
7396                     draw:   { icons: { sprite: veterinarian } }
7397                 video-game-store:
7398                     filter: { kind: [video_games] }
7399                     draw:   { icons: { sprite: video-game-store } }
7400                 video-store:
7401                     filter: { kind: [video, video_store] }
7402                     draw:   { icons: { sprite: video-store } }
7403                 view-point:
7404                     filter: { kind: [viewpoint, view_point, view-point, vista] }
7405                     draw:   { icons: { sprite: view-point } }
7406                 waterfall:
7407                     filter: { kind: [waterfall] }
7408                     draw:   { icons: { sprite: waterfall } }
7409                 waterpark:
7410                     filter: { kind: [water_park] }
7411                     draw:   { icons: { sprite: waterpark } }
7412                 well:
7413                     filter: { kind: [well, water_well] }
7414                     draw:   { icons: { sprite: well } }
7415                 wine-shop:
7416                     filter: { kind: [wine, wine-shop] }
7417                     draw:   { icons: { sprite: wine-shop } }
7418                 winery:
7419                     filter: { kind: [winery, wine] }
7420                     draw:   { icons: { sprite: winery } }
7421                 winter_sport:
7422                     filter: { kind: [ski, ski_rental, ski_school, ski_jumping, skiing] }
7423                     draw:   { icons: { sprite: ski-area } }
7424     water-area-labels:
7425         data: { source: mapzen, layer: [water] }
7426         visible: *text_visible_water_labels
7427         filter:
7428             all:
7429                 - name: true
7430                 - $geometry: point
7431                 - not: { kind: [riverbank, dock, playa] }
7432                 - area: true
7433             any:
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 } }
7449         default-label-text:
7450             draw:
7451                 text-blend-order:
7452                     font:
7453                         fill: *text_fill_water
7454                         family: *text_font_family
7455                         style: italic
7456                         weight: 400
7457                         size: 12px
7458                         # stroke: { color: [0.878,0.929,0.980], width: 2 }
7459         lakes-z5:
7460             filter: { $zoom: [5] }
7461             draw:
7462                 text-blend-order: { font: { size: 9px } }
7463         lakes-z6:
7464             filter: { $zoom: [6] }
7465             draw:
7466                 text-blend-order: { font: { size: 11px } }
7467         lakes-z8:
7468             filter: { $zoom: [8] }
7469             draw:
7470                 text-blend-order: { font: { size: 12px } }
7471
7472     ocean-sea-labels:
7473         data: { source: mapzen, layer: water }
7474         visible: *text_visible_water_labels
7475         filter: { name: true, kind: [sea, ocean] }
7476         draw:
7477             text-blend-order:
7478                 font:
7479                     fill: *text_fill_water
7480                     family: *text_font_family
7481                     weight: 400
7482                     size: 12px
7483                     transform: uppercase
7484         sea-early:
7485             filter: { $zoom: [3], kind: sea }
7486             draw: { text-blend-order: { visible: false } }
7487         ocean-spacer:
7488             filter: { kind: ocean }
7489             ocean-spacer-z1-z4:
7490                 filter: { $zoom: { min: 1, max: 4 } }
7491                 draw:
7492                     text-blend-order:
7493                         text_source: function() { return feature.name.split('').join(' ') }
7494                         text_wrap: false
7495             ocean-spacer-z4-up:
7496                 filter: { $zoom: { min: 4 } }
7497                 draw:
7498                     text-blend-order:
7499                         text_source: function() { return feature.name.split('').join('  ') }
7500                         text_wrap: false
7501         ocean-labels-z1:
7502             filter: { $zoom: [1] }
7503             draw:
7504                 text-blend-order: { font: { size: 8px } }
7505         ocean-labels-z2:
7506             filter: { $zoom: [2] }
7507             draw:
7508                 text-blend-order: { font: { size: 10px } }
7509         ocean-labels-z3:
7510             filter: { $zoom: [3] }
7511             draw:
7512                 text-blend-order: { font: { size: 13px } }
7513         ocean-labels-z4-up:
7514             filter: { $zoom: { min: 4} }
7515             draw:
7516                 text-blend-order: { font: { size: 16px } }
7517
7518         sea-spacer:
7519             filter: { not: { kind: [ocean] }, $zoom: { min: 4 } }
7520             draw:
7521                 text-blend-order:
7522                     text_source: function() { return feature.name.split('').join(' ') }
7523                     text_wrap: false
7524
7525         sea-labels:
7526             filter: { not: { kind: [ocean] } }
7527             sea-labels-z4:
7528                 filter: { $zoom: [4] }
7529                 draw:
7530                     text-blend-order: { font: { size: 8px, fill: [0.250,0.250,0.250] } }
7531             sea-labels-z5:
7532                 filter: { $zoom: [5] }
7533                 draw:
7534                     text-blend-order: { font: { size: 10px } }
7535             sea-labels-z6:
7536                 filter: { $zoom: [6] }
7537                 draw:
7538                     text-blend-order: { font: { size: 11px } }
7539             sea-labels-z7:
7540                 filter: { $zoom: [7] }
7541                 draw:
7542                     text-blend-order: { font: { size: 12px } }
7543             sea-labels-z8:
7544                 filter: { $zoom: { min: 8} }
7545                 draw:
7546                     text-blend-order: { font: { size: 14px } }
7547
7548     earth-labels:
7549         data: { source: mapzen, layer: earth }
7550         filter: { name: true }
7551         continent:
7552             filter: { name: true, kind: [continent], $zoom: {max: 5} }
7553             draw:
7554                 text-blend-order:
7555                     visible: *text_visible_continent
7556                     font:
7557                         size: 14px
7558                         style: italic
7559                         fill: *text_fill
7560                         weight: 600
7561                         # stroke: { color: *text_stroke, width: 4 }
7562                         transform: uppercase
7563         continent-spacer:
7564             filter: { kind: continent }
7565             continent-spacer-z1-z5:
7566                 filter: { $zoom: { min: 1, max: 5 } }
7567                 draw:
7568                     text-blend-order:
7569                         text_source: function() { return feature.name.split('').join(' ') }
7570                         text_wrap: false
7571         island:
7572             filter: { kind: [archipelago, island, islet] }
7573             draw:
7574                 text-blend-order:
7575                     visible: *text_visible_island
7576                     text_wrap: 10
7577                     font:
7578                         size: 12px
7579                         style: italic
7580                         fill: *text_fill
7581                         weight: 400
7582                         stroke: { color: *text_stroke, width: 4 }
7583                         #transform: uppercase
7584
7585     landuse:
7586         data: { source: mapzen }
7587         draw:
7588             terrain:
7589                 order: function() { return feature.sort_rank; }
7590                 visible: false
7591         tier1:
7592             # filter:
7593             #     any:
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 } }
7610
7611             national_park:
7612                 filter:
7613                     all:
7614                         - kind: [national_park, battlefield, protected_area]
7615                     any:
7616                         - not: { operator: [ "United States Forest Service" ] }
7617                         - protect_class: ['2','3','5']
7618                 draw:
7619                     terrain:
7620                         interactive: false
7621                         color: [0.890,1.00,1.00]
7622                         # todo: what is this?
7623                         #order: 18
7624                         visible: true
7625                 us_national_park:
7626                     # yosemite national park, death valley national park, grand canyon national park
7627                     filter:
7628                         any:
7629                             - operator: [ "United States National Park Service" ]
7630                             - protect_class: ['2','3','5']
7631                     draw:
7632                         terrain:
7633                             visible: true
7634                             color: [0.890,1.00,1.00]
7635
7636         tier2:
7637             # filter:
7638             #     any:
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 } }
7654
7655             # effectively wilderness
7656             conservation:
7657                 filter:
7658                     all:
7659                         - $zoom: { min: 4 }
7660                         - kind: [protected_area, nature_reserve, national_park]
7661                         - not: { protect_class: [2,3,5]}
7662                 draw:
7663                     terrain:
7664                         # color: [1.00,0.974,0.950]
7665                         color: [0.88,0.99,0.88]
7666                         visible: true
7667                     # outline:
7668                     #     style: lines
7669                     #     color: *green6
7670                     #     width: [[9,0px],[10,2px],[12,4px]]
7671
7672             national_forest_level_6:
7673                 filter:
7674                     all:
7675                         - kind: forest
7676                     any:
7677                         - protect_class: ['6']
7678                         - operator: ['United States Forest Service']
7679                 draw:
7680                     terrain:
7681                         color: [0.945,0.995,0.945] #*green7
7682                         visible: true
7683
7684             parks-and-national-forests-not-national-park:
7685                 filter:
7686                     all:
7687                         - $zoom: { min: 4 }
7688                         - kind: [park, national_park]
7689                     any:
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?
7693                 draw:
7694                     terrain:
7695                         color: [0.880,1.000,0.950]
7696                         visible: true
7697                 national_park:
7698                     #filter: function() { return feature.name && (feature.name.indexOf('National Park') > -1); }
7699                     filter:
7700                         all:
7701                             - kind: national_park
7702                             - not: [ protect_class: ['2','3','5','6'], operator: [ "United States National Park Service"] ]
7703                     draw:
7704                         terrain:
7705                             color: [0.890,1.00,1.00]
7706                             visible: true
7707
7708
7709             # gotta be a protected area to draw green, not just a landcover type
7710             farm:
7711                 filter:
7712                     kind: [farm, farmland]
7713                     $zoom: { min: 10}
7714                 draw:
7715                     polygons:
7716                         color: [1.00,1.00,1.00]
7717                         visible: *green4_v
7718             forest:
7719                 filter: { kind: [forest, wood, natural_wood, natural_forest, natural_park], $zoom: { min: 10 }, not: { operator: [ "United States Forest Service"] } }
7720                 draw:
7721                     terrain:
7722                         color: [0.956,0.99,0.966]
7723                         visible: true
7724
7725             # nature_reserve:
7726             #     filter: { kind: nature_reserve, $zoom: { min: 7 } }
7727             #     draw:
7728             #         terrain-grid:
7729             #             order: function() { return feature.sort_rank; }
7730             #     wilderness-areas:
7731             #         filter: function() { return feature.name && feature.name.indexOf("Wilderness") > -1 }
7732             #         draw:
7733             #             terrain:
7734             #                 color: [0.890,0.973,0.886]
7735             #             # outline:
7736             #             #     style: lines
7737             #             #     color: red
7738             #             #     width: [[9,1px],[10,2px],[12,4px]]
7739
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?
7743             #     draw:
7744             #         terrain:
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]
7749             #             visible: true
7750
7751
7752             # urban:
7753             #     filter: { kind: [urban, rural, residential] }
7754             #     visible: *earth2_v
7755             #     draw:
7756             #         polygons:
7757             #             color: [1.00,1.00,1.00]
7758             #             visible: *earth2_v
7759         tier3:
7760             # filter:
7761             #     any:
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 } }
7773             airport:
7774                 filter:
7775                     kind: aerodrome
7776                 draw:
7777                     terrain:
7778                         color: *gray-all
7779                         visible: *purple_v
7780             military:
7781                 filter:
7782                     kind: military
7783                 draw:
7784                     terrain:
7785                         color: *gray-all
7786                         visible: true
7787             university:
7788                 filter:
7789                     kind: [university, college]
7790                 draw:
7791                     terrain:
7792                         color: *gray-all
7793                         visible: true
7794         tier4:
7795             # filter:
7796             #     any:
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 } }
7806             cemetery:
7807                 filter:
7808                     kind: cemetery
7809                 draw:
7810                     terrain:
7811                         color: [0.982,1.000,0.960]
7812                         visible: true
7813             golf_course:
7814                 filter:
7815                     kind: golf_course
7816                 draw:
7817                     terrain:
7818                         color: [0.890,1.000,0.892]
7819                         # color: [0.840,1.000,0.907]
7820                         visible: true
7821             hospital:
7822                 filter:
7823                     kind: hospital
7824                 draw:
7825                     terrain:
7826                         color: [0.988,0.938,0.953]
7827                         visible: true
7828             industrial:
7829                 filter:
7830                     kind: industrial
7831                 draw:
7832                     terrain:
7833                         color: *gray-all
7834                         visible: true
7835             power:
7836                 filter: { kind: [plant, generator, substation] }
7837                 draw:
7838                     terrain:
7839                         color: *gray-all
7840                         visible: true
7841             railway:
7842                 filter:
7843                     kind: railway
7844                 draw:
7845                     terrain:
7846                         color: *gray-all
7847                         visible: true
7848         # IGNORE THIS FOR NOW
7849         #     sports_centre:
7850         #         filter:
7851         #             kind: sports_centre
7852         #         draw:
7853         #             polygons:
7854         #                 color: [1.0,1.0,1.0]
7855             recreation_ground:
7856                 filter:
7857                     kind: recreation_ground
7858                 draw:
7859                     terrain:
7860                         color: [0.945,0.995,0.945]
7861                         visible: true
7862             stadium:
7863                 filter:
7864                     kind: stadium
7865                 draw:
7866                     terrain:
7867                         color: *gray-all
7868                         visible: true
7869             zoo:
7870                 filter:
7871                     kind: [zoo, wildlife_park]
7872                 draw:
7873                     terrain:
7874                         color: [0.830,1.000,0.972]
7875                         visible: true
7876             winter_sports:
7877                 filter:
7878                     kind: winter_sports
7879                 draw:
7880                     terrain:
7881                         color: [1.0,1.0,1.0]
7882                         visible: *grey8_v
7883             man-made:
7884                 filter: { kind: [pier,wastewater_plant,works,bridge,tower,breakwater,water_works,groyne,dike,cutline] }
7885                 draw:
7886                     terrain:
7887                         color: *gray-all
7888                         visible: true
7889                 pier:
7890                     filter: { kind: [pier,bridge,breakwater,groyne,dike,cutline] }
7891                     draw:
7892                         terrain:
7893                             color: [1.000,0.973,0.930]
7894                             visible: true
7895             camp_site:
7896                 filter: { kind: camp_site }
7897                 draw:
7898                     terrain:
7899                         color: *gray-all
7900                         visible: true
7901
7902         tier5:
7903             # filter:
7904             #     any:
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 } }
7914             #     all:
7915             #         - kind:
7916             #             - theme_park
7917             #             - resort
7918             #             - aquarium
7919             #             - winery
7920             #             - maze
7921             #             - beach
7922             tourism-related:
7923                 filter:
7924                     kind:
7925                         - theme_park
7926                         - resort
7927                         - aquarium
7928                         - winery
7929                         - maze
7930                 draw:
7931                     terrain:
7932                         color: *gray-all
7933                         visible: true
7934             beach:
7935                 filter:
7936                     kind: beach
7937                 draw:
7938                     terrain:
7939                         color: [1.000,0.953,0.900]
7940                         # color: [0.975,0.975,0.828]
7941                         visible: true
7942         tier6:
7943             # filter:
7944             #     any:
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 } }
7952             garden:
7953                 filter:
7954                     kind: [garden, allotments]
7955                 draw:
7956                     terrain:
7957                         color: [0.790,0.973,0.896]
7958                         visible: true
7959             parking:
7960                 filter:
7961                     all:
7962                         - kind: parking
7963                         - $zoom: { min: 14 }
7964                     any:
7965                         - { $zoom: { min: 14 }, area: { min: 10000 } }
7966                         - { $zoom: { min: 15 }, area: { min: 5000 } }
7967                 draw:
7968                     terrain:
7969                         color: *gray-all
7970                         visible: *grey1_v
7971                 early:
7972                     filter: { $zoom: { max: 15 } }
7973                     draw:
7974                         terrain:
7975                             color: [0.950,0.950,0.950]
7976                             visible: true
7977         pedestrian:
7978             filter:
7979                 kind: [pedestrian,common]
7980             draw:
7981                 terrain:
7982                     color: [0.945,0.995,0.945]
7983                     visible: *grey1_v
7984             green-stuff:
7985                 filter:
7986                     surface: [grass]
7987                 draw:
7988                     terrain:
7989                         color: [0.791,0.953,0.883]
7990
7991         glacier:
7992             filter:
7993                 kind: glacier
7994             draw:
7995                 terrain:
7996                     color: [0.890,0.970,1.000]
7997                     # color: [0.975,0.975,0.828]
7998                     visible: true
7999
8000         minor_green_stuff:
8001             filter:
8002                 kind: [pitch, meadow, village_green, grass, farmland, playground]
8003             draw:
8004                 terrain:
8005                     color: [0.808,0.962,0.951]
8006                     # color: [0.702,0.949,0.932]
8007                     # color: [0.975,0.975,0.828]
8008                     visible: true
8009             farmland_friends:
8010                 filter: { kind: [farmland] }
8011                 draw:
8012                     terrain:
8013                         color: [0.965,0.996,0.965]
8014                         #visible: false
8015             meadow_friends:
8016                 filter: { kind: [meadow, grass] }
8017                 draw:
8018                     terrain:
8019                         color: [0.825,0.976,0.895]
8020             pitch_later:
8021                 filter: { kind: pitch, $zoom: { min: 17 } }
8022                 draw:
8023                     lines:
8024                         color: [0.526,0.809,0.752]
8025                         order: 500
8026                         width: 0.5m
8027
8028         wetland:
8029             filter:
8030                 kind: [wetland]
8031             draw:
8032                 terrain:
8033                     color: [0.930,0.973,0.980]
8034                     # color: [0.975,0.975,0.828]
8035                     visible: true
8036         scrub:
8037             filter:
8038                 kind: [scrub]
8039             draw:
8040                 terrain:
8041                     color: [1.000,0.973,0.930]
8042                     # color: [0.975,0.975,0.828]
8043                     visible: true
8044             later:
8045                 filter: { $zoom: { min: 15 } }
8046                 draw:
8047                     lines:
8048                         color: blue
8049                         width: 0.5px
8050
8051         minor_other_stuff:
8052             filter:
8053                 kind: [scree, farmyard]
8054             draw:
8055                 terrain:
8056                     color: [1.000,0.953,0.900]
8057                     # color: [0.975,0.975,0.828]
8058                     visible: true
8059             later:
8060                 filter: { $zoom: { min: 15 } }
8061                 draw:
8062                     lines:
8063                         color: red
8064                         width: 0.5px
8065
8066             place_of_worship:
8067                 filter:
8068                     kind: place_of_worship
8069                 draw:
8070                     terrain:
8071                         color: *gray-all
8072                         visible: *grey1_v
8073             playground:
8074                 filter:
8075                     kind: playground
8076                 draw:
8077                     terrain:
8078                         color: [0.795,1.000,0.955]
8079                         visible: true
8080             school:
8081                 filter:
8082                     kind: school
8083                 draw:
8084                     terrain:
8085                         color: *gray-all
8086                         visible: true
8087
8088             minor-landuse:
8089                 filter:
8090                     kind:
8091                         - attraction
8092                         - artwork
8093                         - wilderness_hut
8094                         - hanami
8095                 draw:
8096                     terrain:
8097                         color: [0.795,1.000,0.955]
8098                         visible: true
8099
8100         # GO MELLOW
8101         # 18/41.19776/-8.68722
8102         tree_row:
8103             filter:
8104                 kind: tree_row
8105             draw:
8106                 lines:
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]]
8110                     visible: true
8111         # GO MELLOW
8112         # 20/37.76779/-122.40096
8113         hedge:
8114             filter:
8115                 kind: hedge
8116             draw:
8117                 lines:
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]]
8121                     visible: true
8122
8123     natural-overlay:
8124         data: { source: mapzen, layer: earth }
8125         filter: { kind: [cliff, arete, ridge, valley] }
8126         draw:
8127             lines:
8128                 order: 999
8129                 interactive: true
8130         #cliff:
8131 #            filter: { kind: cliff }
8132 #            draw:
8133 #                lines:
8134 #                    color: blue
8135 #                    width: 0.2px
8136 #                    order: 1001
8137         #arete:
8138 #            filter: { kind: arete }
8139 #            draw:
8140 #                lines:
8141 #                    color: red
8142 #                    width: 0.2px
8143 #                    order: 1000
8144         ridge_valley:
8145             filter: { kind: [ridge, valley] }
8146             draw:
8147                 lines:
8148                     visible: false
8149                 text-blend-order:
8150                     priority: 50
8151                     font:
8152                         fill: black
8153                         weight: 200
8154                         size: 10px
8155                         style: italic
8156                         stroke: { color: [0.894,0.906,0.914], width: 3 }
8157             ridge:
8158                 filter: { kind: ridge }
8159                 draw:
8160                     lines:
8161                         visible: false
8162                     text-blend-order:
8163                         font:
8164                             fill: black
8165                             weight: 200
8166                             size: 10px
8167                             style: italic
8168                             stroke: { color: [0.894,0.906,0.914], width: 3 }
8169
8170     path-overlay:
8171         data: { source: mapzen, layer: roads }
8172         filter:
8173             all:
8174                 - kind: path
8175             not:
8176                 - kind_detail: [pier]
8177         draw:
8178             lines:
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]]
8180             dashedline:
8181                 color: [0.120,0.600,0.520]
8182             dots-lines:
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
8189         paths:
8190             filter:
8191                 any:
8192                     - kind_detail: path
8193                     - all:
8194                         - kind_detail: track
8195                         - motor_vehicle: no
8196             draw:
8197                 lines:
8198                     join: round
8199                     cap: round
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]]
8202                     order: 1003
8203                     outline:
8204                         color: [0.120,0.600,0.520]
8205                         width: [[15, 0px], [16, 0.8px], [17, 1.25px], [18, 2.5px]]
8206             networked:
8207                 filter: { walking_network: true }
8208                 draw:
8209                     lines:
8210                         width: [[12, 1px], [13, 1px], [14, 1.1px], [15, 1.5px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
8211                     highlight:
8212                         order: 980
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]]
8215                         join: round
8216             no_name_early_not_designated:
8217                 filter: { name: false, $zoom: { max: 14 } }
8218                 draw:
8219                     lines:
8220                         width: [[0,1px]]
8221             in_zoo_golf_course:
8222                 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments] }
8223                 draw:
8224                     lines:
8225                         width: [[13, 0.5px], [15, 0.65px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
8226                 early:
8227                     filter: { $zoom: { max: 15 } }
8228                     draw:
8229                         lines:
8230                             visible: false
8231             labels-path:
8232                 #filter: { $zoom: { min: 17 } }
8233                 draw:
8234                     text-blend-order:
8235                         priority: 58
8236                         visible: *text_visible_path
8237                         font:
8238                             fill: [0.143,0.544,0.481]
8239                             # fill: [0.256,0.570,0.565]
8240                             size: 12px
8241                             stroke: { color: *text_stroke, width: 4 }
8242                 in_zoo_golf_course:
8243                     filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
8244                     draw:
8245                         text-blend-order:
8246                             visible: false
8247
8248
8249         # single hiking path
8250         footway:
8251             filter: { kind_detail: [footway] }
8252             draw:
8253                 dots-lines:
8254                     order: 1002
8255                     interactive: true
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]]
8259                     visible: true
8260                     #color: purple
8261                 lines:
8262                     order: 1000
8263                     interactive: true
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]]
8268                     visible: true
8269                     #color: purple
8270                 dashedline:
8271                     order: 1005
8272             early-show-as-lines-z14:
8273                 filter: { $zoom: { max: 15 } }
8274                 draw:
8275                     dots-lines:
8276                         visible: false
8277                     lines:
8278                         visible: true
8279             early-show-as-lines-z15:
8280                 filter: { $zoom: [15] }
8281                 draw:
8282                     dots-lines:
8283                         visible: true
8284                     lines:
8285                         visible: true
8286             networked:
8287                 filter: { walking_network: true }
8288                 draw:
8289                     lines:
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]]]
8293                     highlight:
8294                         order: 980
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]]
8297                         join: round
8298                 early:
8299                     filter: { $zoom: { max: 15 } }
8300                     draw:
8301                         lines:
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
8305             in_zoo_golf_course:
8306                 filter:
8307                     all:
8308                         - landuse_kind: [zoo, enclosure, petting_zoo, golf_course, garden, university, parking, pedestrian, attraction, residential, stadium, playground, allotments]
8309                         - $zoom: { max: 17 }
8310                 draw:
8311                     lines:
8312                         visible: true
8313                 early:
8314                     filter: { $zoom: { max: 16 } }
8315                     draw:
8316                         dots-lines:
8317                             visible: false
8318                 early-z15:
8319                     filter: { $zoom: { max: 16 } }
8320                     draw:
8321                         lines:
8322                             color: [0.120,0.600,0.520]
8323                             width: [[14,0.4px],[15,0.5px]]
8324                 garden-early:
8325                     filter: { kind: [garden] }
8326                     draw:
8327                         lines:
8328                             width: [[14,0.1px],[15,0.3px]]
8329             in_cemetery:
8330                 filter:
8331                     all:
8332                         - landuse_kind: [cemetery]
8333                 draw:
8334                     lines:
8335                         visible: true
8336                         color: [0.863,0.941,0.867]
8337                     dots-lines:
8338                         color: [0.510,0.752,0.695]
8339                 early:
8340                     filter: { $zoom: { max: 16 } }
8341                     draw:
8342                         dots-lines:
8343                             visible: false
8344                 early-z15:
8345                     filter: { $zoom: { max: 16 } }
8346                     draw:
8347                         lines:
8348                             color: [0.510,0.752,0.695]
8349                             width: [[14,0.25px],[15,0.5px]]
8350             sidewalk-crossing:
8351                 filter: { footway: [sidewalk, crossing], not: { walking_network: true } }
8352                 draw:
8353                     lines:
8354                         order: 350 # function() { return feature.sort_rank; }
8355                     dots-lines:
8356                         order: 351 # function() { return (feature.sort_rank + 1); }
8357                     dashedline:
8358                         visible: false
8359                 early-z17:
8360                     filter: { $zoom: { max: 18 } }
8361                     draw:
8362                         lines:
8363                             visible: false
8364                         dots-lines:
8365                             visible: false
8366                 early-z17-lines:
8367                     filter: { $zoom: [17] }
8368                     draw:
8369                         lines:
8370                             visible: true
8371                             width: 1.5px
8372             labels-footpaths:
8373                 filter: { $zoom: { min: 15 } }
8374                 draw:
8375                     text-blend-order:
8376                         priority: 58
8377                         visible: *text_visible_path
8378                         font:
8379                             fill: [0.143,0.544,0.481]
8380                             size: 12px
8381                             stroke: { color: *text_stroke, width: 4 }
8382                 in_zoo_golf_course:
8383                     filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
8384                     draw:
8385                         text-blend-order:
8386                             visible: false
8387
8388         cycleway_pedestrian:
8389             filter:
8390                 all:
8391                     - kind_detail: [cycleway, pedestrian]
8392                     - not: { kind_detail: [pedestrian], walking_network: true }
8393             draw:
8394                 lines:
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]]
8397 #                    order: 1004
8398                     interactive: true
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
8403                     order: 1004
8404                     outline:
8405                         color: [0.120,0.600,0.520]
8406                         width: [[11, 0px],[14, 0px],[15, 0.5px],[16, 1px]]
8407             networked:
8408                 filter: { walking_network: true }
8409                 draw:
8410                     lines:
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]]
8413                     highlight:
8414                         order: 980
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]]
8417                         join: round
8418             late:
8419                 filter: { $zoom: { min: 15 } }
8420                 draw:
8421                     lines:
8422                         color: [1.00,1.00,1.00]#[0.145,0.745,0.643] #[[17,'#c8ecf7'],[18,'#a9d9e8']] #white
8423                         join: round
8424                         cap: round
8425                         outline:
8426                             #color: [0.120,0.600,0.520]
8427                             join: round
8428                             cap: round
8429                             width: [[15, 1px], [16, 1.5px], [17, 1.6px], [18, 2px], [19, 2px]]
8430                             order: 999
8431             labels-cycleway:
8432                 filter: { $zoom: { min: 14 } }
8433                 draw:
8434                     text-blend-order:
8435                         priority: 58
8436                         visible: *text_visible_path
8437                         font:
8438                             fill: [0.120,0.600,0.520]
8439                             size: 12px
8440                             stroke: { color: *text_stroke, width: 4 }
8441
8442     track-overlay:
8443         data: { source: mapzen, layer: roads }
8444         filter:
8445             all:
8446                 - kind: path
8447                 - kind_detail: [track]
8448                 - motor_vehicle: false
8449         draw:
8450             lines:
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]]
8454                 order: 990
8455                 interactive: true
8456         late:
8457             filter: { $zoom: { min: 16 } }
8458             draw:
8459                 lines:
8460                     color: white
8461                     join: round
8462                     cap: round
8463                     outline:
8464                         color: [0.630,0.519,0.418]
8465                         # color: [0.756,0.563,0.499]
8466                         join: round
8467                         cap: round
8468                         width: [[16, 1px], [17, 1.5px], [18, 2px], [19, 2px]]
8469                         order: 999
8470         in_zoo_golf_course:
8471             filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments] }
8472             draw:
8473                 lines:
8474                     width: [[13, 1px], [14, 1.45px], [15, 1.1px], [16, 1.5px], [17, 2px], [18, 5px], [19, 6px]]
8475             early:
8476                 filter: { $zoom: { max: 15 } }
8477                 draw:
8478                     lines:
8479                         visible: false
8480         networked:
8481             filter: { walking_network: true }
8482             draw:
8483                 lines:
8484                     width: [[13, 1px], [14, 1.2px], [15, 1.5px], [16, 1.25px], [17, 1.5px], [18, 3px], [19, 4px]]
8485                 highlight:
8486                     order: 980
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]]
8489                     join: round
8490             early:
8491                 filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
8492                 draw:
8493                     lines:
8494                         visible: true
8495         labels-track:
8496             #filter: { $zoom: { min: 17 } }
8497             draw:
8498                 text-blend-order:
8499                     priority: 58
8500                     visible: *text_visible_path
8501                     font:
8502                         fill: [0.536,0.451,0.378]
8503                         size: 12px
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 } }
8507                 draw:
8508                     text-blend-order:
8509                         visible: false
8510     other-roads-no-motorvehicle-overlay:
8511         data: { source: mapzen, layer: roads }
8512         filter:
8513             all:
8514                 - not: { kind: [path,ferry] }
8515                 - motor_vehicle: no
8516         draw:
8517             lines:
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]]
8520                 order: 990
8521                 interactive: true
8522         late:
8523             filter: { $zoom: { min: 15 } }
8524             draw:
8525                 lines:
8526                     color: [0.940,0.940,0.940]
8527                     join: round
8528                     cap: round
8529                     outline:
8530                         color: [0.710,0.553,0.522]
8531                         join: round
8532                         cap: round
8533                         width: [[15, 0.5px], [16, 1.25px], [17, 1.5px], [18, 1.5px], [19, 3px]]
8534                         order: 999
8535         labels-track:
8536             #filter: { $zoom: { min: 17 } }
8537             draw:
8538                 text-blend-order:
8539                     priority: 58
8540                     visible: *text_visible_path
8541                     font:
8542                         fill: [0.536,0.451,0.378]
8543                         size: 12px
8544                         stroke: { color: *text_stroke, width: 4 }
8545
8546
8547     other-roads-walking-network-only:
8548         data: { source: mapzen, layer: roads }
8549         filter:
8550             all:
8551                 - walking_network: true
8552                 - not:
8553                     any:
8554                         - { kind: [path,ferry], not: { kind_detail: pedestrian } }
8555                         #- motor_vehicle: [no,false]
8556                         - kind_detail: [track]
8557         draw:
8558             lines:
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]]
8561                 order: 990
8562                 interactive: true
8563         double-lines:
8564             filter: { $zoom: { min: 16 } }
8565             draw:
8566                 lines:
8567                     color: [1.000,1.000,0.870]
8568                     width: [[15,0px],[16,1px],[17,4px],[18,6m]]
8569                     outline:
8570                         color: [0.120,0.600,0.520]
8571                         width: [[15, 0.5px],[16, 1.5px],[17, 1.5px],[18, 2.5px],[19, 1m]]
8572                 casing_left:
8573                     visible: false
8574                     interactive: true
8575                     order: 486
8576                     color: [0.120,0.600,0.520]
8577                     width: [[15, 0.5px],[16, 5.5px],[17, 10px],[18, 9m],[19, 8m]]
8578                 casing_right:
8579                     visible: false
8580                     interactive: true
8581                     order: 486
8582                     color: white
8583                     width: [[15, 0.5px],[16, 6px],[17, 10px],[18, 9m],[19, 8m]]
8584         the_network:
8585             draw:
8586                 lines:
8587                     width: [[13, 0.9px], [14, 1.2px], [15, 2.0px], [16, 1px], [17, 2px], [18, 6m]]
8588                 highlight:
8589                     order: 980
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]]
8592                     join: round
8593         hide-most-till-mid-zooms:
8594             filter:
8595                 all:
8596                     - $zoom: { max: 12 }
8597                     - walking_network: [lwn,rwn]
8598             draw:
8599                 lines:
8600                     visible: false
8601                 highlight:
8602                     visible: false