@versatiles/style 5.2.6 → 5.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/index.d.ts +274 -14
  2. package/dist/index.js +3650 -11
  3. package/dist/index.js.map +1 -1
  4. package/package.json +8 -8
  5. package/src/color/abstract.ts +83 -0
  6. package/src/color/hsl.test.ts +182 -0
  7. package/src/color/hsl.ts +122 -0
  8. package/src/color/hsv.test.ts +174 -0
  9. package/src/color/hsv.ts +100 -0
  10. package/src/color/index.test.ts +119 -0
  11. package/src/color/index.ts +38 -0
  12. package/src/color/random.test.ts +35 -0
  13. package/src/color/random.ts +165 -0
  14. package/src/color/rgb.test.ts +227 -0
  15. package/src/color/rgb.ts +248 -0
  16. package/src/color/utils.test.ts +86 -0
  17. package/src/color/utils.ts +13 -0
  18. package/src/guess_style/guess_style.test.ts +134 -0
  19. package/src/guess_style/guess_style.ts +166 -0
  20. package/{dist/guess_style/index.d.ts → src/guess_style/index.ts} +1 -0
  21. package/src/index.test.ts +77 -0
  22. package/src/index.ts +18 -0
  23. package/src/lib/utils.test.ts +197 -0
  24. package/src/lib/utils.ts +134 -0
  25. package/{dist/shortbread/index.d.ts → src/shortbread/index.ts} +1 -0
  26. package/src/shortbread/layers.test.ts +36 -0
  27. package/src/shortbread/layers.ts +564 -0
  28. package/src/shortbread/properties.test.ts +44 -0
  29. package/src/shortbread/properties.ts +142 -0
  30. package/src/shortbread/template.test.ts +43 -0
  31. package/src/shortbread/template.ts +343 -0
  32. package/src/style_builder/decorator.test.ts +67 -0
  33. package/src/style_builder/decorator.ts +135 -0
  34. package/src/style_builder/recolor.test.ts +306 -0
  35. package/src/style_builder/recolor.ts +110 -0
  36. package/src/style_builder/style_builder.test.ts +103 -0
  37. package/src/style_builder/style_builder.ts +134 -0
  38. package/src/style_builder/types.ts +141 -0
  39. package/src/styles/LICENSE.md +41 -0
  40. package/src/styles/colorful.ts +1041 -0
  41. package/src/styles/eclipse.ts +11 -0
  42. package/{dist/styles/empty.d.ts → src/styles/empty.ts} +7 -3
  43. package/src/styles/graybeard.ts +11 -0
  44. package/src/styles/index.ts +33 -0
  45. package/src/styles/neutrino.ts +429 -0
  46. package/{dist/types/index.d.ts → src/types/index.ts} +1 -0
  47. package/{dist/types/maplibre.d.ts → src/types/maplibre.ts} +3 -0
  48. package/src/types/tilejson.test.ts +94 -0
  49. package/src/types/tilejson.ts +125 -0
  50. package/src/types/vector_layer.test.ts +64 -0
  51. package/src/types/vector_layer.ts +69 -0
  52. package/dist/color/abstract.d.ts +0 -34
  53. package/dist/color/abstract.js +0 -53
  54. package/dist/color/abstract.js.map +0 -1
  55. package/dist/color/hsl.d.ts +0 -23
  56. package/dist/color/hsl.js +0 -98
  57. package/dist/color/hsl.js.map +0 -1
  58. package/dist/color/hsv.d.ts +0 -20
  59. package/dist/color/hsv.js +0 -100
  60. package/dist/color/hsv.js.map +0 -1
  61. package/dist/color/index.d.ts +0 -6
  62. package/dist/color/index.js +0 -29
  63. package/dist/color/index.js.map +0 -1
  64. package/dist/color/random.d.ts +0 -9
  65. package/dist/color/random.js +0 -134
  66. package/dist/color/random.js.map +0 -1
  67. package/dist/color/rgb.d.ts +0 -28
  68. package/dist/color/rgb.js +0 -195
  69. package/dist/color/rgb.js.map +0 -1
  70. package/dist/color/utils.d.ts +0 -3
  71. package/dist/color/utils.js +0 -10
  72. package/dist/color/utils.js.map +0 -1
  73. package/dist/guess_style/guess_style.d.ts +0 -8
  74. package/dist/guess_style/guess_style.js +0 -147
  75. package/dist/guess_style/guess_style.js.map +0 -1
  76. package/dist/guess_style/index.js +0 -2
  77. package/dist/guess_style/index.js.map +0 -1
  78. package/dist/lib/utils.d.ts +0 -6
  79. package/dist/lib/utils.js +0 -126
  80. package/dist/lib/utils.js.map +0 -1
  81. package/dist/shortbread/index.js +0 -3
  82. package/dist/shortbread/index.js.map +0 -1
  83. package/dist/shortbread/layers.d.ts +0 -5
  84. package/dist/shortbread/layers.js +0 -521
  85. package/dist/shortbread/layers.js.map +0 -1
  86. package/dist/shortbread/properties.d.ts +0 -7
  87. package/dist/shortbread/properties.js +0 -125
  88. package/dist/shortbread/properties.js.map +0 -1
  89. package/dist/shortbread/template.d.ts +0 -4
  90. package/dist/shortbread/template.js +0 -339
  91. package/dist/shortbread/template.js.map +0 -1
  92. package/dist/style_builder/decorator.d.ts +0 -4
  93. package/dist/style_builder/decorator.js +0 -127
  94. package/dist/style_builder/decorator.js.map +0 -1
  95. package/dist/style_builder/recolor.d.ts +0 -22
  96. package/dist/style_builder/recolor.js +0 -89
  97. package/dist/style_builder/recolor.js.map +0 -1
  98. package/dist/style_builder/style_builder.d.ts +0 -15
  99. package/dist/style_builder/style_builder.js +0 -106
  100. package/dist/style_builder/style_builder.js.map +0 -1
  101. package/dist/style_builder/types.d.ts +0 -122
  102. package/dist/style_builder/types.js +0 -3
  103. package/dist/style_builder/types.js.map +0 -1
  104. package/dist/styles/colorful.d.ts +0 -11
  105. package/dist/styles/colorful.js +0 -956
  106. package/dist/styles/colorful.js.map +0 -1
  107. package/dist/styles/eclipse.d.ts +0 -5
  108. package/dist/styles/eclipse.js +0 -9
  109. package/dist/styles/eclipse.js.map +0 -1
  110. package/dist/styles/empty.js +0 -8
  111. package/dist/styles/empty.js.map +0 -1
  112. package/dist/styles/graybeard.d.ts +0 -5
  113. package/dist/styles/graybeard.js +0 -9
  114. package/dist/styles/graybeard.js.map +0 -1
  115. package/dist/styles/index.d.ts +0 -11
  116. package/dist/styles/index.js +0 -20
  117. package/dist/styles/index.js.map +0 -1
  118. package/dist/styles/neutrino.d.ts +0 -11
  119. package/dist/styles/neutrino.js +0 -401
  120. package/dist/styles/neutrino.js.map +0 -1
  121. package/dist/types/index.js +0 -3
  122. package/dist/types/index.js.map +0 -1
  123. package/dist/types/maplibre.js +0 -2
  124. package/dist/types/maplibre.js.map +0 -1
  125. package/dist/types/tilejson.d.ts +0 -32
  126. package/dist/types/tilejson.js +0 -87
  127. package/dist/types/tilejson.js.map +0 -1
  128. package/dist/types/vector_layer.d.ts +0 -14
  129. package/dist/types/vector_layer.js +0 -51
  130. package/dist/types/vector_layer.js.map +0 -1
@@ -0,0 +1,1041 @@
1
+ import { StyleBuilder } from '../style_builder/style_builder.js';
2
+ import type { StyleBuilderColors, StyleRules, StyleRulesOptions } from '../style_builder/types.js';
3
+
4
+ export default class Colorful extends StyleBuilder {
5
+ public readonly name: string = 'Colorful';
6
+
7
+ public defaultFonts = {
8
+ regular: 'noto_sans_regular',
9
+ bold: 'noto_sans_bold',
10
+ };
11
+
12
+ public defaultColors: StyleBuilderColors = {
13
+
14
+ /** Color for land areas on the map. */
15
+ land: '#F9F4EE',
16
+
17
+ /** Color for water bodies like lakes and rivers. */
18
+ water: '#BEDDF3',
19
+
20
+ /** Color for glacier areas, usually shown as white. */
21
+ glacier: '#FFFFFF',
22
+
23
+ /** Color for wooded or forested areas. */
24
+ wood: '#66AA44',
25
+
26
+ /** Color for grasslands or open fields. */
27
+ grass: '#D8E8C8',
28
+
29
+ /** Color for parks and recreational areas. */
30
+ park: '#D9D9A5',
31
+
32
+ /** Color for streets and roads on the map. */
33
+ street: '#FFFFFF',
34
+
35
+ /** Background color for streets. */
36
+ streetbg: '#CFCDCA',
37
+
38
+ /** Color for major highways or motorways. */
39
+ motorway: '#FFCC88',
40
+
41
+ /** Background color for motorways. */
42
+ motorwaybg: '#E9AC77',
43
+
44
+ /** Color for trunk roads. */
45
+ trunk: '#FFEEAA',
46
+
47
+ /** Background color for trunk roads. */
48
+ trunkbg: '#E9AC77',
49
+
50
+ /** Background color for buildings. */
51
+ buildingbg: '#DFDBD7',
52
+
53
+ /** Primary color for buildings. */
54
+ building: '#F2EAE2',
55
+
56
+ /** Color used for boundaries. */
57
+ boundary: '#A6A6C8',
58
+
59
+ /** Color used for disputed boundaries. */
60
+ disputed: '#BEBCCF',
61
+
62
+ /** Color used for residential areas. */
63
+ residential: '#EAE6E133',
64
+
65
+ /** Color used for commercial areas. */
66
+ commercial: '#F7DEED40',
67
+
68
+ /** Color used for industrial areas. */
69
+ industrial: '#FFF4C255',
70
+
71
+ /** Color used for footpaths and pedestrian areas. */
72
+ foot: '#FBEBFF',
73
+
74
+ /** Primary color used for labels. */
75
+ label: '#333344',
76
+
77
+ /** Color used for label halos. */
78
+ labelHalo: '#FFFFFFCC',
79
+
80
+ /** Color used for shields on maps. */
81
+ shield: '#FFFFFF',
82
+
83
+ /** Color used for agriculture areas. */
84
+ agriculture: '#F0E7D1',
85
+
86
+ /** Color used for railways. */
87
+ rail: '#B1BBC4',
88
+
89
+ /** Color used for subways and underground systems. */
90
+ subway: '#A6B8C7',
91
+
92
+ /** Color used for cycle paths. */
93
+ cycle: '#EFF9FF',
94
+
95
+ /** Color used for waste areas. */
96
+ waste: '#DBD6BD',
97
+
98
+ /** Color used for burial and cemetery areas. */
99
+ burial: '#DDDBCA',
100
+
101
+ /** Color used for sand areas like beaches. */
102
+ sand: '#FAFAED',
103
+
104
+ /** Color used for rocky terrain. */
105
+ rock: '#E0E4E5',
106
+
107
+ /** Color used for leisure areas like parks and gardens. */
108
+ leisure: '#E7EDDE',
109
+
110
+ /** Color used for wetland areas like marshes. */
111
+ wetland: '#D3E6DB',
112
+
113
+ /** Color used for various symbols on the map. */
114
+ symbol: '#66626A',
115
+
116
+ /** Color indicating danger or warning areas. */
117
+ danger: '#FF0000',
118
+
119
+ /** Color used for prison areas. */
120
+ prison: '#FDF2FC',
121
+
122
+ /** Color used for parking areas. */
123
+ parking: '#EBE8E6',
124
+
125
+ /** Color used for construction sites. */
126
+ construction: '#A9A9A9',
127
+
128
+ /** Color used for educational facilities. */
129
+ education: '#FFFF80',
130
+
131
+ /** Color used for hospitals and medical facilities. */
132
+ hospital: '#FF6666',
133
+
134
+ /** Color used for points of interest. */
135
+ poi: '#555555',
136
+ };
137
+
138
+ protected getStyleRules(options: StyleRulesOptions): StyleRules {
139
+ const { colors, fonts } = options;
140
+ return {
141
+ // background
142
+ 'background': {
143
+ color: colors.land,
144
+ },
145
+
146
+ // boundary
147
+ 'boundary-{country,state}:outline': {
148
+ color: colors.land.lighten(0.1),
149
+ lineBlur: 1,
150
+ lineCap: 'round',
151
+ lineJoin: 'round',
152
+ },
153
+ 'boundary-{country,state}': {
154
+ color: colors.boundary,
155
+ lineCap: 'round',
156
+ lineJoin: 'round',
157
+ },
158
+ 'boundary-country{-disputed,}:outline': {
159
+ size: { 2: 0, 3: 2, 10: 8 },
160
+ opacity: 0.75,
161
+ color: colors.land.lighten(0.05),
162
+ },
163
+ 'boundary-country{-disputed,}': {
164
+ size: { 2: 0, 3: 1, 10: 4 },
165
+ },
166
+ 'boundary-country-disputed': {
167
+ color: colors.disputed,
168
+ lineDasharray: [2, 1],
169
+ lineCap: 'square',
170
+ },
171
+ 'boundary-state:outline': {
172
+ size: { 7: 0, 8: 2, 10: 4 },
173
+ opacity: 0.75,
174
+ },
175
+ 'boundary-state': {
176
+ size: { 7: 0, 8: 1, 10: 2 },
177
+ },
178
+
179
+ // water
180
+
181
+ 'water-*': {
182
+ color: colors.water,
183
+ lineCap: 'round',
184
+ lineJoin: 'round',
185
+ },
186
+ 'water-area': {
187
+ opacity: { 4: 0, 6: 1 },
188
+ },
189
+ 'water-area-*': {
190
+ opacity: { 4: 0, 6: 1 },
191
+ },
192
+ 'water-{pier,dam}-area': {
193
+ color: colors.land,
194
+ opacity: { 12: 0, 13: 1 },
195
+ },
196
+ 'water-pier': {
197
+ color: colors.land,
198
+ },
199
+ 'water-river': {
200
+ lineWidth: { 9: 0, 10: 3, 15: 5, 17: 9, 18: 20, 20: 60 },
201
+ },
202
+ 'water-canal': {
203
+ lineWidth: { 9: 0, 10: 2, 15: 4, 17: 8, 18: 17, 20: 50 },
204
+ },
205
+ 'water-stream': {
206
+ lineWidth: { 13: 0, 14: 1, 15: 2, 17: 6, 18: 12, 20: 30 },
207
+ },
208
+ 'water-ditch': {
209
+ lineWidth: { 14: 0, 15: 1, 17: 4, 18: 8, 20: 20 },
210
+ },
211
+
212
+ // land
213
+
214
+ 'land-*': {
215
+ color: colors.land,
216
+ },
217
+ 'land-glacier': {
218
+ color: colors.glacier,
219
+ },
220
+ 'land-forest': {
221
+ color: colors.wood,
222
+ opacity: { 7: 0, 8: 0.1 },
223
+ },
224
+ 'land-grass': {
225
+ color: colors.grass,
226
+ opacity: { 11: 0, 12: 1 },
227
+ },
228
+ 'land-{park,garden,vegetation}': {
229
+ color: colors.park,
230
+ opacity: { 11: 0, 12: 1 },
231
+ },
232
+ 'land-agriculture': {
233
+ color: colors.agriculture,
234
+ opacity: { 10: 0, 11: 1 },
235
+ },
236
+ 'land-residential': {
237
+ color: colors.residential,
238
+ opacity: { 10: 0, 11: 1 },
239
+ },
240
+ 'land-commercial': {
241
+ color: colors.commercial,
242
+ opacity: { 10: 0, 11: 1 },
243
+ },
244
+ 'land-industrial': {
245
+ color: colors.industrial,
246
+ opacity: { 10: 0, 11: 1 },
247
+ },
248
+ 'land-waste': {
249
+ color: colors.waste,
250
+ opacity: { 10: 0, 11: 1 },
251
+ },
252
+ 'land-burial': {
253
+ color: colors.burial,
254
+ opacity: { 13: 0, 14: 1 },
255
+ },
256
+ 'land-leisure': {
257
+ color: colors.leisure,
258
+ },
259
+ 'land-rock': {
260
+ color: colors.rock,
261
+ },
262
+ 'land-sand': {
263
+ color: colors.sand,
264
+ },
265
+ 'land-wetland': {
266
+ color: colors.wetland,
267
+ },
268
+
269
+ // site
270
+
271
+ 'site-dangerarea': {
272
+ color: colors.danger,
273
+ fillOutlineColor: colors.danger,
274
+ opacity: 0.3,
275
+ image: 'basics:pattern-warning',
276
+ },
277
+ 'site-hospital': {
278
+ color: colors.hospital,
279
+ opacity: 0.1,
280
+ },
281
+ 'site-prison': {
282
+ color: colors.prison,
283
+ image: 'basics:pattern-striped',
284
+ opacity: 0.1,
285
+ },
286
+ 'site-construction': {
287
+ color: colors.construction,
288
+ image: 'basics:pattern-hatched_thin',
289
+ opacity: 0.1,
290
+ },
291
+ 'site-{university,college,school}': {
292
+ color: colors.education,
293
+ opacity: 0.1,
294
+ },
295
+ 'site-{bicycleparking,parking}': {
296
+ color: colors.parking,
297
+ },
298
+
299
+ // building
300
+
301
+ 'building:outline': {
302
+ color: colors.buildingbg,
303
+ opacity: { 14: 0, 15: 1 },
304
+ },
305
+ 'building': { // fake 2.5d with translate
306
+ color: colors.building,
307
+ opacity: { 14: 0, 15: 1 },
308
+ fillTranslate: [-2, -2],
309
+ },
310
+
311
+ // airport
312
+ 'airport-area': {
313
+ color: colors.street,
314
+ opacity: 0.5,
315
+ },
316
+ 'airport-{runway,taxiway}:outline': {
317
+ color: colors.streetbg,
318
+ lineJoin: 'round',
319
+ },
320
+ 'airport-{runway,taxiway}': {
321
+ color: colors.street,
322
+ lineJoin: 'round',
323
+ },
324
+ 'airport-runway:outline': {
325
+ size: { 11: 0, 12: 6, 13: 9, 14: 16, 15: 24, 16: 40, 17: 100, 18: 160, 20: 300 },
326
+ },
327
+ 'airport-runway': {
328
+ size: { 11: 0, 12: 5, 13: 8, 14: 14, 15: 22, 16: 38, 17: 98, 18: 158, 20: 298 },
329
+ opacity: { 11: 0, 12: 1 },
330
+ },
331
+ 'airport-taxiway:outline': {
332
+ size: { 13: 0, 14: 2, 15: 10, 16: 14, 18: 20, 20: 40 },
333
+ },
334
+ 'airport-taxiway': {
335
+ size: { 13: 0, 14: 1, 15: 8, 16: 12, 18: 18, 20: 36 },
336
+ opacity: { 13: 0, 14: 1 },
337
+ },
338
+
339
+ // bridge
340
+
341
+ 'bridge': {
342
+ color: colors.land.darken(0.02),
343
+ fillAntialias: true,
344
+ opacity: 0.8,
345
+ },
346
+
347
+ // street
348
+
349
+ // colors and joins
350
+ '{tunnel-,bridge-,}street-*:outline': {
351
+ color: colors.streetbg,
352
+ lineJoin: 'round',
353
+ },
354
+ '{tunnel-,bridge-,}street-*': {
355
+ color: colors.street,
356
+ lineJoin: 'round',
357
+ },
358
+ 'tunnel-street-*:outline': {
359
+ color: colors.street.darken(0.13),
360
+ },
361
+ 'tunnel-street-*': {
362
+ color: colors.street.darken(0.03),
363
+ },
364
+ 'bridge-street-*:outline': {
365
+ color: colors.street.darken(0.15),
366
+ },
367
+
368
+ // streets and ways, line caps
369
+ '{tunnel-,}{street,way}-*': {
370
+ lineCap: 'round',
371
+ },
372
+ '{tunnel-,}{street,way}-*:outline': {
373
+ lineCap: 'round',
374
+ },
375
+ 'bridge-{street,way}-*': {
376
+ lineCap: 'butt',
377
+ },
378
+ 'bridge-{street,way}-*:outline': {
379
+ lineCap: 'butt',
380
+ },
381
+
382
+ // faux bridges
383
+ 'bridge-{street,way}-*:bridge': {
384
+ lineCap: 'butt',
385
+ lineJoin: 'round',
386
+ color: colors.land.darken(0.02),
387
+ fillAntialias: true,
388
+ opacity: 0.5,
389
+ },
390
+ 'bridge-street-motorway:bridge': {
391
+ size: { '5': 0, '6': 3, '10': 7, '14': 7, '16': 20, '18': 53, '19': 118, '20': 235 }
392
+ },
393
+ 'bridge-street-trunk:bridge': {
394
+ size: { '7': 0, '8': 3, '10': 6, '14': 8, '16': 17, '18': 50, '19': 104, '20': 202 }
395
+ },
396
+ 'bridge-street-primary:bridge': {
397
+ size: { '8': 0, '9': 1, '10': 6, '14': 8, '16': 17, '18': 50, '19': 104, '20': 202 }
398
+ },
399
+ 'bridge-street-secondary:bridge': {
400
+ size: { '11': 3, '14': 7, '16': 11, '18': 42, '19': 95, '20': 193 },
401
+ opacity: { '11': 0, '12': 1 }
402
+ },
403
+ 'bridge-street-motorway-link:bridge': {
404
+ minzoom: 12,
405
+ size: { '12': 3, '14': 4, '16': 10, '18': 20, '20': 56 }
406
+ },
407
+ 'bridge-street-{trunk,primary,secondary}-link:bridge': {
408
+ minzoom: 13,
409
+ size: { '12': 3, '14': 4, '16': 10, '18': 20, '20': 56 }
410
+ },
411
+ 'bridge-street-{tertiary,tertiary-link,unclassified,residential,livingstreet,pedestrian}*:bridge': {
412
+ size: { '12': 3, '14': 4, '16': 8, '18': 36, '19': 90, '20': 179 },
413
+ opacity: { '12': 0, '13': 1 }
414
+ },
415
+ 'bridge-street-{service,track}:bridge': {
416
+ size: { '14': 3, '16': 6, '18': 25, '19': 67, '20': 134 },
417
+ opacity: { '14': 0, '15': 1 }
418
+ },
419
+ 'bridge-way-*:bridge': {
420
+ size: { '15': 0, '16': 7, '18': 10, '19': 17, '20': 31 },
421
+ minzoom: 15
422
+ },
423
+
424
+
425
+ // special color: motorway
426
+ '{bridge-,}street-motorway{-link,}:outline': {
427
+ color: colors.motorwaybg,
428
+ },
429
+ '{bridge-,}street-motorway{-link,}': {
430
+ color: colors.motorway,
431
+ },
432
+ '{bridge-,}street-{trunk,primary,secondary}{-link,}:outline': {
433
+ color: colors.trunkbg,
434
+ },
435
+ '{bridge-,}street-{trunk,primary,secondary}{-link,}': {
436
+ color: colors.trunk,
437
+ },
438
+ 'tunnel-street-motorway{-link,}:outline': {
439
+ color: colors.motorwaybg.lighten(0.05),
440
+ lineDasharray: [1, 0.3],
441
+ },
442
+ 'tunnel-street-motorway{-link,}': {
443
+ color: colors.motorway.lighten(0.1),
444
+ lineCap: 'butt',
445
+ },
446
+ 'tunnel-street-{trunk,primary,secondary}{-link,}:outline': {
447
+ color: colors.trunkbg.lighten(0.05),
448
+ lineDasharray: [1, 0.3],
449
+ },
450
+ 'tunnel-street-{trunk,primary,secondary}{-link,}': {
451
+ color: colors.trunk.lighten(0.1),
452
+ lineCap: 'butt',
453
+ },
454
+
455
+ // motorway
456
+ '{bridge-,tunnel-,}street-motorway:outline': {
457
+ size: { 5: 0, 6: 2, 10: 5, 14: 5, 16: 14, 18: 38, 19: 84, 20: 168 },
458
+ },
459
+ '{bridge-,tunnel-,}street-motorway': {
460
+ size: { 5: 0, 6: 1, 10: 4, 14: 4, 16: 12, 18: 36, 19: 80, 20: 160 },
461
+ opacity: { 5: 0, 6: 1 },
462
+ },
463
+
464
+ // trunk
465
+ '{bridge-,tunnel-,}street-trunk:outline': {
466
+ size: { 7: 0, 8: 2, 10: 4, 14: 6, 16: 12, 18: 36, 19: 74, 20: 144 },
467
+ },
468
+ '{bridge-,tunnel-,}street-trunk': {
469
+ size: { 7: 0, 8: 1, 10: 3, 14: 5, 16: 10, 18: 34, 19: 70, 20: 140 },
470
+ opacity: { 7: 0, 8: 1 },
471
+ },
472
+
473
+ // primary
474
+ '{bridge-,tunnel-,}street-primary:outline': {
475
+ size: { 8: 0, 9: 1, 10: 4, 14: 6, 16: 12, 18: 36, 19: 74, 20: 144 },
476
+ },
477
+ '{bridge-,tunnel-,}street-primary': {
478
+ size: { 8: 0, 9: 2, 10: 3, 14: 5, 16: 10, 18: 34, 19: 70, 20: 140 },
479
+ opacity: { 8: 0, 9: 1 },
480
+ },
481
+
482
+ // secondary
483
+ '{bridge-,tunnel-,}street-secondary:outline': {
484
+ size: { 11: 2, 14: 5, 16: 8, 18: 30, 19: 68, 20: 138 },
485
+ opacity: { 11: 0, 12: 1 },
486
+ },
487
+ '{bridge-,tunnel-,}street-secondary': {
488
+ size: { 11: 1, 14: 4, 16: 6, 18: 28, 19: 64, 20: 130 },
489
+ opacity: { 11: 0, 12: 1 },
490
+ },
491
+
492
+ // links
493
+ '{bridge-,tunnel-,}street-motorway-link:outline': {
494
+ minzoom: 12,
495
+ size: { 12: 2, 14: 3, 16: 7, 18: 14, 20: 40 },
496
+ // opacity: { 12: 0, 13: 1 }, // no fade-in because those are merged in lower zooms
497
+ },
498
+ '{bridge-,tunnel-,}street-motorway-link': {
499
+ minzoom: 12,
500
+ size: { 12: 1, 14: 2, 16: 5, 18: 12, 20: 38 },
501
+ // opacity: { 12: 0, 13: 1 }, // no fade-in because those are merged in lower zooms
502
+ },
503
+ '{bridge-,tunnel-,}street-{trunk,primary,secondary}-link:outline': {
504
+ minzoom: 13,
505
+ size: { 12: 2, 14: 3, 16: 7, 18: 14, 20: 40 },
506
+ // opacity: { 13: 0, 14: 1 }, // no fade-in because those are merged in lower zooms
507
+ },
508
+ '{bridge-,tunnel-,}street-{trunk,primary,secondary}-link': {
509
+ minzoom: 13,
510
+ size: { 12: 1, 14: 2, 16: 5, 18: 12, 20: 38 },
511
+ // opacity: { 13: 0, 14: 1 }, // no fade-in because those are merged in lower zooms
512
+ },
513
+
514
+ // minor streets
515
+ '{bridge-,tunnel-,}street-{tertiary,tertiary-link,unclassified,residential,livingstreet,pedestrian}*:outline': {
516
+ size: { 12: 2, 14: 3, 16: 6, 18: 26, 19: 64, 20: 128 },
517
+ opacity: { 12: 0, 13: 1 },
518
+ },
519
+ '{bridge-,tunnel-,}street-{tertiary,tertiary-link,unclassified,residential,livingstreet,pedestrian}*': {
520
+ size: { 12: 1, 14: 2, 16: 5, 18: 24, 19: 60, 20: 120 },
521
+ opacity: { 12: 0, 13: 1 },
522
+ },
523
+
524
+ // service and tracks
525
+ '{bridge-,tunnel-,}street-{service,track}:outline': {
526
+ size: { 14: 2, 16: 4, 18: 18, 19: 48, 20: 96 },
527
+ opacity: { 14: 0, 15: 1 },
528
+ },
529
+ '{bridge-,tunnel-,}street-{service,track}': {
530
+ size: { 14: 1, 16: 3, 18: 16, 19: 44, 20: 88 },
531
+ opacity: { 14: 0, 15: 1 },
532
+ },
533
+
534
+ // ways
535
+ '{bridge-,tunnel-,}way-*:outline': {
536
+ size: { 15: 0, 16: 5, 18: 7, 19: 12, 20: 22 },
537
+ minzoom: 15,
538
+ },
539
+ '{bridge-,tunnel-,}way-*': {
540
+ size: { 15: 0, 16: 4, 18: 6, 19: 10, 20: 20 },
541
+ minzoom: 15,
542
+ },
543
+
544
+ // foot
545
+ '{bridge-,}way-{footway,path,steps}:outline': {
546
+ color: colors.foot.darken(0.1),
547
+ },
548
+ '{bridge-,}way-{footway,path,steps}': {
549
+ color: colors.foot.lighten(0.02),
550
+ },
551
+ 'tunnel-way-{footway,path,steps}:outline': {
552
+ color: colors.foot.darken(0.1).saturate(-0.5),
553
+ },
554
+ 'tunnel-way-{footway,path,steps}': {
555
+ color: colors.foot.darken(0.02).saturate(-0.5),
556
+ lineDasharray: [1, 0.2],
557
+ },
558
+
559
+ // cycleway
560
+ '{bridge-,}way-cycleway:outline': {
561
+ color: colors.cycle.darken(0.1),
562
+ },
563
+ '{bridge-,}way-cycleway': {
564
+ color: colors.cycle,
565
+ },
566
+ 'tunnel-way-cycleway:outline': {
567
+ color: colors.cycle.darken(0.1).saturate(-0.5),
568
+ },
569
+ 'tunnel-way-cycleway': {
570
+ color: colors.cycle.darken(0.02).saturate(-0.5),
571
+ lineDasharray: [1, 0.2],
572
+ },
573
+
574
+ // cycle streets overlay
575
+ '{bridge-,tunnel-,}street-{tertiary,tertiary-link,unclassified,residential,livingstreet,pedestrian}-bicycle': {
576
+ lineCap: 'butt',
577
+ color: colors.cycle,
578
+ },
579
+
580
+ // pedestrian
581
+ 'street-pedestrian': {
582
+ size: { 12: 1, 14: 2, 16: 5, 18: 24, 19: 60, 20: 120 },
583
+ opacity: { 13: 0, 14: 1 },
584
+ color: colors.foot,
585
+ },
586
+ 'street-pedestrian-zone': {
587
+ color: colors.foot.lighten(0.02).fade(0.75),
588
+ opacity: { 14: 0, 15: 1 },
589
+ },
590
+
591
+ // rail, lightrail
592
+ '{tunnel-,bridge-,}transport-{rail,lightrail}:outline': {
593
+ color: colors.rail,
594
+ size: { 8: 1, 13: 1, 15: 3, 16: 4, 18: 8, 19: 11, 20: 14 },
595
+ },
596
+ '{tunnel-,bridge-,}transport-{rail,lightrail}': {
597
+ color: colors.rail.lighten(0.25),
598
+ size: { 8: 1, 13: 1, 15: 2, 16: 3, 18: 6, 19: 8, 20: 10 },
599
+ lineDasharray: [2, 2],
600
+ },
601
+ // subway
602
+ '{tunnel-,bridge-,}transport-subway:outline': {
603
+ color: colors.subway,
604
+ size: { 11: 0, 12: 1, 15: 3, 16: 3, 18: 6, 19: 8, 20: 10 },
605
+ },
606
+ '{tunnel-,bridge-,}transport-subway': {
607
+ color: colors.subway.lighten(0.25),
608
+ size: { 11: 0, 12: 1, 15: 2, 16: 2, 18: 5, 19: 6, 20: 8 },
609
+ lineDasharray: [2, 2],
610
+ },
611
+ // monorail
612
+ '{tunnel-,bridge-,}transport-{tram,narrowgauge,funicular,monorail}:outline': {
613
+ minzoom: 15,
614
+ color: colors.rail,
615
+ size: { 15: 0, 16: 5, 18: 7, 20: 20 },
616
+ lineDasharray: [0.1, 0.5],
617
+ },
618
+ '{tunnel-,bridge-,}transport-{tram,narrowgauge,funicular,monorail}': {
619
+ minzoom: 13,
620
+ size: { 13: 0, 16: 1, 17: 2, 18: 3, 20: 5 },
621
+ color: colors.rail,
622
+ },
623
+
624
+ // bridge
625
+ '{bridge-,}transport-rail:outline': {
626
+ opacity: { 8: 0, 9: 1 },
627
+ },
628
+ '{bridge-,}transport-rail': {
629
+ opacity: { 14: 0, 15: 1 },
630
+ },
631
+ '{bridge-,}transport-{lightrail,subway}:outline': {
632
+ opacity: { 11: 0, 12: 1 },
633
+ },
634
+ '{bridge-,}transport-{lightrail,subway}': {
635
+ opacity: { 14: 0, 15: 1 },
636
+ },
637
+
638
+ // tunnel
639
+ 'tunnel-transport-rail:outline': {
640
+ opacity: { 8: 0, 9: 0.3 },
641
+ },
642
+ 'tunnel-transport-rail': {
643
+ opacity: { 14: 0, 15: 0.3 },
644
+ },
645
+ 'tunnel-transport-{lightrail,subway}:outline': {
646
+ opacity: { 11: 0, 12: 0.5 },
647
+ },
648
+ 'tunnel-transport-{lightrail,subway}': {
649
+ opacity: { 14: 0, 15: 1 },
650
+ },
651
+
652
+ // ferry
653
+ 'transport-ferry': {
654
+ minzoom: 10,
655
+ color: colors.water.darken(0.1),
656
+ size: { 10: 1, 13: 2, 14: 3, 16: 4, 17: 6 },
657
+ opacity: { 10: 0, 11: 1 },
658
+ lineDasharray: [1, 1],
659
+ },
660
+
661
+ // labels
662
+ 'label-boundary-*': {
663
+ color: colors.label,
664
+ font: fonts.regular,
665
+ textTransform: 'uppercase',
666
+ textHaloColor: colors.labelHalo,
667
+ textHaloWidth: 2,
668
+ textHaloBlur: 1,
669
+ textAnchor: 'top',
670
+ textOffset: [0, 0.2],
671
+ textPadding: 0,
672
+ textOptional: true,
673
+ },
674
+ 'label-boundary-country-large': {
675
+ minzoom: 2,
676
+ size: { 2: 8, 5: 13 },
677
+ },
678
+ 'label-boundary-country-medium': {
679
+ minzoom: 3,
680
+ size: { 3: 8, 5: 12 },
681
+ },
682
+ 'label-boundary-country-small': {
683
+ minzoom: 4,
684
+ size: { 4: 8, 5: 11 },
685
+ },
686
+ 'label-boundary-state': {
687
+ minzoom: 5,
688
+ color: colors.label.lighten(0.05),
689
+ size: { 5: 8, 8: 12 },
690
+ },
691
+ 'label-place-*': {
692
+ color: colors.label.rotateHue(-15).saturate(1).darken(0.05),
693
+ font: fonts.regular,
694
+ textHaloColor: colors.labelHalo,
695
+ textHaloWidth: 2,
696
+ textHaloBlur: 1,
697
+ },
698
+ 'label-place-capital': {
699
+ minzoom: 5,
700
+ size: { 5: 12, 10: 16 },
701
+ },
702
+ 'label-place-statecapital': {
703
+ minzoom: 6,
704
+ size: { 6: 11, 10: 15 },
705
+ },
706
+ 'label-place-city': {
707
+ minzoom: 7,
708
+ size: { 7: 11, 10: 14 },
709
+ },
710
+ 'label-place-town': {
711
+ minzoom: 9,
712
+ size: { 8: 11, 12: 14 },
713
+ },
714
+ 'label-place-village': {
715
+ minzoom: 11,
716
+ size: { 9: 11, 12: 14 },
717
+ },
718
+ 'label-place-hamlet': {
719
+ minzoom: 13,
720
+ size: { 10: 11, 12: 14 },
721
+ },
722
+ // all the city things
723
+ 'label-place-suburb': {
724
+ minzoom: 11,
725
+ size: { 11: 11, 13: 14 },
726
+ textTransform: 'uppercase',
727
+ color: colors.label.rotateHue(-30).saturate(1).darken(0.05),
728
+ },
729
+ 'label-place-quarter': {
730
+ minzoom: 13,
731
+ size: { 13: 13 },
732
+ textTransform: 'uppercase',
733
+ color: colors.label.rotateHue(-40).saturate(1).darken(0.05),
734
+ },
735
+ 'label-place-neighbourhood': {
736
+ minzoom: 14,
737
+ size: { 14: 12 },
738
+ textTransform: 'uppercase',
739
+ color: colors.label.rotateHue(-50).saturate(1).darken(0.05),
740
+ },
741
+ 'label-motorway-shield': {
742
+ color: colors.shield,
743
+ font: fonts.bold,
744
+ textHaloColor: colors.motorway,
745
+ textHaloWidth: 0.1,
746
+ textHaloBlur: 1,
747
+ symbolPlacement: 'line',
748
+ textAnchor: 'center',
749
+ minzoom: 14,
750
+ size: { 14: 10, 18: 12, 20: 16 },
751
+ },
752
+ 'label-street-*': {
753
+ color: colors.label,
754
+ font: fonts.regular,
755
+ textHaloColor: colors.labelHalo,
756
+ textHaloWidth: 2,
757
+ textHaloBlur: 1,
758
+ symbolPlacement: 'line',
759
+ textAnchor: 'center',
760
+ minzoom: 12,
761
+ size: { 12: 10, 15: 13 },
762
+ },
763
+ 'label-address-housenumber': {
764
+ font: fonts.regular,
765
+ textHaloColor: colors.building.lighten(0.05),
766
+ textHaloWidth: 2,
767
+ textHaloBlur: 1,
768
+ symbolPlacement: 'point',
769
+ textAnchor: 'center',
770
+ minzoom: 17,
771
+ size: { 17: 8, 19: 10 },
772
+ color: colors.building.darken(0.3),
773
+ },
774
+
775
+ // markings
776
+ 'marking-oneway{-reverse,}': {
777
+ minzoom: 16,
778
+ image: 'basics:marking-arrow',
779
+ opacity: { 16: 0, 17: 0.7 },
780
+ font: fonts.regular,
781
+ },
782
+
783
+ // TODO: bicycle and pedestrian
784
+
785
+ // transit
786
+ 'symbol-*': {
787
+ iconSize: 1,
788
+ symbolPlacement: 'point',
789
+ iconOpacity: 0.7,
790
+ iconKeepUpright: true,
791
+ font: fonts.regular,
792
+ size: 10,
793
+ color: colors.symbol,
794
+ iconAnchor: 'bottom',
795
+ textAnchor: 'top',
796
+ textHaloColor: colors.labelHalo,
797
+ textHaloWidth: 2,
798
+ textHaloBlur: 1,
799
+ },
800
+ 'symbol-transit-airport': {
801
+ minzoom: 12,
802
+ image: 'basics:icon-airport',
803
+ iconSize: { 12: 0.5, 14: 1 },
804
+ },
805
+ 'symbol-transit-airfield': {
806
+ minzoom: 13,
807
+ image: 'basics:icon-airfield',
808
+ iconSize: { 13: 0.5, 15: 1 },
809
+ },
810
+ 'symbol-transit-station': {
811
+ minzoom: 13,
812
+ image: 'basics:icon-rail',
813
+ iconSize: { 13: 0.5, 15: 1 },
814
+ },
815
+ 'symbol-transit-lightrail': {
816
+ minzoom: 14,
817
+ image: 'basics:icon-rail_light',
818
+ iconSize: { 14: 0.5, 16: 1 },
819
+ },
820
+ 'symbol-transit-subway': {
821
+ minzoom: 14,
822
+ image: 'basics:icon-rail_metro',
823
+ iconSize: { 14: 0.5, 16: 1 },
824
+ },
825
+ 'symbol-transit-tram': {
826
+ minzoom: 15,
827
+ image: 'basics:transport-tram',
828
+ iconSize: { 15: 0.5, 17: 1 },
829
+ },
830
+ 'symbol-transit-bus': {
831
+ minzoom: 16,
832
+ image: 'basics:icon-bus',
833
+ iconSize: { 16: 0.5, 18: 1 },
834
+ },
835
+ // TODO: localized symbols? depends on shortbread
836
+
837
+ // pois
838
+ 'poi-*': {
839
+ minzoom: 16,
840
+ iconSize: { 16: 0.5, 19: 0.5, 20: 1 },
841
+ opacity: { 16: 0, 17: 0.4 },
842
+ symbolPlacement: 'point',
843
+ iconOptional: true,
844
+ font: fonts.regular,
845
+ color: colors.poi,
846
+ },
847
+ 'poi-amenity': {
848
+ image: ['match',
849
+ ['get', 'amenity'],
850
+ 'arts_centre', 'basics:icon-art_gallery',
851
+ 'atm', 'basics:icon-atm',
852
+ 'bank', 'basics:icon-bank',
853
+ 'bar', 'basics:icon-bar',
854
+ 'bench', 'basics:icon-bench',
855
+ 'bicycle_rental', 'basics:icon-bicycle_share',
856
+ 'biergarten', 'basics:icon-beergarden',
857
+ 'cafe', 'basics:icon-cafe',
858
+ 'car_rental', 'basics:icon-car_rental',
859
+ 'car_sharing', 'basics:icon-car_rental',
860
+ 'car_wash', 'basics:icon-car_wash',
861
+ 'cinema', 'basics:icon-cinema',
862
+ //'clinic', 'basics:icon-clinic',
863
+ 'college', 'basics:icon-college',
864
+ 'community_centre', 'basics:icon-community',
865
+ //'courthouse', 'basics:icon-courthouse',
866
+ 'dentist', 'basics:icon-dentist',
867
+ 'doctors', 'basics:icon-doctor',
868
+ 'dog_park', 'basics:icon-dog_park',
869
+ 'drinking_water', 'basics:icon-drinking_water',
870
+ 'embassy', 'basics:icon-embassy',
871
+ 'fast_food', 'basics:icon-fast_food',
872
+ 'fire_station', 'basics:icon-fire_station',
873
+ //'food_court', 'basics:icon-food_court',
874
+ 'fountain', 'basics:icon-fountain',
875
+ 'grave_yard', 'basics:icon-cemetery',
876
+ 'hospital', 'basics:icon-hospital',
877
+ 'hunting_stand', 'basics:icon-huntingstand',
878
+ 'library', 'basics:icon-library',
879
+ 'marketplace', 'basics:icon-marketplace',
880
+ 'nightclub', 'basics:icon-nightclub',
881
+ 'nursing_home', 'basics:icon-nursinghome',
882
+ 'pharmacy', 'basics:icon-pharmacy',
883
+ 'place_of_worship', 'basics:icon-place_of_worship',
884
+ 'playground', 'basics:icon-playground',
885
+ 'police', 'basics:icon-police',
886
+ 'post_box', 'basics:icon-postbox',
887
+ 'post_office', 'basics:icon-post',
888
+ 'prison', 'basics:icon-prison',
889
+ 'pub', 'basics:icon-beer',
890
+ //'public_building', 'basics:icon-public_building',
891
+ 'recycling', 'basics:icon-recycling',
892
+ 'restaurant', 'basics:icon-restaurant',
893
+ 'school', 'basics:icon-school',
894
+ 'shelter', 'basics:icon-shelter',
895
+ 'telephone', 'basics:icon-telephone',
896
+ 'theatre', 'basics:icon-theatre',
897
+ 'toilets', 'basics:icon-toilet',
898
+ 'townhall', 'basics:icon-town_hall',
899
+ //'university', 'basics:icon-university',
900
+ 'vending_machine', 'basics:icon-vendingmachine',
901
+ 'veterinary', 'basics:icon-veterinary',
902
+ 'waste_basket', 'basics:icon-waste_basket',
903
+ '',
904
+ ],
905
+ },
906
+ 'poi-leisure': {
907
+ image: ['match',
908
+ ['get', 'leisure'],
909
+ 'golf_course', 'basics:icon-golf',
910
+ 'ice_rink', 'basics:icon-icerink',
911
+ 'pitch', 'basics:icon-pitch',
912
+ //'sports_centre', 'basics:icon-sports_centre',
913
+ 'stadium', 'basics:icon-stadium',
914
+ 'swimming_pool', 'basics:icon-swimming',
915
+ 'water_park', 'basics:icon-waterpark',
916
+ 'basics:icon-sports',
917
+ ],
918
+ },
919
+ 'poi-tourism': {
920
+ image: ['match',
921
+ ['get', 'tourism'],
922
+ //'alpine_hut', 'basics:icon-alpine_hut',
923
+ //'bed_and_breakfast', 'basics:icon-bed_and_breakfast',
924
+ //'camp_site', 'basics:icon-camp_site',
925
+ //'caravan_site', 'basics:icon-caravan_site',
926
+ 'chalet', 'basics:icon-chalet',
927
+ //'guest_house', 'basics:icon-guest_house',
928
+ //'hostel', 'basics:icon-hostel',
929
+ //'hotel', 'basics:icon-hotel',
930
+ 'information', 'basics:transport-information',
931
+ //'motel', 'basics:icon-motel',
932
+ 'picnic_site', 'basics:icon-picnic_site',
933
+ //'theme_park', 'basics:icon-theme_park',
934
+ 'viewpoint', 'basics:icon-viewpoint',
935
+ 'zoo', 'basics:icon-zoo',
936
+ '',
937
+ ],
938
+ },
939
+ 'poi-shop': {
940
+ image: ['match',
941
+ ['get', 'shop'],
942
+ 'alcohol', 'basics:icon-alcohol_shop',
943
+ 'bakery', 'basics:icon-bakery',
944
+ 'beauty', 'basics:icon-beauty',
945
+ 'beverages', 'basics:icon-beverages',
946
+ //'bicycle', 'basics:icon-bicycle',
947
+ 'books', 'basics:icon-books',
948
+ 'butcher', 'basics:icon-butcher',
949
+ //'car', 'basics:icon-car',
950
+ 'chemist', 'basics:icon-chemist',
951
+ 'clothes', 'basics:icon-clothes',
952
+ //'computer', 'basics:icon-computer',
953
+ //'convinience', 'basics:icon-convinience',
954
+ //'department_store', 'basics:icon-department_store',
955
+ 'doityourself', 'basics:icon-doityourself',
956
+ 'dry_cleaning', 'basics:icon-drycleaning',
957
+ 'florist', 'basics:icon-florist',
958
+ 'furniture', 'basics:icon-furniture',
959
+ 'garden_centre', 'basics:icon-garden_centre',
960
+ 'general', 'basics:icon-shop',
961
+ 'gift', 'basics:icon-gift',
962
+ 'greengrocer', 'basics:icon-greengrocer',
963
+ 'hairdresser', 'basics:icon-hairdresser',
964
+ 'hardware', 'basics:icon-hardware',
965
+ 'jewelry', 'basics:icon-jewelry_store',
966
+ 'kiosk', 'basics:icon-kiosk',
967
+ 'laundry', 'basics:icon-laundry',
968
+ //'mall', 'basics:icon-mall',
969
+ //'mobile_phone', 'basics:icon-mobile_phone',
970
+ 'newsagent', 'basics:icon-newsagent',
971
+ 'optican', 'basics:icon-optician',
972
+ 'outdoor', 'basics:icon-outdoor',
973
+ 'shoes', 'basics:icon-shoes',
974
+ 'sports', 'basics:icon-sports',
975
+ 'stationery', 'basics:icon-stationery',
976
+ //'supermarket', 'basics:icon-supermarket',
977
+ 'toys', 'basics:icon-toys',
978
+ 'travel_agency', 'basics:icon-travel_agent',
979
+ 'video', 'basics:icon-video',
980
+ 'basics:icon-shop',
981
+ ],
982
+ },
983
+ 'poi-man_made': {
984
+ image: ['match',
985
+ ['get', 'man_made'],
986
+ 'lighthouse', 'basics:icon-lighthouse',
987
+ 'surveillance', 'basics:icon-surveillance',
988
+ 'tower', 'basics:icon-observation_tower',
989
+ //'wastewater_plant', 'basics:icon-wastewater_plant',
990
+ //'water_well', 'basics:icon-water_well',
991
+ //'water_works', 'basics:icon-water_works',
992
+ 'watermill', 'basics:icon-watermill',
993
+ 'windmill', 'basics:icon-windmill',
994
+ '',
995
+ ],
996
+ },
997
+ 'poi-historic': {
998
+ image: ['match',
999
+ ['get', 'historic'],
1000
+ //'archaelogical_site', 'basics:icon-archaelogical_site',
1001
+ 'artwork', 'basics:icon-artwork',
1002
+ //'battlefield', 'basics:icon-battlefield',
1003
+ 'castle', 'basics:icon-castle',
1004
+ //'fort', 'basics:icon-fort',
1005
+ //'memorial', 'basics:icon-memorial',
1006
+ 'monument', 'basics:icon-monument',
1007
+ //'ruins', 'basics:icon-ruins',
1008
+ //'wayside_cross', 'basics:icon-wayside_cross',
1009
+ 'wayside_shrine', 'basics:icon-shrine',
1010
+ 'basics:icon-historic',
1011
+ ],
1012
+ },
1013
+ 'poi-emergency': {
1014
+ image: ['match',
1015
+ ['get', 'emergency'],
1016
+ 'defibrillator', 'basics:icon-defibrillator',
1017
+ 'fire_hydrant', 'basics:icon-hydrant',
1018
+ 'phone', 'basics:icon-emergency_phone',
1019
+ '',
1020
+ ],
1021
+ },
1022
+
1023
+ /*
1024
+ 'poi-highway': {
1025
+ image: ['match',
1026
+ ['get', 'highway'],
1027
+ //'emergency_access_point', 'basics:icon-emergency_access_point',
1028
+ ''
1029
+ ]
1030
+ },
1031
+ 'poi-office': {
1032
+ image: ['match',
1033
+ ['get', 'office'],
1034
+ //'diplomatic', 'basics:icon-diplomatic',
1035
+ ''
1036
+ ]
1037
+ },
1038
+ */
1039
+ };
1040
+ }
1041
+ }