geotimelapse 0.1.0

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 (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/bounds.d.ts +5 -0
  4. package/dist/bounds.d.ts.map +1 -0
  5. package/dist/bounds.js +9 -0
  6. package/dist/bounds.js.map +1 -0
  7. package/dist/clock.d.ts +24 -0
  8. package/dist/clock.d.ts.map +1 -0
  9. package/dist/clock.js +108 -0
  10. package/dist/clock.js.map +1 -0
  11. package/dist/counter.d.ts +18 -0
  12. package/dist/counter.d.ts.map +1 -0
  13. package/dist/counter.js +54 -0
  14. package/dist/counter.js.map +1 -0
  15. package/dist/duckdb-source.d.ts +24 -0
  16. package/dist/duckdb-source.d.ts.map +1 -0
  17. package/dist/duckdb-source.js +211 -0
  18. package/dist/duckdb-source.js.map +1 -0
  19. package/dist/geo-timelapse.d.ts +8 -0
  20. package/dist/geo-timelapse.d.ts.map +1 -0
  21. package/dist/geo-timelapse.js +143 -0
  22. package/dist/geo-timelapse.js.map +1 -0
  23. package/dist/glow-layer.d.ts +47 -0
  24. package/dist/glow-layer.d.ts.map +1 -0
  25. package/dist/glow-layer.js +129 -0
  26. package/dist/glow-layer.js.map +1 -0
  27. package/dist/hooks.d.ts +32 -0
  28. package/dist/hooks.d.ts.map +1 -0
  29. package/dist/hooks.js +142 -0
  30. package/dist/hooks.js.map +1 -0
  31. package/dist/index.d.ts +6 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +3 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/map-style.d.ts +3 -0
  36. package/dist/map-style.d.ts.map +1 -0
  37. package/dist/map-style.js +832 -0
  38. package/dist/map-style.js.map +1 -0
  39. package/dist/map.d.ts +11 -0
  40. package/dist/map.d.ts.map +1 -0
  41. package/dist/map.js +60 -0
  42. package/dist/map.js.map +1 -0
  43. package/dist/player-bar.d.ts +4 -0
  44. package/dist/player-bar.d.ts.map +1 -0
  45. package/dist/player-bar.js +118 -0
  46. package/dist/player-bar.js.map +1 -0
  47. package/dist/settings-menu.d.ts +17 -0
  48. package/dist/settings-menu.d.ts.map +1 -0
  49. package/dist/settings-menu.js +18 -0
  50. package/dist/settings-menu.js.map +1 -0
  51. package/dist/synthetic-source.d.ts +18 -0
  52. package/dist/synthetic-source.d.ts.map +1 -0
  53. package/dist/synthetic-source.js +192 -0
  54. package/dist/synthetic-source.js.map +1 -0
  55. package/dist/types.d.ts +62 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/utils.d.ts +9 -0
  60. package/dist/utils.d.ts.map +1 -0
  61. package/dist/utils.js +28 -0
  62. package/dist/utils.js.map +1 -0
  63. package/package.json +67 -0
  64. package/src/bounds.tsx +14 -0
  65. package/src/clock.tsx +130 -0
  66. package/src/counter.tsx +96 -0
  67. package/src/duckdb-source.ts +238 -0
  68. package/src/geo-timelapse.tsx +204 -0
  69. package/src/glow-layer.test.ts +51 -0
  70. package/src/glow-layer.ts +166 -0
  71. package/src/hooks.ts +167 -0
  72. package/src/index.ts +5 -0
  73. package/src/map-style.ts +833 -0
  74. package/src/map.tsx +107 -0
  75. package/src/player-bar.tsx +164 -0
  76. package/src/settings-menu.tsx +117 -0
  77. package/src/synthetic-source.test.ts +58 -0
  78. package/src/synthetic-source.ts +218 -0
  79. package/src/types.ts +66 -0
  80. package/src/utils.test.ts +60 -0
  81. package/src/utils.ts +32 -0
@@ -0,0 +1,833 @@
1
+ import type { StyleSpecification } from 'mapbox-gl';
2
+
3
+ // The geotimelapse skin: dark relief with deep blue water.
4
+ export const mapStyle = {
5
+ version: 8,
6
+ name: 'basic_skin_relief_2',
7
+ center: [4.311034835496287, 47.7308339427876],
8
+ zoom: 5.090386137353751,
9
+ bearing: 0,
10
+ pitch: 0,
11
+ sources: {
12
+ composite: {
13
+ url: 'mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7',
14
+ type: 'vector',
15
+ },
16
+ },
17
+ glyphs: 'mapbox://fonts/franckernewein/{fontstack}/{range}.pbf',
18
+ layers: [
19
+ {
20
+ id: 'background',
21
+ type: 'background',
22
+ interactive: true,
23
+ layout: {
24
+ visibility: 'visible',
25
+ },
26
+ paint: {
27
+ 'background-color': '#000',
28
+ },
29
+ },
30
+ {
31
+ id: 'landcover_crop',
32
+ type: 'fill',
33
+ metadata: {
34
+ 'mapbox:group': '1444855831248.8289',
35
+ },
36
+ source: 'composite',
37
+ 'source-layer': 'landcover',
38
+ maxzoom: 14,
39
+ interactive: true,
40
+ filter: ['==', 'class', 'crop'],
41
+ layout: {
42
+ visibility: 'visible',
43
+ },
44
+ paint: {
45
+ 'fill-color': 'hsl(0, 0%, 0%)',
46
+ 'fill-opacity': {
47
+ base: 1.5,
48
+ stops: [
49
+ [2, 1],
50
+ [14, 1],
51
+ ],
52
+ },
53
+ 'fill-antialias': true,
54
+ },
55
+ },
56
+ {
57
+ id: 'hillshade_highlight_light',
58
+ type: 'fill',
59
+ metadata: {
60
+ 'mapbox:group': 'e236111f0cd2a5450f11e2ac273318a0',
61
+ },
62
+ source: 'composite',
63
+ 'source-layer': 'hillshade',
64
+ maxzoom: 18,
65
+ interactive: true,
66
+ layout: {
67
+ visibility: 'visible',
68
+ },
69
+ paint: {
70
+ 'fill-color': 'hsl(0, 0%, 100%)',
71
+ 'fill-opacity': 0.03,
72
+ 'fill-antialias': false,
73
+ },
74
+ },
75
+ {
76
+ id: 'hillshade_highlight_shodow',
77
+ type: 'fill',
78
+ metadata: {
79
+ 'mapbox:group': 'e236111f0cd2a5450f11e2ac273318a0',
80
+ },
81
+ source: 'composite',
82
+ 'source-layer': 'hillshade',
83
+ interactive: true,
84
+ layout: {
85
+ visibility: 'visible',
86
+ },
87
+ paint: {
88
+ 'fill-color': 'hsl(0, 0%, 100%)',
89
+ 'fill-antialias': false,
90
+ 'fill-opacity': 0.01,
91
+ },
92
+ },
93
+ {
94
+ id: 'road',
95
+ type: 'line',
96
+ source: 'composite',
97
+ 'source-layer': 'road',
98
+ interactive: true,
99
+ layout: {
100
+ visibility: 'visible',
101
+ 'line-cap': 'round',
102
+ 'line-join': 'round',
103
+ },
104
+ paint: {
105
+ 'line-color': 'hsl(0, 0%, 24%)',
106
+ 'line-opacity': {
107
+ base: 1,
108
+ stops: [
109
+ [0, 0],
110
+ [2.2, 0],
111
+ [10, 0.7],
112
+ ],
113
+ },
114
+ },
115
+ },
116
+ {
117
+ id: 'water',
118
+ type: 'fill',
119
+ source: 'composite',
120
+ 'source-layer': 'water',
121
+ interactive: true,
122
+ layout: {
123
+ visibility: 'visible',
124
+ },
125
+ paint: {
126
+ 'fill-color': '#142561',
127
+ },
128
+ },
129
+ {
130
+ id: 'place-city-sm',
131
+ type: 'symbol',
132
+ metadata: {
133
+ 'mapbox:group': '1444862510685.128',
134
+ },
135
+ source: 'composite',
136
+ 'source-layer': 'place_label',
137
+ maxzoom: 13,
138
+ minzoom: 14,
139
+ interactive: true,
140
+ filter: ['all', ['!in', 'scalerank', 0, 1, 2, 3, 4, 5], ['==', 'type', 'city']],
141
+ layout: {
142
+ 'text-size': {
143
+ base: 1,
144
+ stops: [
145
+ [6, 12],
146
+ [14, 22],
147
+ ],
148
+ },
149
+ 'text-transform': 'none',
150
+ 'text-font': {
151
+ base: 1,
152
+ stops: [
153
+ [7, ['DIN Offc Pro Regular', 'Arial Unicode MS Regular']],
154
+ [8, ['DIN Offc Pro Medium', 'Arial Unicode MS Regular']],
155
+ ],
156
+ },
157
+ visibility: 'none',
158
+ 'text-offset': {
159
+ base: 1,
160
+ stops: [
161
+ [7.99, [0, -0.2]],
162
+ [8, [0, 0]],
163
+ ],
164
+ },
165
+ 'text-anchor': {
166
+ base: 1,
167
+ stops: [
168
+ [7, 'bottom'],
169
+ [8, 'center'],
170
+ ],
171
+ },
172
+ 'text-field': '{name_en}',
173
+ 'text-max-width': 7,
174
+ },
175
+ paint: {
176
+ 'text-color': '#000000',
177
+ 'text-halo-color': '#ffffff',
178
+ 'text-halo-width': 0,
179
+ 'icon-opacity': {
180
+ base: 1,
181
+ stops: [
182
+ [7.99, 1],
183
+ [8, 0],
184
+ ],
185
+ },
186
+ },
187
+ },
188
+ {
189
+ id: 'place-city-md-s',
190
+ type: 'symbol',
191
+ metadata: {
192
+ 'mapbox:group': '1444862510685.128',
193
+ },
194
+ source: 'composite',
195
+ 'source-layer': 'place_label',
196
+ maxzoom: 14,
197
+ minzoom: 13,
198
+ interactive: true,
199
+ filter: ['all', ['==', 'type', 'city'], ['in', 'ldir', 'E', 'S', 'SE', 'SW'], ['in', 'scalerank', 3, 4, 5]],
200
+ layout: {
201
+ visibility: 'visible',
202
+ 'text-field': '{name_en}',
203
+ 'text-anchor': {
204
+ base: 1,
205
+ stops: [
206
+ [7, 'top'],
207
+ [8, 'center'],
208
+ ],
209
+ },
210
+ 'text-offset': {
211
+ base: 1,
212
+ stops: [
213
+ [7.99, [0, 0.1]],
214
+ [8, [0, 0]],
215
+ ],
216
+ },
217
+ 'text-font': {
218
+ base: 1,
219
+ stops: [
220
+ [7, ['DIN Offc Pro Regular', 'Arial Unicode MS Regular']],
221
+ [8, ['DIN Offc Pro Medium', 'Arial Unicode MS Regular']],
222
+ ],
223
+ },
224
+ 'text-size': {
225
+ base: 0.9,
226
+ stops: [
227
+ [5, 12],
228
+ [12, 22],
229
+ ],
230
+ },
231
+ },
232
+ paint: {
233
+ 'icon-opacity': {
234
+ base: 1,
235
+ stops: [
236
+ [0, 0],
237
+ [3, 0],
238
+ [7, 1],
239
+ ],
240
+ },
241
+ 'text-halo-color': '#ffffff',
242
+ 'text-color': '#035898',
243
+ 'text-halo-blur': 0,
244
+ 'text-opacity': {
245
+ base: 1,
246
+ stops: [
247
+ [0, 0],
248
+ [3, 0],
249
+ [7, 1],
250
+ ],
251
+ },
252
+ },
253
+ },
254
+ {
255
+ id: 'place-city-md-n',
256
+ type: 'symbol',
257
+ metadata: {
258
+ 'mapbox:group': '1444862510685.128',
259
+ },
260
+ source: 'composite',
261
+ 'source-layer': 'place_label',
262
+ maxzoom: 14,
263
+ minzoom: 13,
264
+ interactive: true,
265
+ filter: ['all', ['==', 'type', 'city'], ['in', 'ldir', 'N', 'NE', 'NW', 'W'], ['in', 'scalerank', 3, 4, 5]],
266
+ layout: {
267
+ 'text-font': {
268
+ base: 1,
269
+ stops: [
270
+ [7, ['DIN Offc Pro Regular', 'Arial Unicode MS Regular']],
271
+ [8, ['DIN Offc Pro Medium', 'Arial Unicode MS Regular']],
272
+ ],
273
+ },
274
+ visibility: 'visible',
275
+ 'text-offset': {
276
+ base: 1,
277
+ stops: [
278
+ [7.99, [0, -0.25]],
279
+ [8, [0, 0]],
280
+ ],
281
+ },
282
+ 'text-anchor': {
283
+ base: 1,
284
+ stops: [
285
+ [7, 'bottom'],
286
+ [8, 'center'],
287
+ ],
288
+ },
289
+ 'text-field': '{name_en}',
290
+ 'text-max-width': 7,
291
+ 'text-size': {
292
+ base: 0.9,
293
+ stops: [
294
+ [5, 12],
295
+ [12, 22],
296
+ ],
297
+ },
298
+ },
299
+ paint: {
300
+ 'text-color': '#035898',
301
+ 'text-halo-color': '#ffffff',
302
+ 'text-halo-blur': 0,
303
+ 'icon-opacity': {
304
+ base: 1,
305
+ stops: [
306
+ [0, 0],
307
+ [3, 0],
308
+ [7, 1],
309
+ ],
310
+ },
311
+ 'text-halo-width': 0,
312
+ 'text-opacity': {
313
+ base: 1,
314
+ stops: [
315
+ [0, 0],
316
+ [3, 0],
317
+ [7, 1],
318
+ ],
319
+ },
320
+ },
321
+ },
322
+ {
323
+ id: 'place-city-lg-s',
324
+ type: 'symbol',
325
+ metadata: {
326
+ 'mapbox:group': '1444862510685.128',
327
+ },
328
+ source: 'composite',
329
+ 'source-layer': 'place_label',
330
+ minzoom: 14,
331
+ maxzoom: 15,
332
+ interactive: true,
333
+ filter: ['all', ['<=', 'scalerank', 2], ['==', 'type', 'city'], ['in', 'ldir', 'E', 'S', 'SE', 'SW']],
334
+ layout: {
335
+ 'text-font': {
336
+ base: 1,
337
+ stops: [
338
+ [7, ['DIN Offc Pro Regular', 'Arial Unicode MS Regular']],
339
+ [8, ['DIN Offc Pro Medium', 'Arial Unicode MS Regular']],
340
+ ],
341
+ },
342
+ visibility: 'visible',
343
+ 'text-offset': {
344
+ base: 1,
345
+ stops: [
346
+ [7.99, [0, 0.15]],
347
+ [8, [0, 0]],
348
+ ],
349
+ },
350
+ 'text-anchor': {
351
+ base: 1,
352
+ stops: [
353
+ [7, 'top'],
354
+ [8, 'center'],
355
+ ],
356
+ },
357
+ 'text-field': '{name_en}',
358
+ 'text-max-width': 7,
359
+ 'text-size': {
360
+ base: 0.9,
361
+ stops: [
362
+ [4, 12],
363
+ [10, 22],
364
+ ],
365
+ },
366
+ },
367
+ paint: {
368
+ 'text-color': '#035898',
369
+ 'text-halo-color': '#ffffff',
370
+ 'text-halo-width': 0,
371
+ 'icon-opacity': {
372
+ base: 1,
373
+ stops: [
374
+ [0, 0],
375
+ [3, 0],
376
+ [7, 1],
377
+ ],
378
+ },
379
+ 'text-halo-blur': 0,
380
+ 'text-opacity': {
381
+ base: 1,
382
+ stops: [
383
+ [0, 0],
384
+ [3, 0],
385
+ [5, 1],
386
+ ],
387
+ },
388
+ },
389
+ },
390
+ {
391
+ id: 'place-city-lg-n',
392
+ type: 'symbol',
393
+ metadata: {
394
+ 'mapbox:group': '1444862510685.128',
395
+ },
396
+ source: 'composite',
397
+ 'source-layer': 'place_label',
398
+ minzoom: 13,
399
+ maxzoom: 14,
400
+ interactive: true,
401
+ filter: ['all', ['<=', 'scalerank', 2], ['==', 'type', 'city'], ['in', 'ldir', 'N', 'NE', 'NW', 'W']],
402
+ layout: {
403
+ 'text-size': {
404
+ base: 0.9,
405
+ stops: [
406
+ [4, 12],
407
+ [10, 22],
408
+ ],
409
+ },
410
+ 'text-font': {
411
+ base: 1,
412
+ stops: [
413
+ [7, ['DIN Offc Pro Regular', 'Arial Unicode MS Regular']],
414
+ [8, ['DIN Offc Pro Medium', 'Arial Unicode MS Regular']],
415
+ ],
416
+ },
417
+ visibility: 'visible',
418
+ 'text-offset': {
419
+ base: 1,
420
+ stops: [
421
+ [7.99, [0, -0.25]],
422
+ [8, [0, 0]],
423
+ ],
424
+ },
425
+ 'text-anchor': {
426
+ base: 1,
427
+ stops: [
428
+ [7, 'bottom'],
429
+ [8, 'center'],
430
+ ],
431
+ },
432
+ 'text-field': '{name_en}',
433
+ 'text-max-width': 7,
434
+ 'icon-image': 'round_city',
435
+ },
436
+ paint: {
437
+ 'text-color': '#035898',
438
+ 'text-opacity': {
439
+ base: 1,
440
+ stops: [
441
+ [0, 0],
442
+ [3, 0],
443
+ [7, 1],
444
+ ],
445
+ },
446
+ 'text-halo-color': '#ffffff',
447
+ 'text-halo-width': 0,
448
+ 'icon-opacity': {
449
+ base: 1,
450
+ stops: [
451
+ [0, 0],
452
+ [3, 0],
453
+ [7, 1],
454
+ ],
455
+ },
456
+ 'text-halo-blur': 0,
457
+ },
458
+ },
459
+ {
460
+ id: 'country-label-sm',
461
+ type: 'symbol',
462
+ metadata: {
463
+ 'mapbox:group': '1444856144497.7825',
464
+ },
465
+ source: 'composite',
466
+ 'source-layer': 'country_label',
467
+ minzoom: 13,
468
+ maxzoom: 14,
469
+ interactive: true,
470
+ filter: ['>=', 'scalerank', 5],
471
+ layout: {
472
+ 'text-field': '{name_en}',
473
+ visibility: 'visible',
474
+ 'text-max-width': 6,
475
+ 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Regular'],
476
+ 'text-size': {
477
+ base: 0.9,
478
+ stops: [
479
+ [5, 14],
480
+ [9, 22],
481
+ ],
482
+ },
483
+ },
484
+ paint: {
485
+ 'text-color': '#8f7c79',
486
+ 'text-halo-color': {
487
+ base: 1,
488
+ stops: [
489
+ [2, 'rgba(255,255,255,0.75)'],
490
+ [3, '#ffffff'],
491
+ ],
492
+ },
493
+ 'text-halo-width': 0,
494
+ 'text-opacity': {
495
+ base: 1,
496
+ stops: [
497
+ [0, 0],
498
+ [3, 0],
499
+ [5, 1],
500
+ ],
501
+ },
502
+ },
503
+ },
504
+ {
505
+ id: 'country-label-md',
506
+ type: 'symbol',
507
+ metadata: {
508
+ 'mapbox:group': '1444856144497.7825',
509
+ },
510
+ source: 'composite',
511
+ 'source-layer': 'country_label',
512
+ minzoom: 17,
513
+ maxzoom: 18,
514
+ interactive: true,
515
+ filter: ['in', 'scalerank', 3, 4],
516
+ layout: {
517
+ 'text-field': {
518
+ base: 1,
519
+ stops: [
520
+ [0, '{code}'],
521
+ [2, '{name_en}'],
522
+ ],
523
+ },
524
+ visibility: 'visible',
525
+ 'text-max-width': 6,
526
+ 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Regular'],
527
+ 'text-size': {
528
+ base: 1,
529
+ stops: [
530
+ [3, 10],
531
+ [8, 24],
532
+ ],
533
+ },
534
+ },
535
+ paint: {
536
+ 'text-color': '#8f7c79',
537
+ 'text-halo-color': {
538
+ base: 1,
539
+ stops: [
540
+ [2, 'rgba(255,255,255,0.75)'],
541
+ [3, '#ffffff'],
542
+ ],
543
+ },
544
+ 'text-halo-width': 0,
545
+ 'text-opacity': {
546
+ base: 1,
547
+ stops: [
548
+ [0, 0],
549
+ [3, 0],
550
+ [5, 1],
551
+ ],
552
+ },
553
+ },
554
+ },
555
+ {
556
+ id: 'country-label-lg',
557
+ type: 'symbol',
558
+ metadata: {
559
+ 'mapbox:group': '1444856144497.7825',
560
+ },
561
+ source: 'composite',
562
+ 'source-layer': 'country_label',
563
+ minzoom: 16,
564
+ maxzoom: 17,
565
+ interactive: true,
566
+ filter: ['in', 'scalerank', 1, 2],
567
+ layout: {
568
+ 'text-field': '{name_en}',
569
+ visibility: 'visible',
570
+ 'text-max-width': {
571
+ base: 1,
572
+ stops: [
573
+ [0, 5],
574
+ [3, 6],
575
+ ],
576
+ },
577
+ 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Regular'],
578
+ 'text-size': {
579
+ base: 1,
580
+ stops: [
581
+ [1, 10],
582
+ [6, 24],
583
+ ],
584
+ },
585
+ },
586
+ paint: {
587
+ 'text-color': 'hsl(8, 9%, 52%)',
588
+ 'text-halo-color': {
589
+ base: 1,
590
+ stops: [
591
+ [2, 'rgba(255,255,255,0.35)'],
592
+ [3, '#ffffff'],
593
+ ],
594
+ },
595
+ 'text-halo-width': {
596
+ base: 1,
597
+ stops: [
598
+ [0, 0],
599
+ [22, 0],
600
+ ],
601
+ },
602
+ 'text-opacity': {
603
+ base: 1,
604
+ stops: [
605
+ [0, 0],
606
+ [3, 0],
607
+ [5, 1],
608
+ ],
609
+ },
610
+ },
611
+ },
612
+ {
613
+ id: 'state-label-sm',
614
+ type: 'symbol',
615
+ metadata: {
616
+ 'mapbox:group': '1444856151690.9143',
617
+ },
618
+ source: 'composite',
619
+ 'source-layer': 'state_label',
620
+ minzoom: 13,
621
+ maxzoom: 19,
622
+ interactive: true,
623
+ filter: ['<', 'area', 20000],
624
+ layout: {
625
+ 'text-size': {
626
+ base: 1,
627
+ stops: [
628
+ [6, 10],
629
+ [9, 14],
630
+ ],
631
+ },
632
+ 'text-allow-overlap': false,
633
+ 'text-ignore-placement': false,
634
+ 'text-transform': 'uppercase',
635
+ 'text-font': ['DIN Offc Pro Bold', 'Arial Unicode MS Bold'],
636
+ visibility: 'visible',
637
+ 'text-field': {
638
+ base: 1,
639
+ stops: [
640
+ [0, '{abbr}'],
641
+ [6, '{name_en}'],
642
+ ],
643
+ },
644
+ 'text-letter-spacing': 0.15,
645
+ 'text-max-width': 5,
646
+ },
647
+ paint: {
648
+ 'text-opacity': {
649
+ base: 1,
650
+ stops: [
651
+ [0, 0],
652
+ [3, 0],
653
+ [7, 1],
654
+ ],
655
+ },
656
+ 'text-color': '#035898',
657
+ 'text-halo-color': '#ffffff',
658
+ 'text-halo-width': 0,
659
+ },
660
+ },
661
+ {
662
+ id: 'state-label-md',
663
+ type: 'symbol',
664
+ metadata: {
665
+ 'mapbox:group': '1444856151690.9143',
666
+ },
667
+ source: 'composite',
668
+ 'source-layer': 'state_label',
669
+ minzoom: 13,
670
+ maxzoom: 18,
671
+ interactive: true,
672
+ filter: ['all', ['<', 'area', 80000], ['>=', 'area', 20000]],
673
+ layout: {
674
+ 'text-size': {
675
+ base: 1,
676
+ stops: [
677
+ [5, 10],
678
+ [8, 16],
679
+ ],
680
+ },
681
+ 'text-allow-overlap': false,
682
+ 'text-ignore-placement': false,
683
+ 'text-transform': 'uppercase',
684
+ 'text-font': ['DIN Offc Pro Bold', 'Arial Unicode MS Bold'],
685
+ visibility: 'visible',
686
+ 'text-field': {
687
+ base: 1,
688
+ stops: [
689
+ [0, '{abbr}'],
690
+ [5, '{name_en}'],
691
+ ],
692
+ },
693
+ 'text-letter-spacing': 0.15,
694
+ 'text-max-width': 6,
695
+ },
696
+ paint: {
697
+ 'text-opacity': {
698
+ base: 1,
699
+ stops: [
700
+ [0, 0],
701
+ [2, 0],
702
+ [7, 1],
703
+ ],
704
+ },
705
+ 'text-color': '#035898',
706
+ 'text-halo-color': '#ffffff',
707
+ 'text-halo-width': 0,
708
+ },
709
+ },
710
+ {
711
+ id: 'state-label-lg',
712
+ type: 'symbol',
713
+ metadata: {
714
+ 'mapbox:group': '1444856151690.9143',
715
+ },
716
+ source: 'composite',
717
+ 'source-layer': 'state_label',
718
+ minzoom: 13,
719
+ maxzoom: 17,
720
+ interactive: true,
721
+ filter: ['>=', 'area', 80000],
722
+ layout: {
723
+ 'text-size': {
724
+ base: 1,
725
+ stops: [
726
+ [4, 10],
727
+ [7, 18],
728
+ ],
729
+ },
730
+ 'text-allow-overlap': false,
731
+ 'text-ignore-placement': false,
732
+ 'text-transform': 'uppercase',
733
+ 'text-font': ['DIN Offc Pro Bold', 'Arial Unicode MS Bold'],
734
+ 'text-padding': 1,
735
+ visibility: 'visible',
736
+ 'text-field': {
737
+ base: 1,
738
+ stops: [
739
+ [0, '{abbr}'],
740
+ [4, '{name_en}'],
741
+ ],
742
+ },
743
+ 'text-letter-spacing': 0.15,
744
+ 'text-max-width': 6,
745
+ },
746
+ paint: {
747
+ 'text-opacity': {
748
+ base: 1,
749
+ stops: [
750
+ [0, 0],
751
+ [3, 0],
752
+ [7, 1],
753
+ ],
754
+ },
755
+ 'text-color': '#035898',
756
+ 'text-halo-color': '#ffffff',
757
+ 'text-halo-width': 0,
758
+ },
759
+ },
760
+ {
761
+ id: 'admin-2-boundaries',
762
+ type: 'line',
763
+ metadata: {
764
+ 'mapbox:group': '1444934295202.7542',
765
+ },
766
+ source: 'composite',
767
+ 'source-layer': 'admin',
768
+ minzoom: 1,
769
+ interactive: true,
770
+ filter: ['all', ['==', 'admin_level', 2], ['==', 'disputed', 0], ['==', 'maritime', 0]],
771
+ layout: {
772
+ visibility: 'visible',
773
+ 'line-join': 'round',
774
+ 'line-cap': 'round',
775
+ 'line-round-limit': 2,
776
+ },
777
+ paint: {
778
+ 'line-color': {
779
+ base: 1,
780
+ stops: [
781
+ [0, 'hsla(8, 12%, 41%, 0)'],
782
+ [10, '#035898'],
783
+ ],
784
+ },
785
+ 'line-width': {
786
+ base: 1,
787
+ stops: [
788
+ [3, 0.75],
789
+ [10, 3],
790
+ ],
791
+ },
792
+ 'line-opacity': {
793
+ base: 1,
794
+ stops: [
795
+ [0, 0],
796
+ [3, 0],
797
+ [5, 1],
798
+ ],
799
+ },
800
+ },
801
+ },
802
+ {
803
+ id: 'building',
804
+ type: 'fill',
805
+ source: 'composite',
806
+ 'source-layer': 'building',
807
+ interactive: true,
808
+ filter: ['has', 'underground'],
809
+ layout: {
810
+ visibility: 'visible',
811
+ },
812
+ paint: {
813
+ 'fill-color': 'hsl(0, 0%, 100%)',
814
+ 'fill-antialias': false,
815
+ 'fill-opacity': 0.15,
816
+ 'fill-translate': {
817
+ base: 1,
818
+ stops: [
819
+ [0, [0, 0]],
820
+ [22, [0, 0]],
821
+ ],
822
+ },
823
+ 'fill-translate-anchor': {
824
+ base: 1,
825
+ stops: [
826
+ [3, 'map'],
827
+ [6, 'map'],
828
+ ],
829
+ },
830
+ },
831
+ },
832
+ ],
833
+ } as unknown as StyleSpecification;