@minmaps-dev/mm-web-sdk 1.0.0-rc.1

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.
@@ -0,0 +1,1233 @@
1
+ {
2
+ "version": 8,
3
+ "name": "Hospital Indoor Mapping - Hybrid Style Healthcare Compliant",
4
+ "metadata": {
5
+ "description": "Accessibility-focused hospital navigation with proper healthcare standards",
6
+ "author": "Hospital Mapping Team",
7
+ "version": "7.1.0"
8
+ },
9
+ "sprite": "http://localhost:4000/sprites/sprite",
10
+ "glyphs": "https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",
11
+ "sources": {
12
+ "osm-tiles": {
13
+ "type": "raster",
14
+ "tiles": ["https://tile.openstreetmap.org/{z}/{x}/{y}.png"],
15
+ "tileSize": 256,
16
+ "attribution": "© OpenStreetMap contributors"
17
+ },
18
+ "indoor-data": {
19
+ "type": "geojson",
20
+ "data": { "type": "FeatureCollection", "features": [] }
21
+ },
22
+ "poi-data": {
23
+ "type": "geojson",
24
+ "data": { "type": "FeatureCollection", "features": [] }
25
+ },
26
+ "accessibility-data": {
27
+ "type": "geojson",
28
+ "data": { "type": "FeatureCollection", "features": [] }
29
+ },
30
+ "unit-walls": {
31
+ "type": "geojson",
32
+ "data": { "type": "FeatureCollection", "features": [] }
33
+ },
34
+ "route-data": {
35
+ "type": "geojson",
36
+ "data": { "type": "FeatureCollection", "features": [] },
37
+ "lineMetrics": true
38
+ },
39
+ "route-endpoints": {
40
+ "type": "geojson",
41
+ "data": { "type": "FeatureCollection", "features": [] }
42
+ }
43
+ },
44
+ "layers": [
45
+ {
46
+ "id": "background",
47
+ "type": "background",
48
+ "paint": {
49
+ "background-color": "#F5F5F5"
50
+ }
51
+ },
52
+ {
53
+ "id": "osm",
54
+ "type": "raster",
55
+ "source": "osm-tiles",
56
+ "minzoom": 0,
57
+ "paint": {
58
+ "raster-opacity": [
59
+ "interpolate",
60
+ ["linear"],
61
+ ["zoom"],
62
+ 14,
63
+ 0.8,
64
+ 16,
65
+ 0.6,
66
+ 18,
67
+ 0.4
68
+ ]
69
+ }
70
+ },
71
+
72
+ {
73
+ "id": "pattern-water",
74
+ "type": "fill",
75
+ "source": "indoor-data",
76
+ "minzoom": 16.5,
77
+ "filter": ["==", ["get", "featureType"], "Pattern-Water"],
78
+ "paint": {
79
+ "fill-color": "#5DADE2",
80
+ "fill-opacity": 0.6
81
+ }
82
+ },
83
+ {
84
+ "id": "pattern-grass",
85
+ "type": "fill",
86
+ "source": "indoor-data",
87
+ "minzoom": 16.5,
88
+ "filter": ["==", ["get", "featureType"], "Pattern-Grass"],
89
+ "paint": {
90
+ "fill-color": "#7CB342",
91
+ "fill-opacity": 0.5
92
+ }
93
+ },
94
+ {
95
+ "id": "pattern-trees",
96
+ "type": "fill",
97
+ "source": "indoor-data",
98
+ "minzoom": 16.5,
99
+ "filter": ["==", ["get", "featureType"], "Pattern-Trees"],
100
+ "paint": {
101
+ "fill-color": "#4CAF50",
102
+ "fill-opacity": 0.4
103
+ }
104
+ },
105
+ {
106
+ "id": "pattern-pavement",
107
+ "type": "fill",
108
+ "source": "indoor-data",
109
+ "minzoom": 16.5,
110
+ "filter": ["==", ["get", "featureType"], "Pattern-Pavement"],
111
+ "paint": {
112
+ "fill-color": "#E0E0E0",
113
+ "fill-opacity": 0.6
114
+ }
115
+ },
116
+
117
+ {
118
+ "id": "pattern-outdoor-terrace",
119
+ "type": "fill",
120
+ "source": "indoor-data",
121
+ "minzoom": 16.5,
122
+ "filter": ["==", ["get", "featureType"], "Pattern-OutdoorTerrace"],
123
+ "paint": {
124
+ "fill-color": "#8D6E63",
125
+ "fill-opacity": 0.3
126
+ }
127
+ },
128
+
129
+ {
130
+ "id": "parking-lots",
131
+ "type": "fill",
132
+ "source": "indoor-data",
133
+ "filter": ["==", ["get", "featureType"], "Parking-Lots"],
134
+ "paint": {
135
+ "fill-color": "#BDBDBD",
136
+ "fill-opacity": 0.6
137
+ }
138
+ },
139
+ {
140
+ "id": "parking-lots-outline",
141
+ "type": "line",
142
+ "source": "indoor-data",
143
+ "filter": ["==", ["get", "featureType"], "Parking-Lots"],
144
+ "paint": {
145
+ "line-color": "#757575",
146
+ "line-width": 1,
147
+ "line-dasharray": [3, 2]
148
+ }
149
+ },
150
+
151
+ {
152
+ "id": "boundary-fill",
153
+ "type": "fill",
154
+ "source": "indoor-data",
155
+ "minzoom": 16.5,
156
+ "filter": ["==", ["get", "featureType"], "Boundary"],
157
+ "paint": {
158
+ "fill-color": "#FAF3E2",
159
+ "fill-opacity": 1
160
+ }
161
+ },
162
+ {
163
+ "id": "building-roof-fill",
164
+ "type": "fill",
165
+ "source": "indoor-data",
166
+ "minzoom": 16.5,
167
+ "filter": ["==", ["get", "featureType"], "Boundary"],
168
+ "paint": {
169
+ "fill-color": "#6A8799",
170
+ "fill-opacity": 1
171
+ }
172
+ },
173
+ {
174
+ "id": "corridors-fill",
175
+ "type": "fill",
176
+ "source": "indoor-data",
177
+ "minzoom": 16.5,
178
+ "filter": [
179
+ "any",
180
+ ["==", ["get", "featureType"], "Corridors"],
181
+ ["==", ["get", "featureType"], "Corridor"]
182
+ ],
183
+ "paint": {
184
+ "fill-color": "#F0E6D1"
185
+ }
186
+ },
187
+
188
+ {
189
+ "id": "accessible-routes",
190
+ "type": "line",
191
+ "source": "accessibility-data",
192
+ "minzoom": 16.5,
193
+ "filter": ["==", ["get", "accessible"], true],
194
+ "paint": {
195
+ "line-color": "#2E7D32",
196
+ "line-width": [
197
+ "interpolate",
198
+ ["linear"],
199
+ ["zoom"],
200
+ 15,
201
+ 2,
202
+ 18,
203
+ 3,
204
+ 20,
205
+ 4
206
+ ],
207
+ "line-dasharray": [0.5, 1],
208
+ "line-opacity": 0.7
209
+ }
210
+ },
211
+
212
+ {
213
+ "id": "units-fill",
214
+ "type": "fill",
215
+ "source": "indoor-data",
216
+ "minzoom": 16.5,
217
+ "filter": ["==", ["get", "featureType"], "Units"],
218
+ "paint": {
219
+ "fill-color": [
220
+ "case",
221
+ ["has", "category"],
222
+ [
223
+ "match",
224
+ ["get", "category"],
225
+ "healthcare",
226
+ "#7C3AED",
227
+ "emergency",
228
+ "#DC2626",
229
+ "diagnostic",
230
+ "#0EA5E9",
231
+ "surgical",
232
+ "#7C3AED",
233
+ "retail",
234
+ "#FF6B6B",
235
+ "fnb",
236
+ "#FFA500",
237
+ "admin",
238
+ "#A29BFE",
239
+ "amenities",
240
+ "#48C9B0",
241
+ "staff",
242
+ "#74B9FF",
243
+ "security",
244
+ "#1A7A96",
245
+ "waiting",
246
+ "#E1BEE7",
247
+ "#8ecae6"
248
+ ],
249
+ "#8ecae6"
250
+ ],
251
+ "fill-opacity": [
252
+ "interpolate",
253
+ ["linear"],
254
+ ["zoom"],
255
+ 15,
256
+ 0.85,
257
+ 17,
258
+ 0.92,
259
+ 19,
260
+ 0.95
261
+ ]
262
+ }
263
+ },
264
+ {
265
+ "id": "units-outline-2d",
266
+ "type": "line",
267
+ "source": "indoor-data",
268
+ "minzoom": 16.5,
269
+ "filter": ["==", ["get", "featureType"], "Units"],
270
+ "layout": {
271
+ "visibility": "none",
272
+ "line-join": "round",
273
+ "line-cap": "round"
274
+ },
275
+ "paint": {
276
+ "line-color": "#263238",
277
+ "line-opacity": 0.9,
278
+ "line-width": ["interpolate", ["linear"], ["zoom"], 16, 0.6, 18, 1.0, 20, 1.6]
279
+ }
280
+ },
281
+ {
282
+ "id": "backofhouse-fill",
283
+ "type": "fill",
284
+ "source": "indoor-data",
285
+ "minzoom": 16.5,
286
+ "filter": ["==", ["get", "featureType"], "Back-of-house"],
287
+ "paint": {
288
+ "fill-color": "#D6D6CC",
289
+ "fill-opacity": 0.7
290
+ }
291
+ },
292
+
293
+ {
294
+ "id": "backofhouse-pattern",
295
+ "type": "line",
296
+ "source": "indoor-data",
297
+ "minzoom": 16.5,
298
+ "filter": ["==", ["get", "featureType"], "Back-of-house"],
299
+ "paint": {
300
+ "line-color": "#90A4AE",
301
+ "line-width": 0.5,
302
+ "line-opacity": 0.4
303
+ }
304
+ },
305
+ {
306
+ "id": "backofhouse-outline-2d",
307
+ "type": "line",
308
+ "source": "indoor-data",
309
+ "minzoom": 16.5,
310
+ "filter": ["==", ["get", "featureType"], "Back-of-house"],
311
+ "layout": {
312
+ "line-join": "round",
313
+ "line-cap": "round"
314
+ },
315
+ "paint": {
316
+ "line-color": "#7B8D93",
317
+ "line-width": [
318
+ "interpolate",
319
+ ["linear"],
320
+ ["zoom"],
321
+ 16,
322
+ 0.6,
323
+ 18,
324
+ 1.0,
325
+ 20,
326
+ 1.4
327
+ ],
328
+ "line-opacity": 0.9
329
+ }
330
+ },
331
+
332
+ {
333
+ "id": "restrooms-fill",
334
+ "type": "fill",
335
+ "source": "indoor-data",
336
+ "minzoom": 16.5,
337
+ "filter": ["==", ["get", "featureType"], "Restrooms"],
338
+ "paint": {
339
+ "fill-color": "#5B8468",
340
+ "fill-opacity": 1
341
+ }
342
+ },
343
+ {
344
+ "id": "restrooms-outline-2d",
345
+ "type": "line",
346
+ "source": "indoor-data",
347
+ "minzoom": 16.5,
348
+ "filter": ["==", ["get", "featureType"], "Restrooms"],
349
+ "layout": {
350
+ "line-join": "round",
351
+ "line-cap": "round"
352
+ },
353
+ "paint": {
354
+ "line-color": "#3F5D4A",
355
+ "line-width": [
356
+ "interpolate",
357
+ ["linear"],
358
+ ["zoom"],
359
+ 16,
360
+ 0.6,
361
+ 18,
362
+ 1.0,
363
+ 20,
364
+ 1.4
365
+ ],
366
+ "line-opacity": 0.9
367
+ }
368
+ },
369
+
370
+ {
371
+ "id": "obstacles-fill",
372
+ "type": "fill",
373
+ "source": "indoor-data",
374
+ "minzoom": 16.5,
375
+ "filter": ["==", ["get", "featureType"], "Obstacles"],
376
+ "paint": {
377
+ "fill-color": "#E8E9ED",
378
+ "fill-opacity": 0.85
379
+ }
380
+ },
381
+ {
382
+ "id": "obstacles-outline-2d",
383
+ "type": "line",
384
+ "source": "indoor-data",
385
+ "minzoom": 16.5,
386
+ "filter": ["==", ["get", "featureType"], "Obstacles"],
387
+ "layout": {
388
+ "line-join": "round",
389
+ "line-cap": "round"
390
+ },
391
+ "paint": {
392
+ "line-color": "#B0B1B5",
393
+ "line-width": [
394
+ "interpolate",
395
+ ["linear"],
396
+ ["zoom"],
397
+ 16,
398
+ 0.5,
399
+ 18,
400
+ 0.9,
401
+ 20,
402
+ 1.2
403
+ ],
404
+ "line-opacity": 0.9
405
+ }
406
+ },
407
+
408
+ {
409
+ "id": "escalators-stairs-elevators",
410
+ "type": "fill",
411
+ "source": "indoor-data",
412
+ "minzoom": 16.5,
413
+ "filter": [
414
+ "in",
415
+ ["get", "featureType"],
416
+ ["literal", ["Escalators", "Stairs", "Elevators"]]
417
+ ],
418
+ "paint": {
419
+ "fill-color": "#6A8799",
420
+ "fill-opacity": 1
421
+ }
422
+ },
423
+ {
424
+ "id": "escalators-stairs-elevators-outline-2d",
425
+ "type": "line",
426
+ "source": "indoor-data",
427
+ "minzoom": 16.5,
428
+ "filter": [
429
+ "in",
430
+ ["get", "featureType"],
431
+ ["literal", ["Escalators", "Stairs", "Elevators"]]
432
+ ],
433
+ "layout": {
434
+ "line-join": "round",
435
+ "line-cap": "round"
436
+ },
437
+ "paint": {
438
+ "line-color": "#455A64",
439
+ "line-width": [
440
+ "interpolate",
441
+ ["linear"],
442
+ ["zoom"],
443
+ 16,
444
+ 0.6,
445
+ 18,
446
+ 1.0,
447
+ 20,
448
+ 1.4
449
+ ],
450
+ "line-opacity": 0.9
451
+ }
452
+ },
453
+
454
+ {
455
+ "id": "exits-doors",
456
+ "type": "fill",
457
+ "source": "indoor-data",
458
+ "minzoom": 16.5,
459
+ "filter": [
460
+ "in",
461
+ ["get", "featureType"],
462
+ ["literal", ["Exits", "Doors", "Exit", "Door"]]
463
+ ],
464
+ "paint": {
465
+ "fill-color": "#4CAF50",
466
+ "fill-opacity": 0.6
467
+ }
468
+ },
469
+
470
+ {
471
+ "id": "kiosks-fill",
472
+ "type": "fill",
473
+ "source": "indoor-data",
474
+ "minzoom": 16.5,
475
+ "filter": ["==", ["get", "featureType"], "Kiosks"],
476
+ "paint": {
477
+ "fill-color": "#9C27B0",
478
+ "fill-opacity": 0.7
479
+ }
480
+ },
481
+
482
+ {
483
+ "id": "pattern-lounge",
484
+ "type": "fill",
485
+ "source": "indoor-data",
486
+ "minzoom": 16.5,
487
+ "filter": ["==", ["get", "featureType"], "Pattern-Lounge"],
488
+ "paint": {
489
+ "fill-color": "#CE93D8",
490
+ "fill-opacity": 0.5
491
+ }
492
+ },
493
+
494
+ {
495
+ "id": "pattern-indoor-foodcourt",
496
+ "type": "fill",
497
+ "source": "indoor-data",
498
+ "minzoom": 16.5,
499
+ "filter": ["==", ["get", "featureType"], "Pattern-IndoorFoodcourt"],
500
+ "paint": {
501
+ "fill-color": "#FFCC80",
502
+ "fill-opacity": 0.6
503
+ }
504
+ },
505
+
506
+ {
507
+ "id": "corridors-outline",
508
+ "type": "line",
509
+ "source": "indoor-data",
510
+ "minzoom": 16.5,
511
+ "filter": [
512
+ "any",
513
+ ["==", ["get", "featureType"], "Corridors"],
514
+ ["==", ["get", "featureType"], "Corridor"]
515
+ ],
516
+ "paint": {
517
+ "line-color": "#BCAAA4",
518
+ "line-width": [
519
+ "interpolate",
520
+ ["linear"],
521
+ ["zoom"],
522
+ 15,
523
+ 0.5,
524
+ 18,
525
+ 1,
526
+ 20,
527
+ 1.5
528
+ ]
529
+ }
530
+ },
531
+
532
+ {
533
+ "id": "boundary-outline",
534
+ "type": "line",
535
+ "source": "indoor-data",
536
+ "minzoom": 16.5,
537
+ "filter": ["==", ["get", "featureType"], "Boundary"],
538
+ "paint": {
539
+ "line-color": "#263238",
540
+ "line-width": [
541
+ "interpolate",
542
+ ["linear"],
543
+ ["zoom"],
544
+ 12,
545
+ 2,
546
+ 15,
547
+ 2.5,
548
+ 18,
549
+ 3,
550
+ 20,
551
+ 3.5
552
+ ],
553
+ "line-opacity": [
554
+ "interpolate",
555
+ ["linear"],
556
+ ["zoom"],
557
+ 12,
558
+ 0.7,
559
+ 17,
560
+ 0.85,
561
+ 18,
562
+ 1
563
+ ]
564
+ }
565
+ },
566
+ {
567
+ "id": "building-roof-outline",
568
+ "type": "line",
569
+ "source": "indoor-data",
570
+ "minzoom": 16.5,
571
+ "filter": ["==", ["get", "featureType"], "Boundary"],
572
+ "layout": {
573
+ "line-join": "round",
574
+ "line-cap": "round"
575
+ },
576
+ "paint": {
577
+ "line-color": "#263238",
578
+ "line-width": [
579
+ "interpolate",
580
+ ["linear"],
581
+ ["zoom"],
582
+ 15,
583
+ 1.2,
584
+ 18,
585
+ 1.8,
586
+ 20,
587
+ 2.4
588
+ ],
589
+ "line-opacity": 0.95
590
+ }
591
+ },
592
+ {
593
+ "id": "interior-parking-lots",
594
+ "type": "fill",
595
+ "source": "indoor-data",
596
+ "minzoom": 16.5,
597
+ "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
598
+ "paint": {
599
+ "fill-color": "#757575",
600
+ "fill-opacity": 0.8
601
+ }
602
+ },
603
+ {
604
+ "id": "interior-parking-lots-outline",
605
+ "type": "line",
606
+ "source": "indoor-data",
607
+ "minzoom": 16.5,
608
+ "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
609
+ "paint": {
610
+ "line-color": "#616161",
611
+ "line-width": 1.5
612
+ }
613
+ },
614
+ {
615
+ "id": "building-extrusion",
616
+ "type": "fill-extrusion",
617
+ "source": "indoor-data",
618
+ "filter": ["==", ["get", "featureType"], "Boundary"],
619
+ "maxzoom": 16.5,
620
+ "paint": {
621
+ "fill-extrusion-color": "#6A8799",
622
+ "fill-extrusion-height": 15,
623
+ "fill-extrusion-base": 0,
624
+ "fill-extrusion-opacity": 1
625
+ }
626
+ },
627
+
628
+ {
629
+ "id": "units-wall-extrusion",
630
+ "type": "fill-extrusion",
631
+ "source": "unit-walls",
632
+ "minzoom": 16.5,
633
+ "filter": [
634
+ "all",
635
+ ["==", ["get", "featureType"], "UnitWalls"],
636
+ ["!", ["has", "custom_height"]]
637
+ ],
638
+ "paint": {
639
+ "fill-extrusion-color": [
640
+ "case",
641
+ ["has", "category"],
642
+ [
643
+ "match",
644
+ ["get", "category"],
645
+ "healthcare",
646
+ "#5B2DB8",
647
+ "emergency",
648
+ "#B91C1C",
649
+ "diagnostic",
650
+ "#0C7FAB",
651
+ "surgical",
652
+ "#5B2DB8",
653
+ "retail",
654
+ "#CC5555",
655
+ "fnb",
656
+ "#CC8400",
657
+ "admin",
658
+ "#7B73CC",
659
+ "amenities",
660
+ "#3A9B88",
661
+ "staff",
662
+ "#5C96CC",
663
+ "security",
664
+ "#135C75",
665
+ "waiting",
666
+ "#B894C2",
667
+ "#eeeeee"
668
+ ],
669
+ "#eeeeee"
670
+ ],
671
+ "fill-extrusion-height": [
672
+ "interpolate",
673
+ ["linear"],
674
+ ["zoom"],
675
+ 15.5,
676
+ 0,
677
+ 16.5,
678
+ 2,
679
+ 17.5,
680
+ 3,
681
+ 18.2,
682
+ 3.2
683
+ ],
684
+ "fill-extrusion-base": 0,
685
+ "fill-extrusion-vertical-gradient": false,
686
+ "fill-extrusion-opacity": 0.9
687
+ }
688
+ },
689
+
690
+ {
691
+ "id": "units-wall-custom-extrusion",
692
+ "type": "fill-extrusion",
693
+ "source": "unit-walls",
694
+ "minzoom": 16.5,
695
+ "filter": ["has", "custom_height"],
696
+ "paint": {
697
+ "fill-extrusion-color": [
698
+ "case",
699
+ ["has", "category"],
700
+ [
701
+ "match",
702
+ ["get", "category"],
703
+ "healthcare",
704
+ "#5B2DB8",
705
+ "emergency",
706
+ "#B91C1C",
707
+ "diagnostic",
708
+ "#0C7FAB",
709
+ "surgical",
710
+ "#5B2DB8",
711
+ "retail",
712
+ "#CC5555",
713
+ "fnb",
714
+ "#CC8400",
715
+ "admin",
716
+ "#7B73CC",
717
+ "amenities",
718
+ "#3A9B88",
719
+ "staff",
720
+ "#5C96CC",
721
+ "security",
722
+ "#135C75",
723
+ "waiting",
724
+ "#B894C2",
725
+ "#FDFAF2"
726
+ ],
727
+ "#FDFAF2"
728
+ ],
729
+ "fill-extrusion-height": ["to-number", ["get", "custom_height"]],
730
+ "fill-extrusion-base": 0,
731
+ "fill-extrusion-vertical-gradient": false,
732
+ "fill-extrusion-opacity": 0.95
733
+ }
734
+ },
735
+
736
+ {
737
+ "id": "corridors-extrusion",
738
+ "type": "fill-extrusion",
739
+ "source": "indoor-data",
740
+ "minzoom": 16.5,
741
+ "filter": [
742
+ "any",
743
+ ["==", ["get", "featureType"], "Corridors"],
744
+ ["==", ["get", "featureType"], "Corridor"]
745
+ ],
746
+ "layout": {
747
+ "visibility": "none"
748
+ },
749
+ "paint": {
750
+ "fill-extrusion-color": "#FFF8E1",
751
+ "fill-extrusion-height": ["step", ["zoom"], 0, 18, 3.2],
752
+ "fill-extrusion-base": 0,
753
+ "fill-extrusion-opacity": ["step", ["zoom"], 0, 18, 0.85]
754
+ }
755
+ },
756
+
757
+ {
758
+ "id": "backofhouse-extrusion",
759
+ "type": "fill-extrusion",
760
+ "source": "indoor-data",
761
+ "minzoom": 16.5,
762
+ "filter": ["==", ["get", "featureType"], "Back-of-house"],
763
+ "paint": {
764
+ "fill-extrusion-color": "#D6D6CC",
765
+ "fill-extrusion-height": [
766
+ "interpolate",
767
+ ["linear"],
768
+ ["zoom"],
769
+ 15.5,
770
+ 0,
771
+ 16.5,
772
+ 2,
773
+ 17.5,
774
+ 3,
775
+ 18.2,
776
+ 3.2
777
+ ],
778
+ "fill-extrusion-base": 0,
779
+ "fill-extrusion-opacity": 1
780
+ }
781
+ },
782
+
783
+ {
784
+ "id": "restrooms-extrusion",
785
+ "type": "fill-extrusion",
786
+ "source": "indoor-data",
787
+ "minzoom": 16.5,
788
+ "filter": ["==", ["get", "featureType"], "Restrooms"],
789
+ "paint": {
790
+ "fill-extrusion-color": "#5B8468",
791
+ "fill-extrusion-height": [
792
+ "interpolate",
793
+ ["linear"],
794
+ ["zoom"],
795
+ 15.5,
796
+ 0,
797
+ 16.5,
798
+ 2,
799
+ 17.5,
800
+ 3,
801
+ 18.2,
802
+ 3.2
803
+ ],
804
+ "fill-extrusion-base": 0,
805
+ "fill-extrusion-opacity": 0.9
806
+ }
807
+ },
808
+
809
+ {
810
+ "id": "obstacles-extrusion",
811
+ "type": "fill-extrusion",
812
+ "source": "indoor-data",
813
+ "minzoom": 16.5,
814
+ "filter": ["==", ["get", "featureType"], "Obstacles"],
815
+ "paint": {
816
+ "fill-extrusion-color": "#E8E9ED",
817
+ "fill-extrusion-height": [
818
+ "interpolate",
819
+ ["linear"],
820
+ ["zoom"],
821
+ 15.5,
822
+ 0,
823
+ 16.5,
824
+ 0.8,
825
+ 17.5,
826
+ 1.5,
827
+ 18.2,
828
+ 2
829
+ ],
830
+ "fill-extrusion-base": 0,
831
+ "fill-extrusion-opacity": 1
832
+ }
833
+ },
834
+
835
+ {
836
+ "id": "escalators-stairs-elevators-extrusion",
837
+ "type": "fill-extrusion",
838
+ "source": "indoor-data",
839
+ "minzoom": 16.5,
840
+ "filter": [
841
+ "in",
842
+ ["get", "featureType"],
843
+ ["literal", ["Escalators", "Stairs", "Elevators"]]
844
+ ],
845
+ "paint": {
846
+ "fill-extrusion-color": "#6A8799",
847
+ "fill-extrusion-height": [
848
+ "interpolate",
849
+ ["linear"],
850
+ ["zoom"],
851
+ 15.5,
852
+ 0,
853
+ 16.5,
854
+ 2,
855
+ 17.5,
856
+ 3,
857
+ 18.2,
858
+ 3.2
859
+ ],
860
+ "fill-extrusion-base": 0,
861
+ "fill-extrusion-vertical-gradient": true,
862
+ "fill-extrusion-opacity": 0.9
863
+ }
864
+ },
865
+
866
+ {
867
+ "id": "interior-parking-extrusion",
868
+ "type": "fill-extrusion",
869
+ "source": "indoor-data",
870
+ "minzoom": 16.5,
871
+ "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
872
+ "paint": {
873
+ "fill-extrusion-color": "#757575",
874
+ "fill-extrusion-height": [
875
+ "interpolate",
876
+ ["linear"],
877
+ ["zoom"],
878
+ 15,
879
+ 0,
880
+ 16,
881
+ 2,
882
+ 17,
883
+ 3,
884
+ 18,
885
+ 4
886
+ ],
887
+ "fill-extrusion-base": 0,
888
+ "fill-extrusion-opacity": 0.85
889
+ }
890
+ },
891
+ {
892
+ "id": "route-line",
893
+ "type": "line",
894
+ "source": "route-data",
895
+ "minzoom": 16.5,
896
+ "layout": {
897
+ "line-cap": "round",
898
+ "line-join": "round"
899
+ },
900
+ "paint": {
901
+ "line-color": "#007aff",
902
+ "line-width": [
903
+ "interpolate", ["linear"], ["zoom"],
904
+ 16.5, 3,
905
+ 18.0, 5,
906
+ 20.0, 7
907
+ ],
908
+ "line-opacity": 0.9
909
+ }
910
+ },
911
+ {
912
+ "id": "route-halo",
913
+ "type": "line",
914
+ "source": "route-data",
915
+ "minzoom": 16.5,
916
+ "paint": {
917
+ "line-color": "white",
918
+ "line-width": [
919
+ "interpolate", ["linear"], ["zoom"],
920
+ 16.5, 5,
921
+ 18.0, 7,
922
+ 20.0, 9
923
+ ],
924
+ "line-opacity": 0.7
925
+ }
926
+ },
927
+ {
928
+ "id": "route-endpoint-source",
929
+ "type": "circle",
930
+ "source": "route-endpoints",
931
+ "minzoom": 16.5,
932
+ "filter": ["==", ["get", "role"], "source"],
933
+ "paint": {
934
+ "circle-radius": 6,
935
+ "circle-color": "#ffffff",
936
+ "circle-stroke-width": 3,
937
+ "circle-stroke-color": "#007aff",
938
+ "circle-opacity": 1
939
+ }
940
+ },
941
+ {
942
+ "id": "route-endpoint-destination",
943
+ "type": "circle",
944
+ "source": "route-endpoints",
945
+ "minzoom": 16.5,
946
+ "filter": ["==", ["get", "role"], "destination"],
947
+ "paint": {
948
+ "circle-radius": 7,
949
+ "circle-color": "#007aff",
950
+ "circle-stroke-width": 3,
951
+ "circle-stroke-color": "#ffffff",
952
+ "circle-opacity": 1
953
+ }
954
+ },
955
+ {
956
+ "id": "poi-accessibility-icons",
957
+ "type": "symbol",
958
+ "source": "poi-data",
959
+ "filter": ["==", ["get", "accessible"], true],
960
+ "minzoom": 16.5,
961
+ "layout": {
962
+ "icon-image": "wheelchair-accessible",
963
+ "icon-size": [
964
+ "interpolate", ["linear"], ["zoom"],
965
+ 15, 0.4,
966
+ 17, 0.6,
967
+ 19, 0.8
968
+ ],
969
+ "icon-allow-overlap": false,
970
+ "icon-padding": 4
971
+ }
972
+ },
973
+
974
+ {
975
+ "id": "poi-destination-circles",
976
+ "type": "circle",
977
+ "source": "poi-data",
978
+ "filter": ["==", ["get", "poiType"], "destination"],
979
+ "minzoom": 16.5,
980
+ "paint": {
981
+ "circle-radius": [
982
+ "interpolate", ["linear"], ["zoom"],
983
+ 15, 3,
984
+ 17, 4,
985
+ 19, 5,
986
+ 20, 6
987
+ ],
988
+ "circle-color": "#162e51",
989
+ "circle-stroke-width": 2,
990
+ "circle-stroke-color": "#FFFFFF",
991
+ "circle-opacity": 0.9
992
+ }
993
+ },
994
+
995
+ {
996
+ "id": "poi-destination-labels",
997
+ "type": "symbol",
998
+ "source": "poi-data",
999
+ "filter": [
1000
+ "all",
1001
+ ["==", ["get", "poiType"], "destination"],
1002
+ ["==", ["get", "showLabel"], true]
1003
+ ],
1004
+ "minzoom": 18.5,
1005
+ "layout": {
1006
+ "text-field": ["get", "name"],
1007
+ "text-size": [
1008
+ "interpolate", ["linear"], ["zoom"],
1009
+ 18.5, 12,
1010
+ 20, 14
1011
+ ],
1012
+ "text-offset": [0, 0.8],
1013
+ "text-anchor": "top",
1014
+ "text-font": ["Noto Sans Bold"],
1015
+ "text-max-width": 12,
1016
+ "text-allow-overlap": false,
1017
+ "text-rotation-alignment": "viewport"
1018
+ },
1019
+ "paint": {
1020
+ "text-color": "#242930",
1021
+ "text-halo-color": "#FFFFFF",
1022
+ "text-halo-width": 1.5,
1023
+ "text-halo-blur": 1
1024
+ }
1025
+ },
1026
+
1027
+ {
1028
+ "id": "poi-entrance-exit-icons",
1029
+ "type": "symbol",
1030
+ "source": "poi-data",
1031
+ "filter": [
1032
+ "all",
1033
+ ["==", ["get", "poiType"], "amenity"],
1034
+ [
1035
+ "any",
1036
+ ["!=", ["index-of", "entrance", ["get", "keywords"]], -1],
1037
+ ["!=", ["index-of", "exit", ["get", "keywords"]], -1],
1038
+ ["!=", ["index-of", "door", ["get", "keywords"]], -1]
1039
+ ]
1040
+ ],
1041
+ "minzoom": 15,
1042
+ "layout": {
1043
+ "icon-image": ["get", "iconId"],
1044
+ "icon-size": [
1045
+ "interpolate", ["linear"], ["zoom"],
1046
+ 16.5, 0.5,
1047
+ 18, 0.6,
1048
+ 20, 0.8
1049
+ ],
1050
+ "icon-allow-overlap": true,
1051
+ "icon-padding": 2,
1052
+ "icon-optional": false,
1053
+ "icon-rotation-alignment": "viewport",
1054
+ "icon-pitch-alignment": "viewport",
1055
+
1056
+ "text-field": ["get", "name"],
1057
+ "text-size": [
1058
+ "interpolate", ["linear"], ["zoom"],
1059
+ 16.5, 0,
1060
+ 18.5, 0,
1061
+ 19, 12,
1062
+ 20, 13
1063
+ ],
1064
+ "text-offset": [0, 1.3],
1065
+ "text-anchor": "top",
1066
+ "text-optional": true,
1067
+ "text-padding": 4,
1068
+ "text-font": ["Noto Sans Bold"],
1069
+ "text-rotation-alignment": "viewport"
1070
+ },
1071
+ "paint": {
1072
+ "icon-halo-color": "#FFFFFF",
1073
+ "icon-halo-width": 1.5,
1074
+ "icon-halo-blur": 0.5,
1075
+ "text-color": "#242930",
1076
+ "text-halo-color": "#FFFFFF",
1077
+ "text-halo-width": 1.5,
1078
+ "text-halo-blur": 1,
1079
+ "icon-translate": [0, -20],
1080
+ "icon-translate-anchor": "viewport"
1081
+ }
1082
+ },
1083
+ {
1084
+ "id": "poi-parking-icons",
1085
+ "type": "symbol",
1086
+ "source": "poi-data",
1087
+ "filter": [
1088
+ "all",
1089
+ ["==", ["get", "poiType"], "amenity"],
1090
+ [
1091
+ "any",
1092
+ ["!=", ["index-of", "parking", ["get", "keywords"]], -1],
1093
+ ["!=", ["index-of", "park", ["get", "keywords"]], -1]
1094
+ ]
1095
+ ],
1096
+ "minzoom": 14,
1097
+ "layout": {
1098
+ "icon-image": ["get", "iconId"],
1099
+ "icon-size": [
1100
+ "interpolate", ["linear"], ["zoom"],
1101
+ 16.5, 0.5,
1102
+ 18, 0.6,
1103
+ 20, 0.8
1104
+ ],
1105
+ "icon-allow-overlap": true,
1106
+ "icon-padding": 2,
1107
+ "icon-optional": false,
1108
+ "icon-rotation-alignment": "viewport",
1109
+ "icon-pitch-alignment": "viewport",
1110
+
1111
+ "text-field": ["get", "name"],
1112
+ "text-size": [
1113
+ "interpolate", ["linear"], ["zoom"],
1114
+ 16.5, 0,
1115
+ 18.5, 0,
1116
+ 19, 12,
1117
+ 20, 13
1118
+ ],
1119
+ "text-offset": [0, 1.3],
1120
+ "text-anchor": "top",
1121
+ "text-optional": true,
1122
+ "text-padding": 4,
1123
+ "text-font": ["Noto Sans Bold"],
1124
+ "text-rotation-alignment": "viewport"
1125
+ },
1126
+ "paint": {
1127
+ "icon-halo-color": "#FFFFFF",
1128
+ "icon-halo-width": 1.5,
1129
+ "icon-halo-blur": 0.5,
1130
+ "text-color": "#242930",
1131
+ "text-halo-color": "#FFFFFF",
1132
+ "text-halo-width": 1.5,
1133
+ "text-halo-blur": 1,
1134
+ "icon-translate": [0, -20],
1135
+ "icon-translate-anchor": "viewport"
1136
+ }
1137
+ },
1138
+ {
1139
+ "id": "poi-other-amenity-icons",
1140
+ "type": "symbol",
1141
+ "source": "poi-data",
1142
+ "filter": [
1143
+ "all",
1144
+ ["==", ["get", "poiType"], "amenity"],
1145
+ ["==", ["index-of", "entrance", ["get", "keywords"]], -1],
1146
+ ["==", ["index-of", "exit", ["get", "keywords"]], -1],
1147
+ ["==", ["index-of", "door", ["get", "keywords"]], -1],
1148
+ ["==", ["index-of", "parking", ["get", "keywords"]], -1],
1149
+ ["==", ["index-of", "park", ["get", "keywords"]], -1]
1150
+ ],
1151
+ "minzoom": 17.5,
1152
+ "layout": {
1153
+ "icon-image": ["get", "iconId"],
1154
+ "icon-size": [
1155
+ "interpolate", ["linear"], ["zoom"],
1156
+ 17.5, 0.5,
1157
+ 18, 0.6,
1158
+ 20, 0.8
1159
+ ],
1160
+ "icon-allow-overlap": true,
1161
+ "icon-padding": 2,
1162
+ "icon-optional": false,
1163
+ "icon-rotation-alignment": "viewport",
1164
+ "icon-pitch-alignment": "viewport",
1165
+
1166
+ "text-field": ["get", "name"],
1167
+ "text-size": [
1168
+ "interpolate", ["linear"], ["zoom"],
1169
+ 17.5, 0,
1170
+ 18.5, 0,
1171
+ 19, 12,
1172
+ 20, 13
1173
+ ],
1174
+ "text-offset": [0, 1.3],
1175
+ "text-anchor": "top",
1176
+ "text-optional": true,
1177
+ "text-padding": 4,
1178
+ "text-font": ["Noto Sans Bold"],
1179
+ "text-rotation-alignment": "viewport"
1180
+ },
1181
+ "paint": {
1182
+ "icon-halo-color": "#FFFFFF",
1183
+ "icon-halo-width": 1.5,
1184
+ "icon-halo-blur": 0.5,
1185
+ "text-color": "#242930",
1186
+ "text-halo-color": "#FFFFFF",
1187
+ "text-halo-width": 1.5,
1188
+ "text-halo-blur": 1,
1189
+ "icon-translate": [0, -20],
1190
+ "icon-translate-anchor": "viewport"
1191
+ }
1192
+ },
1193
+ {
1194
+ "id": "poi-you-are-here",
1195
+ "type": "symbol",
1196
+ "source": "poi-data",
1197
+ "filter": ["==", ["get", "isYouAreHere"], true],
1198
+ "minzoom": 16.5,
1199
+ "layout": {
1200
+ "icon-image": [
1201
+ "coalesce",
1202
+ ["get", "iconId"],
1203
+ "you-are-here"
1204
+ ],
1205
+ "icon-size": [
1206
+ "interpolate", ["linear"], ["zoom"],
1207
+ 16.5, 0.8,
1208
+ 18.0, 1.0,
1209
+ 20.0, 1.2
1210
+ ],
1211
+ "icon-allow-overlap": true,
1212
+ "icon-ignore-placement": true,
1213
+ "icon-anchor": "bottom",
1214
+ "text-field": ["get", "name"],
1215
+ "text-size": [
1216
+ "interpolate", ["linear"], ["zoom"],
1217
+ 17.5, 11,
1218
+ 19.5, 13
1219
+ ],
1220
+ "text-offset": [0, 1.2],
1221
+ "text-anchor": "top",
1222
+ "text-font": ["Noto Sans Bold"],
1223
+ "text-optional": true
1224
+ },
1225
+ "paint": {
1226
+ "text-color": "#ffffff",
1227
+ "text-halo-color": "#000000",
1228
+ "text-halo-width": 1.5,
1229
+ "text-halo-blur": 0.8
1230
+ }
1231
+ }
1232
+ ]
1233
+ }