@minmaps-dev/mm-web-sdk 1.0.0-rc.3 → 1.0.0-rc.30

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.
@@ -9,10 +9,9 @@
9
9
  "sprite": "http://localhost:4000/sprites/sprite",
10
10
  "glyphs": "https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",
11
11
  "sources": {
12
- "osm-tiles": {
13
- "type": "raster",
14
- "tiles": ["https://tile.openstreetmap.org/{z}/{x}/{y}.png"],
15
- "tileSize": 256,
12
+ "protomaps": {
13
+ "type": "vector",
14
+ "url": "pmtiles://https://jacsdevtiles-gjgbejbpdzbgcge8.z01.azurefd.net/pmtiles/base/usa.pmtiles",
16
15
  "attribution": "© OpenStreetMap contributors"
17
16
  },
18
17
  "indoor-data": {
@@ -39,6 +38,18 @@
39
38
  "route-endpoints": {
40
39
  "type": "geojson",
41
40
  "data": { "type": "FeatureCollection", "features": [] }
41
+ },
42
+ "poi-highlight-data": {
43
+ "type": "geojson",
44
+ "data": { "type": "FeatureCollection", "features": [] }
45
+ },
46
+ "map-labels-data": {
47
+ "type": "geojson",
48
+ "data": { "type": "FeatureCollection", "features": [] }
49
+ },
50
+ "route-active-step": {
51
+ "type": "geojson",
52
+ "data": { "type": "FeatureCollection", "features": [] }
42
53
  }
43
54
  },
44
55
  "layers": [
@@ -46,25 +57,105 @@
46
57
  "id": "background",
47
58
  "type": "background",
48
59
  "paint": {
49
- "background-color": "#F5F5F5"
60
+ "background-color": "#f0f0f0"
50
61
  }
51
62
  },
52
63
  {
53
- "id": "osm",
54
- "type": "raster",
55
- "source": "osm-tiles",
56
- "minzoom": 0,
64
+ "id": "basemap-earth",
65
+ "type": "fill",
66
+ "source": "protomaps",
67
+ "source-layer": "earth",
57
68
  "paint": {
58
- "raster-opacity": [
69
+ "fill-color": "#EAE2D0"
70
+ }
71
+ },
72
+ {
73
+ "id": "basemap-landuse-park",
74
+ "type": "fill",
75
+ "source": "protomaps",
76
+ "source-layer": "landuse",
77
+ "filter": [
78
+ "in",
79
+ ["get", "kind"],
80
+ ["literal", ["park", "forest", "wood", "nature_reserve", "grass", "garden", "playground", "cemetery", "golf_course"]]
81
+ ],
82
+ "paint": {
83
+ "fill-color": "#cbe0b6",
84
+ "fill-opacity": [
59
85
  "interpolate",
60
86
  ["linear"],
61
87
  ["zoom"],
62
- 14,
63
- 0.8,
64
- 16,
65
- 0.6,
66
- 18,
67
- 0.4
88
+ 14, 0.95,
89
+ 18, 0.8
90
+ ]
91
+ }
92
+ },
93
+ {
94
+ "id": "basemap-water",
95
+ "type": "fill",
96
+ "source": "protomaps",
97
+ "source-layer": "water",
98
+ "paint": {
99
+ "fill-color": "#c2dbf2"
100
+ }
101
+ },
102
+ {
103
+ "id": "basemap-roads-minor",
104
+ "type": "line",
105
+ "source": "protomaps",
106
+ "source-layer": "roads",
107
+ "minzoom": 13,
108
+ "filter": [
109
+ "in",
110
+ ["get", "kind"],
111
+ ["literal", ["minor_road", "path", "service", "other"]]
112
+ ],
113
+ "paint": {
114
+ "line-color": "#FFFFFF",
115
+ "line-width": [
116
+ "interpolate",
117
+ ["linear"],
118
+ ["zoom"],
119
+ 13, 0.5,
120
+ 16, 1.5,
121
+ 19, 4
122
+ ],
123
+ "line-opacity": [
124
+ "interpolate",
125
+ ["linear"],
126
+ ["zoom"],
127
+ 14, 0.9,
128
+ 18, 0.5
129
+ ]
130
+ }
131
+ },
132
+ {
133
+ "id": "basemap-roads-major",
134
+ "type": "line",
135
+ "source": "protomaps",
136
+ "source-layer": "roads",
137
+ "minzoom": 10,
138
+ "filter": [
139
+ "in",
140
+ ["get", "kind"],
141
+ ["literal", ["highway", "major_road", "medium_road"]]
142
+ ],
143
+ "paint": {
144
+ "line-color": "#ecc97e",
145
+ "line-width": [
146
+ "interpolate",
147
+ ["linear"],
148
+ ["zoom"],
149
+ 10, 0.5,
150
+ 14, 1.5,
151
+ 18, 6
152
+ ],
153
+ "line-opacity": [
154
+ "interpolate",
155
+ ["linear"],
156
+ ["zoom"],
157
+ 14, 0.9,
158
+ 18, 0.5
68
159
  ]
69
160
  }
70
161
  },
@@ -76,7 +167,7 @@
76
167
  "minzoom": 16.5,
77
168
  "filter": ["==", ["get", "featureType"], "Pattern-Water"],
78
169
  "paint": {
79
- "fill-color": "#5DADE2",
170
+ "fill-color": "#cfe1ec",
80
171
  "fill-opacity": 0.6
81
172
  }
82
173
  },
@@ -87,7 +178,7 @@
87
178
  "minzoom": 16.5,
88
179
  "filter": ["==", ["get", "featureType"], "Pattern-Grass"],
89
180
  "paint": {
90
- "fill-color": "#7CB342",
181
+ "fill-color": "#d2e0c6",
91
182
  "fill-opacity": 0.5
92
183
  }
93
184
  },
@@ -98,7 +189,7 @@
98
189
  "minzoom": 16.5,
99
190
  "filter": ["==", ["get", "featureType"], "Pattern-Trees"],
100
191
  "paint": {
101
- "fill-color": "#4CAF50",
192
+ "fill-color": "#cdd9c9",
102
193
  "fill-opacity": 0.4
103
194
  }
104
195
  },
@@ -121,7 +212,7 @@
121
212
  "minzoom": 16.5,
122
213
  "filter": ["==", ["get", "featureType"], "Pattern-OutdoorTerrace"],
123
214
  "paint": {
124
- "fill-color": "#8D6E63",
215
+ "fill-color": "#cabfb6",
125
216
  "fill-opacity": 0.3
126
217
  }
127
218
  },
@@ -130,19 +221,21 @@
130
221
  "id": "parking-lots",
131
222
  "type": "fill",
132
223
  "source": "indoor-data",
224
+ "minzoom": 16.5,
133
225
  "filter": ["==", ["get", "featureType"], "Parking-Lots"],
134
226
  "paint": {
135
- "fill-color": "#BDBDBD",
136
- "fill-opacity": 0.6
227
+ "fill-color": "#e0e0dd",
228
+ "fill-opacity": 0.5
137
229
  }
138
230
  },
139
231
  {
140
232
  "id": "parking-lots-outline",
141
233
  "type": "line",
142
234
  "source": "indoor-data",
235
+ "minzoom": 16.5,
143
236
  "filter": ["==", ["get", "featureType"], "Parking-Lots"],
144
237
  "paint": {
145
- "line-color": "#757575",
238
+ "line-color": "#b0b0ad",
146
239
  "line-width": 1,
147
240
  "line-dasharray": [3, 2]
148
241
  }
@@ -163,11 +256,17 @@
163
256
  "id": "building-roof-fill",
164
257
  "type": "fill",
165
258
  "source": "indoor-data",
166
- "minzoom": 16.5,
259
+ "minzoom": 15.8,
167
260
  "filter": ["==", ["get", "featureType"], "Boundary"],
168
261
  "paint": {
169
- "fill-color": "#6A8799",
170
- "fill-opacity": 1
262
+ "fill-color": "#162e51",
263
+ "fill-opacity": [
264
+ "interpolate",
265
+ ["linear"],
266
+ ["zoom"],
267
+ 15.8, 0,
268
+ 16.5, 1
269
+ ]
171
270
  }
172
271
  },
173
272
  {
@@ -223,30 +322,30 @@
223
322
  "match",
224
323
  ["get", "category"],
225
324
  "healthcare",
226
- "#7C3AED",
227
- "emergency",
228
- "#DC2626",
229
- "diagnostic",
230
- "#0EA5E9",
325
+ "#73b3e7",
231
326
  "surgical",
232
- "#7C3AED",
327
+ "#73b3e7",
328
+ "waiting",
329
+ "#73b3e7",
330
+ "diagnostic",
331
+ "#97d4ea",
332
+ "amenities",
333
+ "#97d4ea",
334
+ "emergency",
335
+ "#f2938c",
233
336
  "retail",
234
- "#FF6B6B",
337
+ "#fee685",
235
338
  "fnb",
236
- "#FFA500",
339
+ "#fee685",
237
340
  "admin",
238
- "#A29BFE",
239
- "amenities",
240
- "#48C9B0",
341
+ "#dfe1e2",
241
342
  "staff",
242
- "#74B9FF",
343
+ "#dfe1e2",
243
344
  "security",
244
- "#1A7A96",
245
- "waiting",
246
- "#E1BEE7",
247
- "#8ecae6"
345
+ "#dfe1e2",
346
+ "#73b3e7"
248
347
  ],
249
- "#8ecae6"
348
+ "#73b3e7"
250
349
  ],
251
350
  "fill-opacity": [
252
351
  "interpolate",
@@ -273,9 +372,9 @@
273
372
  "line-cap": "round"
274
373
  },
275
374
  "paint": {
276
- "line-color": "#263238",
375
+ "line-color": "#162e51",
277
376
  "line-opacity": 0.9,
278
- "line-width": ["interpolate", ["linear"], ["zoom"], 16, 0.6, 18, 1.0, 20, 1.6]
377
+ "line-width": ["interpolate", ["linear"], ["zoom"], 16, 0.8, 18, 1.4, 20, 2.2]
279
378
  }
280
379
  },
281
380
  {
@@ -285,7 +384,7 @@
285
384
  "minzoom": 16.5,
286
385
  "filter": ["==", ["get", "featureType"], "Back-of-house"],
287
386
  "paint": {
288
- "fill-color": "#D6D6CC",
387
+ "fill-color": "#e6e6e2",
289
388
  "fill-opacity": 0.7
290
389
  }
291
390
  },
@@ -297,7 +396,7 @@
297
396
  "minzoom": 16.5,
298
397
  "filter": ["==", ["get", "featureType"], "Back-of-house"],
299
398
  "paint": {
300
- "line-color": "#90A4AE",
399
+ "line-color": "#c4c4c4",
301
400
  "line-width": 0.5,
302
401
  "line-opacity": 0.4
303
402
  }
@@ -313,7 +412,7 @@
313
412
  "line-cap": "round"
314
413
  },
315
414
  "paint": {
316
- "line-color": "#7B8D93",
415
+ "line-color": "#b0b1b5",
317
416
  "line-width": [
318
417
  "interpolate",
319
418
  ["linear"],
@@ -336,7 +435,7 @@
336
435
  "minzoom": 16.5,
337
436
  "filter": ["==", ["get", "featureType"], "Restrooms"],
338
437
  "paint": {
339
- "fill-color": "#5B8468",
438
+ "fill-color": "#5f9070",
340
439
  "fill-opacity": 1
341
440
  }
342
441
  },
@@ -351,7 +450,7 @@
351
450
  "line-cap": "round"
352
451
  },
353
452
  "paint": {
354
- "line-color": "#3F5D4A",
453
+ "line-color": "#3f5d4a",
355
454
  "line-width": [
356
455
  "interpolate",
357
456
  ["linear"],
@@ -416,7 +515,7 @@
416
515
  ["literal", ["Escalators", "Stairs", "Elevators"]]
417
516
  ],
418
517
  "paint": {
419
- "fill-color": "#6A8799",
518
+ "fill-color": "#a9aeb1",
420
519
  "fill-opacity": 1
421
520
  }
422
521
  },
@@ -435,7 +534,7 @@
435
534
  "line-cap": "round"
436
535
  },
437
536
  "paint": {
438
- "line-color": "#455A64",
537
+ "line-color": "#6f7780",
439
538
  "line-width": [
440
539
  "interpolate",
441
540
  ["linear"],
@@ -462,7 +561,7 @@
462
561
  ["literal", ["Exits", "Doors", "Exit", "Door"]]
463
562
  ],
464
563
  "paint": {
465
- "fill-color": "#4CAF50",
564
+ "fill-color": "#cdd9c9",
466
565
  "fill-opacity": 0.6
467
566
  }
468
567
  },
@@ -474,7 +573,7 @@
474
573
  "minzoom": 16.5,
475
574
  "filter": ["==", ["get", "featureType"], "Kiosks"],
476
575
  "paint": {
477
- "fill-color": "#9C27B0",
576
+ "fill-color": "#ffe396",
478
577
  "fill-opacity": 0.7
479
578
  }
480
579
  },
@@ -486,7 +585,7 @@
486
585
  "minzoom": 16.5,
487
586
  "filter": ["==", ["get", "featureType"], "Pattern-Lounge"],
488
587
  "paint": {
489
- "fill-color": "#CE93D8",
588
+ "fill-color": "#ddd2e0",
490
589
  "fill-opacity": 0.5
491
590
  }
492
591
  },
@@ -498,7 +597,7 @@
498
597
  "minzoom": 16.5,
499
598
  "filter": ["==", ["get", "featureType"], "Pattern-IndoorFoodcourt"],
500
599
  "paint": {
501
- "fill-color": "#FFCC80",
600
+ "fill-color": "#f3e4c4",
502
601
  "fill-opacity": 0.6
503
602
  }
504
603
  },
@@ -574,19 +673,19 @@
574
673
  "line-cap": "round"
575
674
  },
576
675
  "paint": {
577
- "line-color": "#263238",
676
+ "line-color": "#c8a85a",
578
677
  "line-width": [
579
678
  "interpolate",
580
679
  ["linear"],
581
680
  ["zoom"],
582
681
  15,
583
- 1.2,
682
+ 1.5,
584
683
  18,
585
- 1.8,
684
+ 2,
586
685
  20,
587
- 2.4
686
+ 2.5
588
687
  ],
589
- "line-opacity": 0.95
688
+ "line-opacity": 0.55
590
689
  }
591
690
  },
592
691
  {
@@ -616,12 +715,23 @@
616
715
  "type": "fill-extrusion",
617
716
  "source": "indoor-data",
618
717
  "filter": ["==", ["get", "featureType"], "Boundary"],
619
- "maxzoom": 16.5,
620
718
  "paint": {
621
- "fill-extrusion-color": "#6A8799",
622
- "fill-extrusion-height": 15,
719
+ "fill-extrusion-color": "#162e51",
720
+ "fill-extrusion-height": [
721
+ "interpolate",
722
+ ["linear"],
723
+ ["zoom"],
724
+ 15.8, 15,
725
+ 16.5, 0
726
+ ],
623
727
  "fill-extrusion-base": 0,
624
- "fill-extrusion-opacity": 1
728
+ "fill-extrusion-opacity": [
729
+ "interpolate",
730
+ ["linear"],
731
+ ["zoom"],
732
+ 15.8, 1,
733
+ 16.5, 0
734
+ ]
625
735
  }
626
736
  },
627
737
 
@@ -636,38 +746,7 @@
636
746
  ["!", ["has", "custom_height"]]
637
747
  ],
638
748
  "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
- ],
749
+ "fill-extrusion-color": "#c4c8cb",
671
750
  "fill-extrusion-height": [
672
751
  "interpolate",
673
752
  ["linear"],
@@ -675,15 +754,15 @@
675
754
  15.5,
676
755
  0,
677
756
  16.5,
678
- 2,
757
+ ["case", ["==", ["get", "wallKind"], "interior"], 0.5, 1],
679
758
  17.5,
680
- 3,
759
+ ["case", ["==", ["get", "wallKind"], "interior"], 0.7, 1.4],
681
760
  18.2,
682
- 3.2
761
+ ["case", ["==", ["get", "wallKind"], "interior"], 0.9, 1.6]
683
762
  ],
684
763
  "fill-extrusion-base": 0,
685
- "fill-extrusion-vertical-gradient": false,
686
- "fill-extrusion-opacity": 0.9
764
+ "fill-extrusion-vertical-gradient": true,
765
+ "fill-extrusion-opacity": 1
687
766
  }
688
767
  },
689
768
 
@@ -694,42 +773,23 @@
694
773
  "minzoom": 16.5,
695
774
  "filter": ["has", "custom_height"],
696
775
  "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"
776
+ "fill-extrusion-color": "#c4c8cb",
777
+ "fill-extrusion-height": [
778
+ "interpolate",
779
+ ["linear"],
780
+ ["zoom"],
781
+ 15.5,
782
+ 0,
783
+ 16.5,
784
+ 1,
785
+ 17.5,
786
+ 1.4,
787
+ 18.2,
788
+ 1.6
728
789
  ],
729
- "fill-extrusion-height": ["to-number", ["get", "custom_height"]],
730
790
  "fill-extrusion-base": 0,
731
- "fill-extrusion-vertical-gradient": false,
732
- "fill-extrusion-opacity": 0.95
791
+ "fill-extrusion-vertical-gradient": true,
792
+ "fill-extrusion-opacity": 1
733
793
  }
734
794
  },
735
795
 
@@ -761,7 +821,7 @@
761
821
  "minzoom": 16.5,
762
822
  "filter": ["==", ["get", "featureType"], "Back-of-house"],
763
823
  "paint": {
764
- "fill-extrusion-color": "#D6D6CC",
824
+ "fill-extrusion-color": "#e6e6e2",
765
825
  "fill-extrusion-height": [
766
826
  "interpolate",
767
827
  ["linear"],
@@ -769,11 +829,11 @@
769
829
  15.5,
770
830
  0,
771
831
  16.5,
772
- 2,
832
+ 1,
773
833
  17.5,
774
- 3,
834
+ 1.4,
775
835
  18.2,
776
- 3.2
836
+ 1.6
777
837
  ],
778
838
  "fill-extrusion-base": 0,
779
839
  "fill-extrusion-opacity": 1
@@ -787,7 +847,7 @@
787
847
  "minzoom": 16.5,
788
848
  "filter": ["==", ["get", "featureType"], "Restrooms"],
789
849
  "paint": {
790
- "fill-extrusion-color": "#5B8468",
850
+ "fill-extrusion-color": "#5f9070",
791
851
  "fill-extrusion-height": [
792
852
  "interpolate",
793
853
  ["linear"],
@@ -795,14 +855,14 @@
795
855
  15.5,
796
856
  0,
797
857
  16.5,
798
- 2,
858
+ 1,
799
859
  17.5,
800
- 3,
860
+ 1.4,
801
861
  18.2,
802
- 3.2
862
+ 1.6
803
863
  ],
804
864
  "fill-extrusion-base": 0,
805
- "fill-extrusion-opacity": 0.9
865
+ "fill-extrusion-opacity": 0.95
806
866
  }
807
867
  },
808
868
 
@@ -821,11 +881,11 @@
821
881
  15.5,
822
882
  0,
823
883
  16.5,
824
- 0.8,
884
+ 0.4,
825
885
  17.5,
826
- 1.5,
886
+ 0.6,
827
887
  18.2,
828
- 2
888
+ 0.8
829
889
  ],
830
890
  "fill-extrusion-base": 0,
831
891
  "fill-extrusion-opacity": 1
@@ -843,7 +903,7 @@
843
903
  ["literal", ["Escalators", "Stairs", "Elevators"]]
844
904
  ],
845
905
  "paint": {
846
- "fill-extrusion-color": "#6A8799",
906
+ "fill-extrusion-color": "#a9aeb1",
847
907
  "fill-extrusion-height": [
848
908
  "interpolate",
849
909
  ["linear"],
@@ -851,11 +911,11 @@
851
911
  15.5,
852
912
  0,
853
913
  16.5,
854
- 2,
914
+ 1,
855
915
  17.5,
856
- 3,
916
+ 1.4,
857
917
  18.2,
858
- 3.2
918
+ 1.6
859
919
  ],
860
920
  "fill-extrusion-base": 0,
861
921
  "fill-extrusion-vertical-gradient": true,
@@ -878,18 +938,18 @@
878
938
  15,
879
939
  0,
880
940
  16,
881
- 2,
941
+ 1,
882
942
  17,
883
- 3,
943
+ 1.4,
884
944
  18,
885
- 4
945
+ 1.6
886
946
  ],
887
947
  "fill-extrusion-base": 0,
888
948
  "fill-extrusion-opacity": 0.85
889
949
  }
890
950
  },
891
951
  {
892
- "id": "route-line",
952
+ "id": "route-halo",
893
953
  "type": "line",
894
954
  "source": "route-data",
895
955
  "minzoom": 16.5,
@@ -898,30 +958,103 @@
898
958
  "line-join": "round"
899
959
  },
900
960
  "paint": {
901
- "line-color": "#007aff",
961
+ "line-color": "#ffffff",
902
962
  "line-width": [
903
963
  "interpolate", ["linear"], ["zoom"],
904
- 16.5, 3,
905
- 18.0, 5,
906
- 20.0, 7
964
+ 16.5, 10,
965
+ 18.0, 15,
966
+ 20.0, 21
907
967
  ],
908
- "line-opacity": 0.9
968
+ "line-opacity": 0.95
909
969
  }
910
970
  },
911
971
  {
912
- "id": "route-halo",
972
+ "id": "route-line",
913
973
  "type": "line",
914
974
  "source": "route-data",
915
975
  "minzoom": 16.5,
976
+ "layout": {
977
+ "line-cap": "round",
978
+ "line-join": "round"
979
+ },
980
+ "paint": {
981
+ "line-color": "#d32f2f",
982
+ "line-width": [
983
+ "interpolate", ["linear"], ["zoom"],
984
+ 16.5, 6,
985
+ 18.0, 9,
986
+ 20.0, 13
987
+ ],
988
+ "line-opacity": 1
989
+ }
990
+ },
991
+ {
992
+ "id": "route-arrows",
993
+ "type": "symbol",
994
+ "source": "route-data",
995
+ "minzoom": 16.5,
996
+ "layout": {
997
+ "symbol-placement": "line",
998
+ "symbol-spacing": [
999
+ "interpolate", ["linear"], ["zoom"],
1000
+ 16.5, 150,
1001
+ 18.0, 290,
1002
+ 20.0, 480
1003
+ ],
1004
+ "icon-image": "route-arrow",
1005
+ "icon-rotation-alignment": "map",
1006
+ "icon-pitch-alignment": "map",
1007
+ "icon-allow-overlap": true,
1008
+ "icon-ignore-placement": true,
1009
+ "icon-size": [
1010
+ "interpolate", ["linear"], ["zoom"],
1011
+ 16.5, 0.42,
1012
+ 18.0, 0.62,
1013
+ 20.0, 0.85
1014
+ ]
1015
+ },
916
1016
  "paint": {
917
- "line-color": "white",
1017
+ "icon-opacity": 1
1018
+ }
1019
+ },
1020
+ {
1021
+ "id": "route-line-active-halo",
1022
+ "type": "line",
1023
+ "source": "route-active-step",
1024
+ "minzoom": 16.5,
1025
+ "layout": {
1026
+ "line-cap": "round",
1027
+ "line-join": "round"
1028
+ },
1029
+ "paint": {
1030
+ "line-color": "#FFFFFF",
1031
+ "line-width": [
1032
+ "interpolate", ["linear"], ["zoom"],
1033
+ 16.5, 8,
1034
+ 18.0, 11,
1035
+ 20.0, 14
1036
+ ],
1037
+ "line-opacity": 0.85
1038
+ }
1039
+ },
1040
+ {
1041
+ "id": "route-line-active",
1042
+ "type": "line",
1043
+ "source": "route-active-step",
1044
+ "minzoom": 16.5,
1045
+ "layout": {
1046
+ "line-cap": "round",
1047
+ "line-join": "round"
1048
+ },
1049
+ "paint": {
1050
+ "line-color": "#fdb81e",
918
1051
  "line-width": [
919
1052
  "interpolate", ["linear"], ["zoom"],
920
1053
  16.5, 5,
921
1054
  18.0, 7,
922
1055
  20.0, 9
923
1056
  ],
924
- "line-opacity": 0.7
1057
+ "line-opacity": 1
925
1058
  }
926
1059
  },
927
1060
  {
@@ -934,7 +1067,7 @@
934
1067
  "circle-radius": 6,
935
1068
  "circle-color": "#ffffff",
936
1069
  "circle-stroke-width": 3,
937
- "circle-stroke-color": "#007aff",
1070
+ "circle-stroke-color": "#d32f2f",
938
1071
  "circle-opacity": 1
939
1072
  }
940
1073
  },
@@ -946,7 +1079,7 @@
946
1079
  "filter": ["==", ["get", "role"], "destination"],
947
1080
  "paint": {
948
1081
  "circle-radius": 7,
949
- "circle-color": "#007aff",
1082
+ "circle-color": "#d32f2f",
950
1083
  "circle-stroke-width": 3,
951
1084
  "circle-stroke-color": "#ffffff",
952
1085
  "circle-opacity": 1
@@ -961,13 +1094,20 @@
961
1094
  "layout": {
962
1095
  "icon-image": "wheelchair-accessible",
963
1096
  "icon-size": [
964
- "interpolate", ["linear"], ["zoom"],
965
- 15, 0.4,
966
- 17, 0.6,
967
- 19, 0.8
1097
+ "interpolate", ["exponential", 1.3], ["zoom"],
1098
+ 14, 0.28,
1099
+ 16, 0.4,
1100
+ 18, 0.58,
1101
+ 20, 0.85,
1102
+ 22, 1.2
968
1103
  ],
969
1104
  "icon-allow-overlap": false,
970
- "icon-padding": 4
1105
+ "icon-padding": [
1106
+ "interpolate", ["linear"], ["zoom"],
1107
+ 15, 8,
1108
+ 17, 4,
1109
+ 19, 2
1110
+ ]
971
1111
  }
972
1112
  },
973
1113
 
@@ -975,20 +1115,50 @@
975
1115
  "id": "poi-destination-circles",
976
1116
  "type": "circle",
977
1117
  "source": "poi-data",
978
- "filter": ["==", ["get", "poiType"], "destination"],
1118
+ "filter": ["all", ["==", ["get", "poiType"], "destination"], ["!", ["has", "iconId"]]],
979
1119
  "minzoom": 16.5,
980
1120
  "paint": {
981
1121
  "circle-radius": [
982
1122
  "interpolate", ["linear"], ["zoom"],
983
- 15, 3,
1123
+ 14, 3,
1124
+ 16, 5,
1125
+ 18, 7,
1126
+ 20, 10
1127
+ ],
1128
+ "circle-color": "#ffffff",
1129
+ "circle-stroke-width": 3,
1130
+ "circle-stroke-color": "#162e51",
1131
+ "circle-opacity": 1
1132
+ }
1133
+ },
1134
+
1135
+ {
1136
+ "id": "poi-destination-icons",
1137
+ "type": "symbol",
1138
+ "source": "poi-data",
1139
+ "filter": ["all", ["==", ["get", "poiType"], "destination"], ["has", "iconId"]],
1140
+ "minzoom": 16.5,
1141
+ "layout": {
1142
+ "symbol-sort-key": ["get", "rank"],
1143
+ "icon-image": ["get", "iconId"],
1144
+ "icon-size": [
1145
+ "interpolate", ["exponential", 1.3], ["zoom"],
1146
+ 14, 0.28,
1147
+ 16, 0.4,
1148
+ 18, 0.58,
1149
+ 20, 0.85,
1150
+ 22, 1.2
1151
+ ],
1152
+ "icon-allow-overlap": false,
1153
+ "icon-padding": [
1154
+ "interpolate", ["linear"], ["zoom"],
1155
+ 15, 8,
984
1156
  17, 4,
985
- 19, 5,
986
- 20, 6
1157
+ 19, 2
987
1158
  ],
988
- "circle-color": "#162e51",
989
- "circle-stroke-width": 2,
990
- "circle-stroke-color": "#FFFFFF",
991
- "circle-opacity": 0.9
1159
+ "icon-optional": false,
1160
+ "icon-rotation-alignment": "viewport",
1161
+ "icon-pitch-alignment": "viewport"
992
1162
  }
993
1163
  },
994
1164
 
@@ -999,21 +1169,25 @@
999
1169
  "filter": [
1000
1170
  "all",
1001
1171
  ["==", ["get", "poiType"], "destination"],
1002
- ["==", ["get", "showLabel"], true]
1172
+ ["==", ["get", "showLabel"], true],
1173
+ ["!", ["has", "iconId"]]
1003
1174
  ],
1004
- "minzoom": 18.5,
1175
+ "minzoom": 16.5,
1005
1176
  "layout": {
1177
+ "symbol-sort-key": 0,
1006
1178
  "text-field": ["get", "name"],
1007
1179
  "text-size": [
1008
1180
  "interpolate", ["linear"], ["zoom"],
1009
- 18.5, 12,
1010
- 20, 14
1181
+ 16.5, 18,
1182
+ 18, 20,
1183
+ 20, 23
1011
1184
  ],
1012
- "text-offset": [0, 0.8],
1013
- "text-anchor": "top",
1185
+ "text-offset": [0, -0.9],
1186
+ "text-anchor": "bottom",
1014
1187
  "text-font": ["Noto Sans Bold"],
1015
1188
  "text-max-width": 12,
1016
1189
  "text-allow-overlap": false,
1190
+ "text-padding": 4,
1017
1191
  "text-rotation-alignment": "viewport"
1018
1192
  },
1019
1193
  "paint": {
@@ -1024,6 +1198,38 @@
1024
1198
  }
1025
1199
  },
1026
1200
 
1201
+ {
1202
+ "id": "map-labels",
1203
+ "type": "symbol",
1204
+ "source": "map-labels-data",
1205
+ "minzoom": 15.5,
1206
+ "layout": {
1207
+ "symbol-sort-key": 10,
1208
+ "text-field": ["get", "name"],
1209
+ "text-size": [
1210
+ "interpolate", ["linear"], ["zoom"],
1211
+ 15.5, 13,
1212
+ 16.5, 16,
1213
+ 18, 19,
1214
+ 20, 22
1215
+ ],
1216
+ "text-font": ["Noto Sans Bold"],
1217
+ "text-letter-spacing": 0.04,
1218
+ "text-max-width": 10,
1219
+ "text-anchor": "center",
1220
+ "text-rotate": ["get", "rotation"],
1221
+ "text-rotation-alignment": "map",
1222
+ "text-allow-overlap": false,
1223
+ "text-padding": 4
1224
+ },
1225
+ "paint": {
1226
+ "text-color": "#3d4551",
1227
+ "text-halo-color": "#FFFFFF",
1228
+ "text-halo-width": 1.4,
1229
+ "text-halo-blur": 0.5
1230
+ }
1231
+ },
1232
+
1027
1233
  {
1028
1234
  "id": "poi-entrance-exit-icons",
1029
1235
  "type": "symbol",
@@ -1040,15 +1246,23 @@
1040
1246
  ],
1041
1247
  "minzoom": 15,
1042
1248
  "layout": {
1249
+ "symbol-sort-key": ["get", "rank"],
1043
1250
  "icon-image": ["get", "iconId"],
1044
1251
  "icon-size": [
1252
+ "interpolate", ["exponential", 1.3], ["zoom"],
1253
+ 14, 0.28,
1254
+ 16, 0.4,
1255
+ 18, 0.58,
1256
+ 20, 0.85,
1257
+ 22, 1.2
1258
+ ],
1259
+ "icon-allow-overlap": false,
1260
+ "icon-padding": [
1045
1261
  "interpolate", ["linear"], ["zoom"],
1046
- 16.5, 0.5,
1047
- 18, 0.6,
1048
- 20, 0.8
1262
+ 15, 8,
1263
+ 17, 4,
1264
+ 19, 2
1049
1265
  ],
1050
- "icon-allow-overlap": true,
1051
- "icon-padding": 2,
1052
1266
  "icon-optional": false,
1053
1267
  "icon-rotation-alignment": "viewport",
1054
1268
  "icon-pitch-alignment": "viewport",
@@ -1056,10 +1270,9 @@
1056
1270
  "text-field": ["get", "name"],
1057
1271
  "text-size": [
1058
1272
  "interpolate", ["linear"], ["zoom"],
1059
- 16.5, 0,
1060
- 18.5, 0,
1061
- 19, 12,
1062
- 20, 13
1273
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1274
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1275
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1063
1276
  ],
1064
1277
  "text-offset": [0, 1.3],
1065
1278
  "text-anchor": "top",
@@ -1095,15 +1308,23 @@
1095
1308
  ],
1096
1309
  "minzoom": 14,
1097
1310
  "layout": {
1311
+ "symbol-sort-key": ["get", "rank"],
1098
1312
  "icon-image": ["get", "iconId"],
1099
1313
  "icon-size": [
1314
+ "interpolate", ["exponential", 1.3], ["zoom"],
1315
+ 14, 0.28,
1316
+ 16, 0.4,
1317
+ 18, 0.58,
1318
+ 20, 0.85,
1319
+ 22, 1.2
1320
+ ],
1321
+ "icon-allow-overlap": false,
1322
+ "icon-padding": [
1100
1323
  "interpolate", ["linear"], ["zoom"],
1101
- 16.5, 0.5,
1102
- 18, 0.6,
1103
- 20, 0.8
1324
+ 15, 8,
1325
+ 17, 4,
1326
+ 19, 2
1104
1327
  ],
1105
- "icon-allow-overlap": true,
1106
- "icon-padding": 2,
1107
1328
  "icon-optional": false,
1108
1329
  "icon-rotation-alignment": "viewport",
1109
1330
  "icon-pitch-alignment": "viewport",
@@ -1111,10 +1332,9 @@
1111
1332
  "text-field": ["get", "name"],
1112
1333
  "text-size": [
1113
1334
  "interpolate", ["linear"], ["zoom"],
1114
- 16.5, 0,
1115
- 18.5, 0,
1116
- 19, 12,
1117
- 20, 13
1335
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1336
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1337
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1118
1338
  ],
1119
1339
  "text-offset": [0, 1.3],
1120
1340
  "text-anchor": "top",
@@ -1146,19 +1366,28 @@
1146
1366
  ["==", ["index-of", "exit", ["get", "keywords"]], -1],
1147
1367
  ["==", ["index-of", "door", ["get", "keywords"]], -1],
1148
1368
  ["==", ["index-of", "parking", ["get", "keywords"]], -1],
1149
- ["==", ["index-of", "park", ["get", "keywords"]], -1]
1369
+ ["==", ["index-of", "park", ["get", "keywords"]], -1],
1370
+ ["<=", ["get", "rank"], ["step", ["zoom"], 0, 17, 2, 18, 3]]
1150
1371
  ],
1151
- "minzoom": 17.5,
1372
+ "minzoom": 16.5,
1152
1373
  "layout": {
1374
+ "symbol-sort-key": ["get", "rank"],
1153
1375
  "icon-image": ["get", "iconId"],
1154
1376
  "icon-size": [
1377
+ "interpolate", ["exponential", 1.3], ["zoom"],
1378
+ 14, 0.28,
1379
+ 16, 0.4,
1380
+ 18, 0.58,
1381
+ 20, 0.85,
1382
+ 22, 1.2
1383
+ ],
1384
+ "icon-allow-overlap": false,
1385
+ "icon-padding": [
1155
1386
  "interpolate", ["linear"], ["zoom"],
1156
- 17.5, 0.5,
1157
- 18, 0.6,
1158
- 20, 0.8
1387
+ 15, 8,
1388
+ 17, 4,
1389
+ 19, 2
1159
1390
  ],
1160
- "icon-allow-overlap": true,
1161
- "icon-padding": 2,
1162
1391
  "icon-optional": false,
1163
1392
  "icon-rotation-alignment": "viewport",
1164
1393
  "icon-pitch-alignment": "viewport",
@@ -1166,10 +1395,9 @@
1166
1395
  "text-field": ["get", "name"],
1167
1396
  "text-size": [
1168
1397
  "interpolate", ["linear"], ["zoom"],
1169
- 17.5, 0,
1170
- 18.5, 0,
1171
- 19, 12,
1172
- 20, 13
1398
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1399
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1400
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1173
1401
  ],
1174
1402
  "text-offset": [0, 1.3],
1175
1403
  "text-anchor": "top",
@@ -1191,42 +1419,128 @@
1191
1419
  }
1192
1420
  },
1193
1421
  {
1194
- "id": "poi-you-are-here",
1422
+ "id": "poi-you-are-here-heading",
1195
1423
  "type": "symbol",
1196
1424
  "source": "poi-data",
1197
- "filter": ["==", ["get", "isYouAreHere"], true],
1198
- "minzoom": 16.5,
1425
+ "filter": [
1426
+ "all",
1427
+ ["==", ["get", "isYouAreHere"], true],
1428
+ ["==", ["get", "hasHeading"], true]
1429
+ ],
1430
+ "minzoom": 16,
1199
1431
  "layout": {
1200
- "icon-image": [
1201
- "coalesce",
1202
- ["get", "iconId"],
1203
- "you-are-here"
1432
+ "text-field": "▲",
1433
+ "text-size": [
1434
+ "interpolate", ["linear"], ["zoom"],
1435
+ 16, 28,
1436
+ 18, 34,
1437
+ 20, 42
1204
1438
  ],
1205
- "icon-size": [
1439
+ "text-font": ["Noto Sans Bold"],
1440
+ "text-anchor": "bottom",
1441
+ "text-offset": [0, -0.45],
1442
+ "text-rotate": ["get", "heading"],
1443
+ "text-rotation-alignment": "map",
1444
+ "text-pitch-alignment": "map",
1445
+ "text-allow-overlap": true,
1446
+ "text-ignore-placement": true
1447
+ },
1448
+ "paint": {
1449
+ "text-color": "#face00",
1450
+ "text-halo-color": "#162e51",
1451
+ "text-halo-width": 2.5,
1452
+ "text-opacity": 0.9
1453
+ }
1454
+ },
1455
+ {
1456
+ "id": "poi-you-are-here-ring",
1457
+ "type": "circle",
1458
+ "source": "poi-data",
1459
+ "filter": ["==", ["get", "isYouAreHere"], true],
1460
+ "minzoom": 16,
1461
+ "paint": {
1462
+ "circle-radius": [
1206
1463
  "interpolate", ["linear"], ["zoom"],
1207
- 16.5, 0.8,
1208
- 18.0, 1.0,
1209
- 20.0, 1.2
1464
+ 16, 14,
1465
+ 18, 18,
1466
+ 20, 24
1210
1467
  ],
1211
- "icon-allow-overlap": true,
1212
- "icon-ignore-placement": true,
1213
- "icon-anchor": "bottom",
1468
+ "circle-color": "#face00",
1469
+ "circle-opacity": 0.25,
1470
+ "circle-pitch-alignment": "map"
1471
+ }
1472
+ },
1473
+ {
1474
+ "id": "poi-you-are-here-dot",
1475
+ "type": "circle",
1476
+ "source": "poi-data",
1477
+ "filter": ["==", ["get", "isYouAreHere"], true],
1478
+ "minzoom": 16,
1479
+ "paint": {
1480
+ "circle-radius": [
1481
+ "interpolate", ["linear"], ["zoom"],
1482
+ 16, 7,
1483
+ 18, 9,
1484
+ 20, 12
1485
+ ],
1486
+ "circle-color": "#face00",
1487
+ "circle-opacity": 1,
1488
+ "circle-stroke-color": "#ffffff",
1489
+ "circle-stroke-width": 3,
1490
+ "circle-stroke-opacity": 1
1491
+ }
1492
+ },
1493
+ {
1494
+ "id": "poi-you-are-here",
1495
+ "type": "symbol",
1496
+ "source": "poi-data",
1497
+ "filter": ["==", ["get", "isYouAreHere"], true],
1498
+ "minzoom": 16,
1499
+ "layout": {
1214
1500
  "text-field": ["get", "name"],
1215
1501
  "text-size": [
1216
1502
  "interpolate", ["linear"], ["zoom"],
1217
- 17.5, 11,
1218
- 19.5, 13
1503
+ 16, 17,
1504
+ 18, 19,
1505
+ 20, 22
1219
1506
  ],
1220
- "text-offset": [0, 1.2],
1221
- "text-anchor": "top",
1507
+ "text-offset": [0, -1.8],
1508
+ "text-anchor": "bottom",
1222
1509
  "text-font": ["Noto Sans Bold"],
1223
- "text-optional": true
1510
+ "text-allow-overlap": true,
1511
+ "text-ignore-placement": true,
1512
+ "text-optional": false
1224
1513
  },
1225
1514
  "paint": {
1226
1515
  "text-color": "#ffffff",
1227
- "text-halo-color": "#000000",
1228
- "text-halo-width": 1.5,
1229
- "text-halo-blur": 0.8
1516
+ "text-halo-color": "#162e51",
1517
+ "text-halo-width": 2.5,
1518
+ "text-halo-blur": 0.5
1519
+ }
1520
+ },
1521
+ {
1522
+ "id": "poi-highlight-ring",
1523
+ "type": "circle",
1524
+ "source": "poi-highlight-data",
1525
+ "paint": {
1526
+ "circle-radius": 14,
1527
+ "circle-color": "#005ea2",
1528
+ "circle-opacity": 0.45,
1529
+ "circle-pitch-alignment": "map"
1530
+ }
1531
+ },
1532
+ {
1533
+ "id": "poi-highlight-core",
1534
+ "type": "circle",
1535
+ "source": "poi-highlight-data",
1536
+ "paint": {
1537
+ "circle-radius": 9,
1538
+ "circle-color": "#005ea2",
1539
+ "circle-opacity": 1,
1540
+ "circle-stroke-color": "#ffffff",
1541
+ "circle-stroke-width": 3,
1542
+ "circle-stroke-opacity": 1,
1543
+ "circle-pitch-alignment": "map"
1230
1544
  }
1231
1545
  }
1232
1546
  ]