@minmaps-dev/mm-web-sdk 1.0.0-rc.5 → 1.0.0-rc.50

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.
@@ -6,13 +6,18 @@
6
6
  "author": "Hospital Mapping Team",
7
7
  "version": "7.1.0"
8
8
  },
9
- "sprite": "http://localhost:4000/sprites/sprite",
10
- "glyphs": "https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",
9
+ "sprite": "https://martin-dev.purpleground-b373fa6d.eastus.azurecontainerapps.io/sprite/badged",
10
+ "glyphs": "https://martin-dev.purpleground-b373fa6d.eastus.azurecontainerapps.io/font/{fontstack}/{range}.pbf",
11
+ "light": {
12
+ "anchor": "viewport",
13
+ "color": "#fff4e8",
14
+ "intensity": 0.35,
15
+ "position": [1.5, 210, 20]
16
+ },
11
17
  "sources": {
12
- "osm-tiles": {
13
- "type": "raster",
14
- "tiles": ["https://tile.openstreetmap.org/{z}/{x}/{y}.png"],
15
- "tileSize": 256,
18
+ "protomaps": {
19
+ "type": "vector",
20
+ "url": "https://martin-dev.purpleground-b373fa6d.eastus.azurecontainerapps.io/usa",
16
21
  "attribution": "© OpenStreetMap contributors"
17
22
  },
18
23
  "indoor-data": {
@@ -23,20 +28,40 @@
23
28
  "type": "geojson",
24
29
  "data": { "type": "FeatureCollection", "features": [] }
25
30
  },
26
- "accessibility-data": {
31
+ "route-data": {
32
+ "type": "geojson",
33
+ "data": { "type": "FeatureCollection", "features": [] },
34
+ "lineMetrics": true
35
+ },
36
+ "route-endpoints": {
27
37
  "type": "geojson",
28
38
  "data": { "type": "FeatureCollection", "features": [] }
29
39
  },
30
- "unit-walls": {
40
+ "route-end-data": {
31
41
  "type": "geojson",
32
42
  "data": { "type": "FeatureCollection", "features": [] }
33
43
  },
34
- "route-data": {
44
+ "route-approach-data": {
35
45
  "type": "geojson",
36
- "data": { "type": "FeatureCollection", "features": [] },
37
- "lineMetrics": true
46
+ "data": { "type": "FeatureCollection", "features": [] }
38
47
  },
39
- "route-endpoints": {
48
+ "route-preview-data": {
49
+ "type": "geojson",
50
+ "data": { "type": "FeatureCollection", "features": [] }
51
+ },
52
+ "poi-highlight-data": {
53
+ "type": "geojson",
54
+ "data": { "type": "FeatureCollection", "features": [] }
55
+ },
56
+ "map-labels-data": {
57
+ "type": "geojson",
58
+ "data": { "type": "FeatureCollection", "features": [] }
59
+ },
60
+ "venue-marker-data": {
61
+ "type": "geojson",
62
+ "data": { "type": "FeatureCollection", "features": [] }
63
+ },
64
+ "route-active-step": {
40
65
  "type": "geojson",
41
66
  "data": { "type": "FeatureCollection", "features": [] }
42
67
  }
@@ -46,466 +71,662 @@
46
71
  "id": "background",
47
72
  "type": "background",
48
73
  "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
- ]
74
+ "background-color": "#f0f0f0"
69
75
  }
70
76
  },
71
-
72
77
  {
73
- "id": "pattern-water",
78
+ "id": "basemap-earth",
74
79
  "type": "fill",
75
- "source": "indoor-data",
76
- "minzoom": 16.5,
77
- "filter": ["==", ["get", "featureType"], "Pattern-Water"],
80
+ "source": "protomaps",
81
+ "source-layer": "earth",
78
82
  "paint": {
79
- "fill-color": "#5DADE2",
80
- "fill-opacity": 0.6
83
+ "fill-color": "#EAE2D0"
81
84
  }
82
85
  },
83
86
  {
84
- "id": "pattern-grass",
87
+ "id": "basemap-landuse-park",
85
88
  "type": "fill",
86
- "source": "indoor-data",
87
- "minzoom": 16.5,
88
- "filter": ["==", ["get", "featureType"], "Pattern-Grass"],
89
+ "source": "protomaps",
90
+ "source-layer": "landuse",
91
+ "filter": [
92
+ "in",
93
+ ["get", "kind"],
94
+ ["literal", ["park", "forest", "wood", "nature_reserve", "grass", "garden", "playground", "cemetery", "golf_course", "pitch", "recreation_ground", "village_green", "meadow", "scrub"]]
95
+ ],
89
96
  "paint": {
90
- "fill-color": "#7CB342",
91
- "fill-opacity": 0.5
97
+ "fill-color": "#cbe0b6"
92
98
  }
93
99
  },
94
100
  {
95
- "id": "pattern-trees",
101
+ "id": "basemap-landuse-coastal",
96
102
  "type": "fill",
97
- "source": "indoor-data",
98
- "minzoom": 16.5,
99
- "filter": ["==", ["get", "featureType"], "Pattern-Trees"],
103
+ "source": "protomaps",
104
+ "source-layer": "landuse",
105
+ "filter": [
106
+ "in",
107
+ ["get", "kind"],
108
+ ["literal", ["beach", "sand", "wetland"]]
109
+ ],
100
110
  "paint": {
101
- "fill-color": "#4CAF50",
102
- "fill-opacity": 0.4
111
+ "fill-color": [
112
+ "match",
113
+ ["get", "kind"],
114
+ ["beach", "sand"], "#e9ddba",
115
+ "wetland", "#cdd8bf",
116
+ "#e9ddba"
117
+ ]
103
118
  }
104
119
  },
105
120
  {
106
- "id": "pattern-pavement",
121
+ "id": "basemap-landuse-builtup",
107
122
  "type": "fill",
108
- "source": "indoor-data",
109
- "minzoom": 16.5,
110
- "filter": ["==", ["get", "featureType"], "Pattern-Pavement"],
123
+ "source": "protomaps",
124
+ "source-layer": "landuse",
125
+ "filter": [
126
+ "in",
127
+ ["get", "kind"],
128
+ [
129
+ "literal",
130
+ [
131
+ "hospital", "clinic", "healthcare",
132
+ "university", "college", "school",
133
+ "parking",
134
+ "retail", "commercial",
135
+ "industrial", "railway",
136
+ "military"
137
+ ]
138
+ ]
139
+ ],
111
140
  "paint": {
112
- "fill-color": "#E0E0E0",
113
- "fill-opacity": 0.6
141
+ "fill-color": [
142
+ "match",
143
+ ["get", "kind"],
144
+ ["hospital", "clinic", "healthcare"], "#ecdcd8",
145
+ ["university", "college", "school"], "#e6ddc6",
146
+ "parking", "#dad7d0",
147
+ ["retail", "commercial"], "#ece2d2",
148
+ ["industrial", "railway"], "#ddd7cc",
149
+ "military", "#ddd7cc",
150
+ "#eae2d0"
151
+ ]
114
152
  }
115
153
  },
116
-
117
154
  {
118
- "id": "pattern-outdoor-terrace",
155
+ "id": "basemap-water",
119
156
  "type": "fill",
120
- "source": "indoor-data",
121
- "minzoom": 16.5,
122
- "filter": ["==", ["get", "featureType"], "Pattern-OutdoorTerrace"],
157
+ "source": "protomaps",
158
+ "source-layer": "water",
159
+ "filter": ["in", ["geometry-type"], ["literal", ["Polygon", "MultiPolygon"]]],
123
160
  "paint": {
124
- "fill-color": "#8D6E63",
125
- "fill-opacity": 0.3
161
+ "fill-color": "#c2dbf2"
126
162
  }
127
163
  },
128
-
129
164
  {
130
- "id": "parking-lots",
165
+ "id": "basemap-buildings",
131
166
  "type": "fill",
132
- "source": "indoor-data",
133
- "filter": ["==", ["get", "featureType"], "Parking-Lots"],
167
+ "source": "protomaps",
168
+ "source-layer": "buildings",
169
+ "minzoom": 14,
134
170
  "paint": {
135
- "fill-color": "#BDBDBD",
136
- "fill-opacity": 0.6
171
+ "fill-color": "#d6cdb8",
172
+ "fill-outline-color": "#c3b89e",
173
+ "fill-opacity": [
174
+ "interpolate",
175
+ ["linear"],
176
+ ["zoom"],
177
+ 14, 0.0,
178
+ 15, 0.85,
179
+ 18, 0.92
180
+ ]
137
181
  }
138
182
  },
139
183
  {
140
- "id": "parking-lots-outline",
184
+ "id": "basemap-rail",
141
185
  "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"],
186
+ "source": "protomaps",
187
+ "source-layer": "roads",
188
+ "minzoom": 13,
189
+ "filter": ["==", ["get", "kind"], "rail"],
157
190
  "paint": {
158
- "fill-color": "#FAF3E2",
159
- "fill-opacity": 1
191
+ "line-color": "#a8a29a",
192
+ "line-width": [
193
+ "interpolate",
194
+ ["linear"],
195
+ ["zoom"],
196
+ 13, 1.1,
197
+ 16, 2.2,
198
+ 19, 4
199
+ ],
200
+ "line-dasharray": [2, 2]
160
201
  }
161
202
  },
162
203
  {
163
- "id": "building-roof-fill",
164
- "type": "fill",
165
- "source": "indoor-data",
166
- "minzoom": 16.5,
167
- "filter": ["==", ["get", "featureType"], "Boundary"],
204
+ "id": "basemap-roads-tunnel",
205
+ "type": "line",
206
+ "source": "protomaps",
207
+ "source-layer": "roads",
208
+ "minzoom": 13,
209
+ "filter": [
210
+ "all",
211
+ ["to-boolean", ["get", "is_tunnel"]],
212
+ ["in", ["get", "kind"], ["literal", ["minor_road", "major_road", "medium_road", "highway", "path"]]]
213
+ ],
168
214
  "paint": {
169
- "fill-color": "#162e51",
170
- "fill-opacity": 1
215
+ "line-color": "#e8e2d4",
216
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.0, 16, 3.2, 19, 8],
217
+ "line-dasharray": [3, 2],
218
+ "line-opacity": 0.85
171
219
  }
172
220
  },
173
221
  {
174
- "id": "corridors-fill",
175
- "type": "fill",
176
- "source": "indoor-data",
177
- "minzoom": 16.5,
222
+ "id": "basemap-roads-minor-casing",
223
+ "type": "line",
224
+ "source": "protomaps",
225
+ "source-layer": "roads",
226
+ "minzoom": 13,
178
227
  "filter": [
179
- "any",
180
- ["==", ["get", "featureType"], "Corridors"],
181
- ["==", ["get", "featureType"], "Corridor"]
228
+ "all",
229
+ ["!", ["to-boolean", ["get", "is_tunnel"]]],
230
+ ["in", ["get", "kind"], ["literal", ["minor_road", "service", "other"]]],
231
+ ["!", ["in", ["get", "kind_detail"], ["literal", ["footway", "sidewalk", "path", "steps", "cycleway", "crossing", "track", "pier", "pedestrian"]]]]
182
232
  ],
233
+ "layout": { "line-cap": "round", "line-join": "round" },
183
234
  "paint": {
184
- "fill-color": "#F0E6D1"
235
+ "line-color": "#d3cab4",
236
+ "line-width": [
237
+ "interpolate",
238
+ ["linear"],
239
+ ["zoom"],
240
+ 13, ["*", 2.6, ["match", ["get", "kind_detail"], "service", 0.6, "residential", 1.0, "unclassified", 0.85, 0.8]],
241
+ 16, ["*", 6.8, ["match", ["get", "kind_detail"], "service", 0.6, "residential", 1.0, "unclassified", 0.85, 0.8]],
242
+ 19, ["*", 14, ["match", ["get", "kind_detail"], "service", 0.6, "residential", 1.0, "unclassified", 0.85, 0.8]]
243
+ ]
185
244
  }
186
245
  },
187
-
188
246
  {
189
- "id": "accessible-routes",
247
+ "id": "basemap-roads-minor",
190
248
  "type": "line",
191
- "source": "accessibility-data",
192
- "minzoom": 16.5,
193
- "filter": ["==", ["get", "accessible"], true],
249
+ "source": "protomaps",
250
+ "source-layer": "roads",
251
+ "minzoom": 13,
252
+ "filter": [
253
+ "all",
254
+ ["!", ["to-boolean", ["get", "is_tunnel"]]],
255
+ ["in", ["get", "kind"], ["literal", ["minor_road", "path", "service", "other"]]]
256
+ ],
257
+ "layout": { "line-cap": "round", "line-join": "round" },
194
258
  "paint": {
195
- "line-color": "#2E7D32",
259
+ "line-color": [
260
+ "match",
261
+ ["get", "kind_detail"],
262
+ ["footway", "sidewalk", "path", "steps", "cycleway", "crossing", "track", "pier", "pedestrian"], "#ece8e0",
263
+ "service", "#f6f3ec",
264
+ "#FFFFFF"
265
+ ],
196
266
  "line-width": [
197
267
  "interpolate",
198
268
  ["linear"],
199
269
  ["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
270
+ 13, ["*", 1.2, ["match", ["get", "kind_detail"], "service", 0.6, "residential", 1.0, "unclassified", 0.85, ["footway", "sidewalk", "path", "steps", "cycleway", "crossing", "track", "pier", "pedestrian"], 0.5, 0.8]],
271
+ 16, ["*", 4.0, ["match", ["get", "kind_detail"], "service", 0.6, "residential", 1.0, "unclassified", 0.85, ["footway", "sidewalk", "path", "steps", "cycleway", "crossing", "track", "pier", "pedestrian"], 0.5, 0.8]],
272
+ 19, ["*", 9.5, ["match", ["get", "kind_detail"], "service", 0.6, "residential", 1.0, "unclassified", 0.85, ["footway", "sidewalk", "path", "steps", "cycleway", "crossing", "track", "pier", "pedestrian"], 0.5, 0.8]]
273
+ ]
209
274
  }
210
275
  },
211
-
212
276
  {
213
- "id": "units-fill",
214
- "type": "fill",
215
- "source": "indoor-data",
216
- "minzoom": 16.5,
217
- "filter": ["==", ["get", "featureType"], "Units"],
277
+ "id": "basemap-roads-major-casing",
278
+ "type": "line",
279
+ "source": "protomaps",
280
+ "source-layer": "roads",
281
+ "minzoom": 10,
282
+ "filter": [
283
+ "all",
284
+ ["!", ["to-boolean", ["get", "is_tunnel"]]],
285
+ ["in", ["get", "kind"], ["literal", ["highway", "major_road", "medium_road"]]]
286
+ ],
287
+ "layout": { "line-cap": "round", "line-join": "round" },
218
288
  "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"
289
+ "line-color": [
290
+ "match",
291
+ ["get", "kind_detail"],
292
+ ["motorway", "trunk", "motorway_link", "trunk_link", "primary", "primary_link"], "#d79a2a",
293
+ "#e0bc72"
250
294
  ],
251
- "fill-opacity": [
295
+ "line-width": [
252
296
  "interpolate",
253
297
  ["linear"],
254
298
  ["zoom"],
255
- 15,
256
- 0.85,
257
- 17,
258
- 0.92,
259
- 19,
260
- 0.95
299
+ 10, ["*", 2.0, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]],
300
+ 14, ["*", 5.6, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]],
301
+ 18, ["*", 15, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]]
261
302
  ]
262
303
  }
263
304
  },
264
305
  {
265
- "id": "units-outline-2d",
306
+ "id": "basemap-roads-major",
266
307
  "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
- },
308
+ "source": "protomaps",
309
+ "source-layer": "roads",
310
+ "minzoom": 10,
311
+ "filter": [
312
+ "all",
313
+ ["!", ["to-boolean", ["get", "is_tunnel"]]],
314
+ ["in", ["get", "kind"], ["literal", ["highway", "major_road", "medium_road"]]]
315
+ ],
316
+ "layout": { "line-cap": "round", "line-join": "round" },
275
317
  "paint": {
276
- "line-color": "#162e51",
277
- "line-opacity": 0.9,
278
- "line-width": ["interpolate", ["linear"], ["zoom"], 16, 0.8, 18, 1.4, 20, 2.2]
318
+ "line-color": [
319
+ "match",
320
+ ["get", "kind_detail"],
321
+ ["motorway", "trunk", "motorway_link", "trunk_link"], "#e8bf6a",
322
+ ["primary", "primary_link"], "#ecc97e",
323
+ "#efd699"
324
+ ],
325
+ "line-width": [
326
+ "interpolate",
327
+ ["linear"],
328
+ ["zoom"],
329
+ 10, ["*", 1.0, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]],
330
+ 14, ["*", 3.4, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]],
331
+ 18, ["*", 11, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]]
332
+ ]
279
333
  }
280
334
  },
281
335
  {
282
- "id": "backofhouse-fill",
283
- "type": "fill",
284
- "source": "indoor-data",
285
- "minzoom": 16.5,
286
- "filter": ["==", ["get", "featureType"], "Back-of-house"],
336
+ "id": "basemap-roads-bridge-casing",
337
+ "type": "line",
338
+ "source": "protomaps",
339
+ "source-layer": "roads",
340
+ "minzoom": 13,
341
+ "filter": [
342
+ "all",
343
+ ["to-boolean", ["get", "is_bridge"]],
344
+ ["in", ["get", "kind"], ["literal", ["highway", "major_road", "medium_road"]]]
345
+ ],
346
+ "layout": { "line-cap": "butt" },
287
347
  "paint": {
288
- "fill-color": "#D6D6CC",
289
- "fill-opacity": 0.7
348
+ "line-color": "#b7ad97",
349
+ "line-gap-width": [
350
+ "interpolate",
351
+ ["linear"],
352
+ ["zoom"],
353
+ 10, ["*", 1.0, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]],
354
+ 14, ["*", 3.4, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]],
355
+ 18, ["*", 11, ["match", ["get", "kind_detail"], ["motorway", "trunk"], 1.5, ["primary", "primary_link"], 1.3, ["secondary", "secondary_link"], 1.05, ["tertiary", "tertiary_link"], 0.85, 0.95]]
356
+ ],
357
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.9, 16, 1.5, 19, 2.4]
290
358
  }
291
359
  },
292
360
 
293
361
  {
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
362
+ "id": "basemap-road-shields",
363
+ "type": "symbol",
364
+ "source": "protomaps",
365
+ "source-layer": "roads",
366
+ "minzoom": 13,
367
+ "filter": [
368
+ "all",
369
+ ["!", ["to-boolean", ["get", "is_tunnel"]]],
370
+ ["!", ["to-boolean", ["get", "is_link"]]],
371
+ ["any", ["has", "shield_text"], ["has", "ref"]]
372
+ ],
373
+ "layout": {
374
+ "symbol-placement": "line",
375
+ "symbol-spacing": ["interpolate", ["linear"], ["zoom"], 13, 240, 17, 450],
376
+ "symbol-sort-key": 5,
377
+ "icon-image": [
378
+ "concat",
379
+ "mm-shield:",
380
+ [
381
+ "let",
382
+ "st", ["upcase", ["coalesce", ["get", "shield_text"], ["get", "ref"], ""]],
383
+ [
384
+ "case",
385
+ ["any",
386
+ ["==", ["get", "network"], "US:I"],
387
+ ["all",
388
+ ["==", ["slice", ["var", "st"], 0, 1], "I"],
389
+ ["in", ["slice", ["var", "st"], 1, 2], "0123456789"]
390
+ ]
391
+ ], "i",
392
+ ["in", ["get", "network"], ["literal", ["US:US", "US"]]], "us",
393
+ ["==", ["slice", ["var", "st"], 0, 2], "US"], "us",
394
+ ["==", ["slice", ["var", "st"], 0, 2], "CR"], "cr",
395
+ "st"
396
+ ]
397
+ ],
398
+ ":",
399
+ [
400
+ "let",
401
+ "n", [
402
+ "let",
403
+ "rf", ["upcase", ["coalesce", ["get", "ref"], ["get", "shield_text"], ""]],
404
+ [
405
+ "case",
406
+ [">=", ["index-of", " ", ["var", "rf"]], 0],
407
+ ["slice", ["var", "rf"], ["+", ["index-of", " ", ["var", "rf"]], 1]],
408
+ ["var", "rf"]
409
+ ]
410
+ ],
411
+ [
412
+ "case",
413
+ [">=", ["index-of", ";", ["var", "n"]], 0],
414
+ ["slice", ["var", "n"], 0, ["index-of", ";", ["var", "n"]]],
415
+ ["var", "n"]
416
+ ]
417
+ ]
418
+ ],
419
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.72, 16, 0.88, 19, 1.0],
420
+ "icon-rotation-alignment": "viewport",
421
+ "icon-pitch-alignment": "viewport",
422
+ "icon-allow-overlap": false,
423
+ "icon-padding": 4
303
424
  }
304
425
  },
426
+
305
427
  {
306
- "id": "backofhouse-outline-2d",
307
- "type": "line",
308
- "source": "indoor-data",
309
- "minzoom": 16.5,
310
- "filter": ["==", ["get", "featureType"], "Back-of-house"],
428
+ "id": "basemap-street-labels",
429
+ "type": "symbol",
430
+ "source": "protomaps",
431
+ "source-layer": "roads",
432
+ "minzoom": 13,
433
+ "filter": [
434
+ "all",
435
+ ["has", "name"],
436
+ [
437
+ "in",
438
+ ["get", "kind"],
439
+ ["literal", ["highway", "major_road", "medium_road", "minor_road"]]
440
+ ]
441
+ ],
311
442
  "layout": {
312
- "line-join": "round",
313
- "line-cap": "round"
314
- },
315
- "paint": {
316
- "line-color": "#7B8D93",
317
- "line-width": [
443
+ "symbol-placement": "line",
444
+ "symbol-spacing": 330,
445
+ "text-field": ["coalesce", ["get", "name:en"], ["get", "name"]],
446
+ "text-font": [
447
+ "match",
448
+ ["get", "kind"],
449
+ ["highway", "major_road"], ["literal", ["Noto Sans Bold"]],
450
+ ["literal", ["Noto Sans Regular"]]
451
+ ],
452
+ "text-size": [
318
453
  "interpolate",
319
454
  ["linear"],
320
455
  ["zoom"],
321
- 16,
322
- 0.6,
323
- 18,
324
- 1.0,
325
- 20,
326
- 1.4
456
+ 13, ["*", 10.5, ["match", ["get", "kind"], "highway", 1.12, "major_road", 1.06, "minor_road", 0.94, 1.0]],
457
+ 16, ["*", 13.0, ["match", ["get", "kind"], "highway", 1.12, "major_road", 1.06, "minor_road", 0.94, 1.0]],
458
+ 19, ["*", 16.0, ["match", ["get", "kind"], "highway", 1.12, "major_road", 1.06, "minor_road", 0.94, 1.0]]
327
459
  ],
328
- "line-opacity": 0.9
460
+ "text-letter-spacing": 0.04,
461
+ "text-max-angle": 40,
462
+ "text-padding": 3,
463
+ "text-rotation-alignment": "map",
464
+ "text-pitch-alignment": "viewport",
465
+ "symbol-sort-key": [
466
+ "match",
467
+ ["get", "kind"],
468
+ "highway", 0,
469
+ "major_road", 1,
470
+ "medium_road", 2,
471
+ "minor_road", 3,
472
+ 4
473
+ ]
474
+ },
475
+ "paint": {
476
+ "text-color": [
477
+ "match",
478
+ ["get", "kind"],
479
+ ["highway", "major_road"], "#463f32",
480
+ "#5b5346"
481
+ ],
482
+ "text-halo-color": "#fffffe",
483
+ "text-halo-width": 1.9,
484
+ "text-halo-blur": 0.3
329
485
  }
330
486
  },
331
-
332
487
  {
333
- "id": "restrooms-fill",
334
- "type": "fill",
335
- "source": "indoor-data",
336
- "minzoom": 16.5,
337
- "filter": ["==", ["get", "featureType"], "Restrooms"],
488
+ "id": "basemap-poi-marine",
489
+ "type": "symbol",
490
+ "source": "protomaps",
491
+ "source-layer": "pois",
492
+ "minzoom": 13,
493
+ "filter": [
494
+ "in",
495
+ ["get", "kind"],
496
+ ["literal", ["marina", "ferry_terminal", "ferry", "ferry_stop"]]
497
+ ],
498
+ "layout": {
499
+ "symbol-sort-key": 20,
500
+ "icon-image": [
501
+ "match",
502
+ ["get", "kind"],
503
+ "marina", "material-anchor",
504
+ ["ferry_terminal", "ferry", "ferry_stop"], "material-directions_boat",
505
+ "material-anchor"
506
+ ],
507
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.5, 16, 0.68, 19, 0.82],
508
+ "icon-allow-overlap": false,
509
+ "icon-optional": false,
510
+ "icon-padding": 4,
511
+ "icon-rotation-alignment": "viewport",
512
+ "icon-pitch-alignment": "viewport",
513
+ "text-field": ["coalesce", ["get", "name:en"], ["get", "name"]],
514
+ "text-font": ["Noto Sans Bold"],
515
+ "text-size": ["interpolate", ["linear"], ["zoom"], 16.5, 13.5, 19, 15],
516
+ "text-offset": [0, 1.8],
517
+ "text-anchor": "top",
518
+ "text-optional": true,
519
+ "text-padding": 4,
520
+ "text-rotation-alignment": "viewport"
521
+ },
338
522
  "paint": {
339
- "fill-color": "#5B8468",
340
- "fill-opacity": 1
523
+ "text-color": "#4a5560",
524
+ "text-halo-color": "#fffffe",
525
+ "text-halo-width": 1.9,
526
+ "text-halo-blur": 0.3
341
527
  }
342
528
  },
343
529
  {
344
- "id": "restrooms-outline-2d",
345
- "type": "line",
346
- "source": "indoor-data",
347
- "minzoom": 16.5,
348
- "filter": ["==", ["get", "featureType"], "Restrooms"],
530
+ "id": "basemap-poi-civic",
531
+ "type": "symbol",
532
+ "source": "protomaps",
533
+ "source-layer": "pois",
534
+ "minzoom": 13,
535
+ "filter": [
536
+ "in",
537
+ ["get", "kind"],
538
+ ["literal", ["place_of_worship", "fire_station", "post_office", "library", "townhall", "school"]]
539
+ ],
349
540
  "layout": {
350
- "line-join": "round",
351
- "line-cap": "round"
541
+ "symbol-sort-key": 25,
542
+ "icon-image": [
543
+ "match",
544
+ ["get", "kind"],
545
+ "place_of_worship", [
546
+ "match",
547
+ ["get", "kind_detail"],
548
+ "christian", "material-church",
549
+ "jewish", "material-synagogue",
550
+ "muslim", "material-mosque",
551
+ "buddhist", "material-temple_buddhist",
552
+ "hindu", "material-temple_hindu",
553
+ "material-church"
554
+ ],
555
+ "fire_station", "material-local_fire_department",
556
+ "post_office", "material-local_post_office",
557
+ "library", "material-local_library",
558
+ "townhall", "material-account_balance",
559
+ "school", "material-school",
560
+ "hospital", "material-local_hospital",
561
+ "material-account_balance"
562
+ ],
563
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.5, 16, 0.68, 19, 0.82],
564
+ "icon-allow-overlap": false,
565
+ "icon-optional": false,
566
+ "icon-padding": 4,
567
+ "icon-rotation-alignment": "viewport",
568
+ "icon-pitch-alignment": "viewport",
569
+ "text-field": ["step", ["zoom"], "", 16, ["coalesce", ["get", "name:en"], ["get", "name"]]],
570
+ "text-font": ["Noto Sans Bold"],
571
+ "text-size": ["interpolate", ["linear"], ["zoom"], 16.5, 11.5, 19, 13.5],
572
+ "text-offset": [0, 1.8],
573
+ "text-anchor": "top",
574
+ "text-optional": true,
575
+ "text-padding": 4,
576
+ "text-rotation-alignment": "viewport"
352
577
  },
353
578
  "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
579
+ "text-color": "#4a5560",
580
+ "text-halo-color": "#fffffe",
581
+ "text-halo-width": 1.9,
582
+ "text-halo-blur": 0.3
367
583
  }
368
584
  },
369
-
370
585
  {
371
- "id": "obstacles-fill",
372
- "type": "fill",
373
- "source": "indoor-data",
374
- "minzoom": 16.5,
375
- "filter": ["==", ["get", "featureType"], "Obstacles"],
586
+ "id": "basemap-park-labels",
587
+ "type": "symbol",
588
+ "source": "protomaps",
589
+ "source-layer": "pois",
590
+ "minzoom": 12,
591
+ "filter": [
592
+ "all",
593
+ ["has", "name"],
594
+ [
595
+ "in",
596
+ ["get", "kind"],
597
+ ["literal", ["park", "nature_reserve", "garden", "recreation_ground", "dog_park", "golf_course", "protected_area"]]
598
+ ]
599
+ ],
600
+ "layout": {
601
+ "symbol-sort-key": 30,
602
+ "text-field": ["coalesce", ["get", "name:en"], ["get", "name"]],
603
+ "text-font": ["Noto Sans Bold"],
604
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 11, 15, 13.5, 18, 16],
605
+ "text-max-width": 8,
606
+ "text-letter-spacing": 0.03,
607
+ "text-padding": 4,
608
+ "text-anchor": "center",
609
+ "text-rotation-alignment": "viewport",
610
+ "text-pitch-alignment": "viewport",
611
+ "text-optional": true
612
+ },
376
613
  "paint": {
377
- "fill-color": "#E8E9ED",
378
- "fill-opacity": 0.85
614
+ "text-color": "#3d6b2f",
615
+ "text-halo-color": "#fffffe",
616
+ "text-halo-width": 1.9,
617
+ "text-halo-blur": 0.3
379
618
  }
380
619
  },
381
620
  {
382
- "id": "obstacles-outline-2d",
383
- "type": "line",
384
- "source": "indoor-data",
385
- "minzoom": 16.5,
386
- "filter": ["==", ["get", "featureType"], "Obstacles"],
621
+ "id": "basemap-water-labels",
622
+ "type": "symbol",
623
+ "source": "protomaps",
624
+ "source-layer": "water",
625
+ "minzoom": 12,
626
+ "filter": ["has", "name"],
387
627
  "layout": {
388
- "line-join": "round",
389
- "line-cap": "round"
628
+ "symbol-sort-key": 28,
629
+ "text-field": ["coalesce", ["get", "name:en"], ["get", "name"]],
630
+ "text-font": ["Noto Sans Italic"],
631
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 11, 15, 13, 18, 15],
632
+ "text-max-width": 8,
633
+ "text-letter-spacing": 0.04,
634
+ "text-padding": 4,
635
+ "text-anchor": "center",
636
+ "text-rotation-alignment": "viewport",
637
+ "text-pitch-alignment": "viewport",
638
+ "text-optional": true
390
639
  },
391
640
  "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
641
+ "text-color": "#4a7396",
642
+ "text-halo-color": "#fffffe",
643
+ "text-halo-width": 1.7,
644
+ "text-halo-blur": 0.3
405
645
  }
406
646
  },
407
647
 
408
648
  {
409
- "id": "escalators-stairs-elevators",
649
+ "id": "pattern-water",
410
650
  "type": "fill",
411
651
  "source": "indoor-data",
412
652
  "minzoom": 16.5,
413
- "filter": [
414
- "in",
415
- ["get", "featureType"],
416
- ["literal", ["Escalators", "Stairs", "Elevators"]]
417
- ],
653
+ "filter": ["==", ["get", "featureType"], "Pattern-Water"],
418
654
  "paint": {
419
- "fill-color": "#6A8799",
420
- "fill-opacity": 1
655
+ "fill-color": "#cfe1ec"
656
+
421
657
  }
422
658
  },
423
659
  {
424
- "id": "escalators-stairs-elevators-outline-2d",
425
- "type": "line",
660
+ "id": "pattern-outdoor-terrace",
661
+ "type": "fill",
426
662
  "source": "indoor-data",
427
663
  "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
- },
664
+ "filter": ["==", ["get", "featureType"], "Pattern-OutdoorTerrace"],
437
665
  "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
666
+ "fill-color": "#cabfb6",
667
+ "fill-opacity": 0.3
451
668
  }
452
669
  },
453
670
 
454
671
  {
455
- "id": "exits-doors",
672
+ "id": "parking-lots",
456
673
  "type": "fill",
457
674
  "source": "indoor-data",
675
+
676
+ "filter": ["==", ["get", "featureType"], "Parking-Lots"],
677
+ "paint": {
678
+ "fill-color": "#adadad",
679
+ "fill-opacity": 0.5
680
+ }
681
+ },
682
+ {
683
+ "id": "parking-lots-outline",
684
+ "type": "line",
685
+ "source": "indoor-data",
458
686
  "minzoom": 16.5,
459
- "filter": [
460
- "in",
461
- ["get", "featureType"],
462
- ["literal", ["Exits", "Doors", "Exit", "Door"]]
463
- ],
687
+ "filter": ["==", ["get", "featureType"], "Parking-Lots"],
464
688
  "paint": {
465
- "fill-color": "#4CAF50",
466
- "fill-opacity": 0.6
689
+ "line-color": "#b0b0ad",
690
+ "line-width": 1,
691
+ "line-dasharray": [3, 2]
467
692
  }
468
693
  },
469
-
470
694
  {
471
- "id": "kiosks-fill",
695
+ "id": "boundary-fill",
472
696
  "type": "fill",
697
+ "minzoom": 15.8,
473
698
  "source": "indoor-data",
474
- "minzoom": 16.5,
475
- "filter": ["==", ["get", "featureType"], "Kiosks"],
699
+ "filter": ["==", ["get", "featureType"], "Boundary"],
476
700
  "paint": {
477
- "fill-color": "#9C27B0",
478
- "fill-opacity": 0.7
701
+ "fill-color": "#162e51",
702
+ "fill-opacity": 1
479
703
  }
480
704
  },
481
-
482
705
  {
483
- "id": "pattern-lounge",
706
+ "id": "building-roof-fill",
484
707
  "type": "fill",
485
708
  "source": "indoor-data",
486
- "minzoom": 16.5,
487
- "filter": ["==", ["get", "featureType"], "Pattern-Lounge"],
709
+ "minzoom": 15.8,
710
+ "maxzoom": 16.5,
711
+ "filter": ["==", ["get", "featureType"], "Boundary"],
488
712
  "paint": {
489
- "fill-color": "#CE93D8",
490
- "fill-opacity": 0.5
713
+ "fill-color": "#162e51",
714
+ "fill-opacity": 1
491
715
  }
492
716
  },
493
-
494
717
  {
495
- "id": "pattern-indoor-foodcourt",
718
+ "id": "pattern-pavement",
496
719
  "type": "fill",
497
720
  "source": "indoor-data",
498
721
  "minzoom": 16.5,
499
- "filter": ["==", ["get", "featureType"], "Pattern-IndoorFoodcourt"],
722
+ "filter": ["==", ["get", "featureType"], "Pattern-Pavement"],
500
723
  "paint": {
501
- "fill-color": "#FFCC80",
502
- "fill-opacity": 0.6
724
+ "fill-color": "#adadad"
503
725
  }
504
- },
505
-
726
+ },
506
727
  {
507
- "id": "corridors-outline",
508
- "type": "line",
728
+ "id": "corridors-fill",
729
+ "type": "fill",
509
730
  "source": "indoor-data",
510
731
  "minzoom": 16.5,
511
732
  "filter": [
@@ -514,327 +735,230 @@
514
735
  ["==", ["get", "featureType"], "Corridor"]
515
736
  ],
516
737
  "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
- ]
738
+ "fill-color": "#f0f0f0"
529
739
  }
530
740
  },
531
-
532
741
  {
533
- "id": "boundary-outline",
534
- "type": "line",
742
+ "id": "pattern-grass",
743
+ "type": "fill",
535
744
  "source": "indoor-data",
536
- "minzoom": 16.5,
537
- "filter": ["==", ["get", "featureType"], "Boundary"],
745
+
746
+ "filter": ["==", ["get", "featureType"], "Pattern-Grass"],
538
747
  "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
- ]
748
+ "fill-color": "#B6D0AE",
749
+ "fill-opacity": 1
564
750
  }
565
- },
751
+ },
566
752
  {
567
- "id": "building-roof-outline",
568
- "type": "line",
753
+ "id": "pattern-trees",
754
+ "type": "fill",
569
755
  "source": "indoor-data",
570
756
  "minzoom": 16.5,
571
- "filter": ["==", ["get", "featureType"], "Boundary"],
572
- "layout": {
573
- "line-join": "round",
574
- "line-cap": "round"
575
- },
757
+ "filter": ["==", ["get", "featureType"], "Pattern-Trees"],
576
758
  "paint": {
577
- "line-color": "#face00",
578
- "line-width": [
579
- "interpolate",
580
- ["linear"],
581
- ["zoom"],
582
- 15,
583
- 1.6,
584
- 18,
585
- 2.4,
586
- 20,
587
- 3.2
588
- ],
589
- "line-opacity": 0.95
759
+ "fill-color": "#7D9F64",
760
+ "fill-opacity": 1
590
761
  }
591
- },
762
+ },
592
763
  {
593
- "id": "interior-parking-lots",
764
+ "id": "custom-artLayer-5-fill",
594
765
  "type": "fill",
595
766
  "source": "indoor-data",
596
- "minzoom": 16.5,
597
- "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
767
+ "minzoom": 16.5,
768
+ "filter": ["==", ["get", "featureType"], "CustomArtLayer-5"],
598
769
  "paint": {
599
- "fill-color": "#757575",
770
+ "fill-color": "#DDE9F0",
600
771
  "fill-opacity": 0.8
601
772
  }
602
- },
773
+ },
603
774
  {
604
- "id": "interior-parking-lots-outline",
605
- "type": "line",
775
+ "id": "custom-artLayer-4-fill",
776
+ "type": "fill",
606
777
  "source": "indoor-data",
607
- "minzoom": 16.5,
608
- "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
778
+ "minzoom": 16.5,
779
+ "filter": ["==", ["get", "featureType"], "CustomArtLayer-4"],
609
780
  "paint": {
610
- "line-color": "#616161",
611
- "line-width": 1.5
781
+ "fill-color": "#D1D1D1"
612
782
  }
613
783
  },
614
784
  {
615
- "id": "building-extrusion",
616
- "type": "fill-extrusion",
785
+ "id": "custom-artLayer-2-fill",
786
+ "type": "fill",
617
787
  "source": "indoor-data",
618
- "filter": ["==", ["get", "featureType"], "Boundary"],
619
- "maxzoom": 16.5,
788
+ "minzoom": 16.5,
789
+ "filter": ["==", ["get", "featureType"], "CustomArtLayer-2"],
620
790
  "paint": {
621
- "fill-extrusion-color": "#162e51",
622
- "fill-extrusion-height": 15,
623
- "fill-extrusion-base": 0,
624
- "fill-extrusion-opacity": 1
791
+ "fill-color": "#B7C3CB"
625
792
  }
626
- },
627
-
793
+ },
628
794
  {
629
- "id": "units-wall-extrusion",
630
- "type": "fill-extrusion",
631
- "source": "unit-walls",
795
+ "id": "custom-artLayer-1-fill",
796
+ "type": "fill",
797
+ "source": "indoor-data",
798
+ "minzoom": 16.5,
799
+ "filter": ["==", ["get", "featureType"], "CustomArtLayer-1"],
800
+ "paint": {
801
+ "fill-color": "#B7C3CB"
802
+ }
803
+ },
804
+ {
805
+ "id": "units-fill",
806
+ "type": "fill",
807
+ "source": "indoor-data",
632
808
  "minzoom": 16.5,
633
- "filter": [
634
- "all",
635
- ["==", ["get", "featureType"], "UnitWalls"],
636
- ["!", ["has", "custom_height"]]
637
- ],
809
+ "filter": ["==", ["get", "featureType"], "Units"],
638
810
  "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": [
811
+ "fill-color": ["coalesce", ["get", "zoneColor"], "#f7f8fa"],
812
+ "fill-color-transition": { "duration": 350 },
813
+ "fill-opacity": [
672
814
  "interpolate",
673
815
  ["linear"],
674
816
  ["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
817
+ 15,
818
+ 0.85,
819
+ 17,
820
+ 0.92,
821
+ 19,
822
+ 1
823
+ ]
687
824
  }
688
825
  },
689
-
690
826
  {
691
- "id": "units-wall-custom-extrusion",
692
- "type": "fill-extrusion",
693
- "source": "unit-walls",
827
+ "id": "units-outline-2d",
828
+ "type": "line",
829
+ "source": "indoor-data",
694
830
  "minzoom": 16.5,
695
- "filter": ["has", "custom_height"],
831
+ "filter": ["==", ["get", "featureType"], "Units"],
832
+ "layout": {
833
+ "visibility": "visible",
834
+ "line-join": "round",
835
+ "line-cap": "round"
836
+ },
696
837
  "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
838
+ "line-color": "#ffffff",
839
+ "line-opacity": 0.9,
840
+ "line-width": ["interpolate", ["linear"], ["zoom"], 16, 0.8, 18, 1.4, 20, 2.2]
733
841
  }
734
842
  },
735
-
736
843
  {
737
- "id": "corridors-extrusion",
738
- "type": "fill-extrusion",
844
+ "id": "backofhouse-fill",
845
+ "type": "fill",
739
846
  "source": "indoor-data",
740
847
  "minzoom": 16.5,
741
- "filter": [
742
- "any",
743
- ["==", ["get", "featureType"], "Corridors"],
744
- ["==", ["get", "featureType"], "Corridor"]
745
- ],
746
- "layout": {
747
- "visibility": "none"
748
- },
848
+ "filter": ["==", ["get", "featureType"], "Back-of-house"],
749
849
  "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]
850
+ "fill-color": "#e6e6e2",
851
+ "fill-opacity": 1
754
852
  }
755
853
  },
756
854
 
757
855
  {
758
- "id": "backofhouse-extrusion",
759
- "type": "fill-extrusion",
856
+ "id": "backofhouse-outline-2d",
857
+ "type": "line",
760
858
  "source": "indoor-data",
761
859
  "minzoom": 16.5,
762
860
  "filter": ["==", ["get", "featureType"], "Back-of-house"],
861
+ "layout": {
862
+ "line-join": "round",
863
+ "line-cap": "round"
864
+ },
763
865
  "paint": {
764
- "fill-extrusion-color": "#D6D6CC",
765
- "fill-extrusion-height": [
866
+ "line-color": "#121213",
867
+ "line-width": [
766
868
  "interpolate",
767
869
  ["linear"],
768
870
  ["zoom"],
769
- 15.5,
770
- 0,
771
- 16.5,
772
- 2,
773
- 17.5,
774
- 3,
775
- 18.2,
776
- 3.2
871
+ 16,
872
+ 0.6,
873
+ 18,
874
+ 1.0,
875
+ 20,
876
+ 1.4
777
877
  ],
778
- "fill-extrusion-base": 0,
779
- "fill-extrusion-opacity": 1
878
+ "line-opacity": 1
780
879
  }
781
880
  },
782
881
 
783
882
  {
784
- "id": "restrooms-extrusion",
785
- "type": "fill-extrusion",
883
+ "id": "restrooms-fill",
884
+ "type": "fill",
786
885
  "source": "indoor-data",
787
886
  "minzoom": 16.5,
788
887
  "filter": ["==", ["get", "featureType"], "Restrooms"],
789
888
  "paint": {
790
- "fill-extrusion-color": "#5B8468",
791
- "fill-extrusion-height": [
889
+ "fill-color": "#5f9070",
890
+ "fill-opacity": 1
891
+ }
892
+ },
893
+ {
894
+ "id": "restrooms-outline-2d",
895
+ "type": "line",
896
+ "source": "indoor-data",
897
+ "minzoom": 16.5,
898
+ "filter": ["==", ["get", "featureType"], "Restrooms"],
899
+ "layout": {
900
+ "line-join": "round",
901
+ "line-cap": "round"
902
+ },
903
+ "paint": {
904
+ "line-color": "#ffffff",
905
+ "line-width": [
792
906
  "interpolate",
793
907
  ["linear"],
794
908
  ["zoom"],
795
- 15.5,
796
- 0,
797
- 16.5,
798
- 2,
799
- 17.5,
800
- 3,
801
- 18.2,
802
- 3.2
909
+ 16,
910
+ 0.6,
911
+ 18,
912
+ 1.0,
913
+ 20,
914
+ 1.4
803
915
  ],
804
- "fill-extrusion-base": 0,
805
- "fill-extrusion-opacity": 0.9
916
+ "line-opacity": 0.9
806
917
  }
807
918
  },
808
919
 
809
920
  {
810
- "id": "obstacles-extrusion",
811
- "type": "fill-extrusion",
921
+ "id": "obstacles-fill",
922
+ "type": "fill",
812
923
  "source": "indoor-data",
813
924
  "minzoom": 16.5,
814
925
  "filter": ["==", ["get", "featureType"], "Obstacles"],
815
926
  "paint": {
816
- "fill-extrusion-color": "#E8E9ED",
817
- "fill-extrusion-height": [
927
+ "fill-color": "#e8e9ed",
928
+ "fill-opacity": 1,
929
+ "fill-outline-color": "#7f7f7f"
930
+ }
931
+ },
932
+ {
933
+ "id": "obstacles-outline-2d",
934
+ "type": "line",
935
+ "source": "indoor-data",
936
+ "minzoom": 16.5,
937
+ "filter": ["==", ["get", "featureType"], "Obstacles"],
938
+ "layout": {
939
+ "line-join": "round",
940
+ "line-cap": "round"
941
+ },
942
+ "paint": {
943
+ "line-color": "#7f7f7f",
944
+ "line-width": [
818
945
  "interpolate",
819
946
  ["linear"],
820
947
  ["zoom"],
821
- 15.5,
822
- 0,
823
- 16.5,
824
- 0.8,
825
- 17.5,
826
- 1.5,
827
- 18.2,
828
- 2
948
+ 16,
949
+ 0.5,
950
+ 18,
951
+ 0.9,
952
+ 20,
953
+ 1.2
829
954
  ],
830
- "fill-extrusion-base": 0,
831
- "fill-extrusion-opacity": 1
955
+ "line-opacity": 1
832
956
  }
833
957
  },
834
958
 
835
959
  {
836
- "id": "escalators-stairs-elevators-extrusion",
837
- "type": "fill-extrusion",
960
+ "id": "escalators-stairs-elevators",
961
+ "type": "fill",
838
962
  "source": "indoor-data",
839
963
  "minzoom": 16.5,
840
964
  "filter": [
@@ -843,49 +967,1115 @@
843
967
  ["literal", ["Escalators", "Stairs", "Elevators"]]
844
968
  ],
845
969
  "paint": {
846
- "fill-extrusion-color": "#6A8799",
847
- "fill-extrusion-height": [
970
+ "fill-color": "#a9aeb1",
971
+ "fill-opacity": 1,
972
+ "fill-outline-color": "#053851"
973
+ }
974
+ },
975
+ {
976
+ "id": "escalators-stairs-elevators-outline-2d",
977
+ "type": "line",
978
+ "source": "indoor-data",
979
+ "minzoom": 16.5,
980
+ "filter": [
981
+ "in",
982
+ ["get", "featureType"],
983
+ ["literal", ["Escalators", "Stairs", "Elevators"]]
984
+ ],
985
+ "layout": {
986
+ "line-join": "round",
987
+ "line-cap": "round"
988
+ },
989
+ "paint": {
990
+ "line-color": "#4A4C4D",
991
+ "line-width": [
848
992
  "interpolate",
849
993
  ["linear"],
850
994
  ["zoom"],
851
- 15.5,
852
- 0,
853
- 16.5,
854
- 2,
855
- 17.5,
856
- 3,
857
- 18.2,
858
- 3.2
995
+ 16,
996
+ 1,
997
+ 18,
998
+ 1.5,
999
+ 20,
1000
+ 4
859
1001
  ],
860
- "fill-extrusion-base": 0,
861
- "fill-extrusion-vertical-gradient": true,
862
- "fill-extrusion-opacity": 0.9
1002
+ "line-opacity": 1
863
1003
  }
864
1004
  },
865
1005
 
1006
+
866
1007
  {
867
- "id": "interior-parking-extrusion",
868
- "type": "fill-extrusion",
1008
+ "id": "kiosks-fill",
1009
+ "type": "fill",
869
1010
  "source": "indoor-data",
870
1011
  "minzoom": 16.5,
871
- "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
1012
+ "filter": ["==", ["get", "featureType"], "Kiosks"],
872
1013
  "paint": {
873
- "fill-extrusion-color": "#757575",
874
- "fill-extrusion-height": [
1014
+ "fill-color": "#ffe396",
1015
+ "fill-opacity": 0.7
1016
+ }
1017
+ },
1018
+
1019
+ {
1020
+ "id": "pattern-lounge",
1021
+ "type": "fill",
1022
+ "source": "indoor-data",
1023
+ "minzoom": 16.5,
1024
+ "filter": ["==", ["get", "featureType"], "Pattern-Lounge"],
1025
+ "paint": {
1026
+ "fill-color": "#ddd2e0",
1027
+ "fill-opacity": 1
1028
+ }
1029
+ },
1030
+
1031
+ {
1032
+ "id": "pattern-indoor-foodcourt",
1033
+ "type": "fill",
1034
+ "source": "indoor-data",
1035
+ "minzoom": 16.5,
1036
+ "filter": ["==", ["get", "featureType"], "Pattern-Indoor-FoodCourt-Seating"],
1037
+ "paint": {
1038
+ "fill-color": "#f3e4c4",
1039
+ "fill-opacity": 1
1040
+ }
1041
+ },
1042
+
1043
+ {
1044
+ "id": "corridors-outline",
1045
+ "type": "line",
1046
+ "source": "indoor-data",
1047
+ "minzoom": 16.5,
1048
+ "filter": [
1049
+ "any",
1050
+ ["==", ["get", "featureType"], "Corridors"],
1051
+ ["==", ["get", "featureType"], "Corridor"]
1052
+ ],
1053
+ "paint": {
1054
+ "line-color": "#343a40",
1055
+ "line-width": [
875
1056
  "interpolate",
876
1057
  ["linear"],
877
1058
  ["zoom"],
878
1059
  15,
879
- 0,
880
- 16,
881
- 2,
1060
+ 0.5,
1061
+ 18,
1062
+ 1,
1063
+ 20,
1064
+ 1.5
1065
+ ]
1066
+ }
1067
+ },
1068
+
1069
+ {
1070
+ "id": "boundary-outline",
1071
+ "type": "line",
1072
+ "source": "indoor-data",
1073
+ "minzoom": 16.5,
1074
+ "filter": ["==", ["get", "featureType"], "Boundary"],
1075
+ "paint": {
1076
+ "line-color": "#9aa4b0",
1077
+ "line-width": [
1078
+ "interpolate",
1079
+ ["linear"],
1080
+ ["zoom"],
1081
+ 12,
1082
+ 1.5,
1083
+ 15,
1084
+ 1.8,
1085
+ 18,
1086
+ 2,
1087
+ 20,
1088
+ 2.2
1089
+ ],
1090
+ "line-opacity": [
1091
+ "interpolate",
1092
+ ["linear"],
1093
+ ["zoom"],
1094
+ 12,
1095
+ 0.4,
882
1096
  17,
883
- 3,
1097
+ 0.5,
884
1098
  18,
885
- 4
1099
+ 0.55
1100
+ ]
1101
+ }
1102
+ },
1103
+ {
1104
+ "id": "building-roof-outline",
1105
+ "type": "line",
1106
+ "source": "indoor-data",
1107
+ "minzoom": 16.5,
1108
+ "filter": ["==", ["get", "featureType"], "Boundary"],
1109
+ "layout": {
1110
+ "line-join": "round",
1111
+ "line-cap": "round"
1112
+ },
1113
+ "paint": {
1114
+ "line-color": "#162e51",
1115
+ "line-width": [
1116
+ "interpolate",
1117
+ ["linear"],
1118
+ ["zoom"],
1119
+ 15,
1120
+ 1.5,
1121
+ 18,
1122
+ 2,
1123
+ 20,
1124
+ 2.5
1125
+ ],
1126
+ "line-opacity": 0.55
1127
+ }
1128
+ },
1129
+ {
1130
+ "id": "interior-parking-lots",
1131
+ "type": "fill",
1132
+ "source": "indoor-data",
1133
+ "minzoom": 16.5,
1134
+ "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
1135
+ "paint": {
1136
+ "fill-color": "#757575",
1137
+ "fill-opacity": 1
1138
+ }
1139
+ },
1140
+ {
1141
+ "id": "interior-parking-lots-outline",
1142
+ "type": "line",
1143
+ "source": "indoor-data",
1144
+ "minzoom": 16.5,
1145
+ "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
1146
+ "paint": {
1147
+ "line-color": "#616161",
1148
+ "line-width": 1.5
1149
+ }
1150
+ },
1151
+ {
1152
+ "id": "building-extrusion",
1153
+ "type": "fill-extrusion",
1154
+ "source": "indoor-data",
1155
+ "maxzoom": 16.5,
1156
+ "filter": ["==", ["get", "featureType"], "Boundary"],
1157
+ "paint": {
1158
+ "fill-extrusion-color": "#162e51",
1159
+ "fill-extrusion-height": 15,
1160
+ "fill-extrusion-base": 0,
1161
+ "fill-extrusion-opacity": 1
1162
+ }
1163
+ },
1164
+ {
1165
+ "id": "units-3d-extrusion",
1166
+ "type": "fill-extrusion",
1167
+ "source": "indoor-data",
1168
+ "minzoom": 16.5,
1169
+ "filter": ["==", ["get", "featureType"], "UnitBlock"],
1170
+ "paint": {
1171
+ "fill-extrusion-color": [
1172
+ "coalesce",
1173
+ ["get", "zoneColor"],
1174
+ [
1175
+ "match",
1176
+ ["get", "category"],
1177
+ "healthcare", "#73b3e7",
1178
+ "surgical", "#73b3e7",
1179
+ "waiting", "#73b3e7",
1180
+ "diagnostic", "#97d4ea",
1181
+ "amenities", "#97d4ea",
1182
+ "emergency", "#f2938c",
1183
+ "retail", "#fee685",
1184
+ "fnb", "#fee685",
1185
+ "admin", "#dfe1e2",
1186
+ "staff", "#dfe1e2",
1187
+ "security", "#dfe1e2",
1188
+ "#e8ecf1"
1189
+ ]
1190
+ ],
1191
+ "fill-extrusion-color-transition": { "duration": 350 },
1192
+ "fill-extrusion-height": [
1193
+ "interpolate",
1194
+ ["linear"],
1195
+ ["zoom"],
1196
+ 16.5, 0,
1197
+ 18, 2.2
1198
+ ],
1199
+ "fill-extrusion-base": 0,
1200
+ "fill-extrusion-vertical-gradient": true,
1201
+ "fill-extrusion-opacity": 1
1202
+ }
1203
+ },
1204
+ {
1205
+ "id": "unit-highlight-fill",
1206
+ "type": "fill",
1207
+ "source": "poi-highlight-data",
1208
+ "minzoom": 16.5,
1209
+ "filter": ["==", ["geometry-type"], "Polygon"],
1210
+ "paint": {
1211
+ "fill-color": [
1212
+ "coalesce",
1213
+ ["get", "zoneColor"],
1214
+ [
1215
+ "match",
1216
+ ["get", "category"],
1217
+ "healthcare", "#73b3e7",
1218
+ "surgical", "#73b3e7",
1219
+ "waiting", "#73b3e7",
1220
+ "diagnostic", "#97d4ea",
1221
+ "amenities", "#97d4ea",
1222
+ "emergency", "#f2938c",
1223
+ "retail", "#fee685",
1224
+ "fnb", "#fee685",
1225
+ "admin", "#dfe1e2",
1226
+ "staff", "#dfe1e2",
1227
+ "security", "#dfe1e2",
1228
+ "#005ea2"
1229
+ ]
1230
+ ],
1231
+ "fill-color-transition": { "duration": 350 },
1232
+ "fill-opacity": [
1233
+ "interpolate",
1234
+ ["linear"],
1235
+ ["zoom"],
1236
+ 15,
1237
+ 0.85,
1238
+ 17,
1239
+ 0.92,
1240
+ 19,
1241
+ 0.95
1242
+ ]
1243
+ }
1244
+ },
1245
+ {
1246
+ "id": "unit-highlight-block",
1247
+ "type": "fill-extrusion",
1248
+ "source": "poi-highlight-data",
1249
+ "minzoom": 16.5,
1250
+ "filter": ["==", ["geometry-type"], "Polygon"],
1251
+ "paint": {
1252
+ "fill-extrusion-color": [
1253
+ "coalesce",
1254
+ ["get", "zoneColor"],
1255
+ [
1256
+ "match",
1257
+ ["get", "category"],
1258
+ "healthcare", "#73b3e7",
1259
+ "surgical", "#73b3e7",
1260
+ "waiting", "#73b3e7",
1261
+ "diagnostic", "#97d4ea",
1262
+ "amenities", "#97d4ea",
1263
+ "emergency", "#f2938c",
1264
+ "retail", "#fee685",
1265
+ "fnb", "#fee685",
1266
+ "admin", "#dfe1e2",
1267
+ "staff", "#dfe1e2",
1268
+ "security", "#dfe1e2",
1269
+ "#005ea2"
1270
+ ]
1271
+ ],
1272
+ "fill-extrusion-color-transition": { "duration": 350 },
1273
+ "fill-extrusion-height": [
1274
+ "interpolate",
1275
+ ["linear"],
1276
+ ["zoom"],
1277
+ 16.5, 0,
1278
+ 18, 2.6
1279
+ ],
1280
+ "fill-extrusion-base": 0,
1281
+ "fill-extrusion-vertical-gradient": true,
1282
+ "fill-extrusion-opacity": 1
1283
+ }
1284
+ },
1285
+
1286
+
1287
+
1288
+
1289
+ {
1290
+ "id": "backofhouse-extrusion",
1291
+ "type": "fill-extrusion",
1292
+ "source": "indoor-data",
1293
+ "minzoom": 16.5,
1294
+ "filter": ["==", ["get", "featureType"], "Back-of-houseBlock"],
1295
+ "paint": {
1296
+ "fill-extrusion-color": "#e6e6e2",
1297
+ "fill-extrusion-height": [
1298
+ "interpolate",
1299
+ ["linear"],
1300
+ ["zoom"],
1301
+ 15.5,
1302
+ 0,
1303
+ 16.5,
1304
+ 1,
1305
+ 17.5,
1306
+ 1.4,
1307
+ 18.2,
1308
+ 1.6
1309
+ ],
1310
+ "fill-extrusion-base": 0,
1311
+ "fill-extrusion-opacity": 1
1312
+ }
1313
+ },
1314
+
1315
+ {
1316
+ "id": "restrooms-extrusion",
1317
+ "type": "fill-extrusion",
1318
+ "source": "indoor-data",
1319
+ "minzoom": 16.5,
1320
+ "filter": ["==", ["get", "featureType"], "RestroomsBlock"],
1321
+ "paint": {
1322
+ "fill-extrusion-color": "#5f9070",
1323
+ "fill-extrusion-height": [
1324
+ "interpolate",
1325
+ ["linear"],
1326
+ ["zoom"],
1327
+ 15.5,
1328
+ 0,
1329
+ 16.5,
1330
+ 1,
1331
+ 17.5,
1332
+ 1.4,
1333
+ 18.2,
1334
+ 1.6
1335
+ ],
1336
+ "fill-extrusion-base": 0,
1337
+ "fill-extrusion-opacity": 0.95
1338
+ }
1339
+ },
1340
+
1341
+ {
1342
+ "id": "obstacles-extrusion",
1343
+ "type": "fill-extrusion",
1344
+ "source": "indoor-data",
1345
+ "minzoom": 16.5,
1346
+ "filter": ["==", ["get", "featureType"], "ObstaclesBlock"],
1347
+ "paint": {
1348
+ "fill-extrusion-color": "#E8E9ED",
1349
+ "fill-extrusion-height": [
1350
+ "interpolate",
1351
+ ["linear"],
1352
+ ["zoom"],
1353
+ 15.5,
1354
+ 0,
1355
+ 16.5,
1356
+ 0.4,
1357
+ 17.5,
1358
+ 0.6,
1359
+ 18.2,
1360
+ 0.8
1361
+ ],
1362
+ "fill-extrusion-base": 0,
1363
+ "fill-extrusion-opacity": 1
1364
+ }
1365
+ },
1366
+
1367
+ {
1368
+ "id": "escalators-stairs-elevators-extrusion",
1369
+ "type": "fill-extrusion",
1370
+ "source": "indoor-data",
1371
+ "minzoom": 16.5,
1372
+ "filter": [
1373
+ "in",
1374
+ ["get", "featureType"],
1375
+ ["literal", ["EscalatorsBlock", "StairsBlock", "ElevatorsBlock"]]
1376
+ ],
1377
+ "paint": {
1378
+ "fill-extrusion-color": "#a9aeb1",
1379
+ "fill-extrusion-height": [
1380
+ "interpolate",
1381
+ ["linear"],
1382
+ ["zoom"],
1383
+ 15.5,
1384
+ 0,
1385
+ 16.5,
1386
+ 1,
1387
+ 17.5,
1388
+ 1.4,
1389
+ 18.2,
1390
+ 1.6
1391
+ ],
1392
+ "fill-extrusion-base": 0,
1393
+ "fill-extrusion-vertical-gradient": true,
1394
+ "fill-extrusion-opacity": 0.9
1395
+ }
1396
+ },
1397
+
1398
+ {
1399
+ "id": "interior-parking-extrusion",
1400
+ "type": "fill-extrusion",
1401
+ "source": "indoor-data",
1402
+ "minzoom": 16.5,
1403
+ "filter": ["==", ["get", "featureType"], "Interior-ParkingLots"],
1404
+ "paint": {
1405
+ "fill-extrusion-color": "#757575",
1406
+ "fill-extrusion-height": [
1407
+ "interpolate",
1408
+ ["linear"],
1409
+ ["zoom"],
1410
+ 15,
1411
+ 0,
1412
+ 16,
1413
+ 1,
1414
+ 17,
1415
+ 1.4,
1416
+ 18,
1417
+ 1.6
1418
+ ],
1419
+ "fill-extrusion-base": 0,
1420
+ "fill-extrusion-opacity": 0.85
1421
+ }
1422
+ },
1423
+ {
1424
+ "id": "map-labels",
1425
+ "type": "symbol",
1426
+ "source": "map-labels-data",
1427
+ "minzoom": 15.5,
1428
+ "filter": ["!", ["in", "Building", ["get", "name"]]],
1429
+ "layout": {
1430
+ "symbol-sort-key": 10,
1431
+ "text-field": ["get", "name"],
1432
+ "text-size": [
1433
+ "interpolate", ["linear"], ["zoom"],
1434
+ 15.5, 12,
1435
+ 16.5, 15,
1436
+ 18, 18,
1437
+ 20, 20
1438
+ ],
1439
+ "text-font": ["Noto Sans Bold"],
1440
+ "text-letter-spacing": 0.04,
1441
+ "text-max-width": 10,
1442
+ "text-anchor": "center",
1443
+ "text-rotate": ["get", "rotation"],
1444
+ "text-rotation-alignment": "viewport",
1445
+ "text-allow-overlap": false,
1446
+ "text-padding": 4
1447
+ },
1448
+ "paint": {
1449
+ "text-color": "#3d4551",
1450
+ "text-halo-color": "#FFFFFF",
1451
+ "text-halo-width": 1.4,
1452
+ "text-halo-blur": 0.5
1453
+ }
1454
+ },
1455
+ {
1456
+ "id": "map-labels-buildings",
1457
+ "type": "symbol",
1458
+ "source": "map-labels-data",
1459
+ "minzoom": 17,
1460
+ "filter": [
1461
+ "all",
1462
+ ["in", "Building", ["get", "name"]]
1463
+ ],
1464
+ "layout": {
1465
+ "symbol-sort-key": 0,
1466
+ "icon-image": "label-building",
1467
+ "icon-size": [
1468
+ "interpolate", ["linear"], ["zoom"],
1469
+ 15.5, 0.5,
1470
+ 18, 0.7,
1471
+ 20, 1
1472
+ ],
1473
+ "icon-allow-overlap": true,
1474
+ "icon-ignore-placement": false,
1475
+ "text-field": ["step", ["zoom"], "", 14.5, ["get", "name"]],
1476
+ "text-size": [
1477
+ "interpolate", ["linear"], ["zoom"],
1478
+ 15, 14,
1479
+ 18, 16,
1480
+ 20, 18
1481
+ ],
1482
+ "text-variable-anchor": ["bottom", "left", "right", "top"],
1483
+ "text-variable-anchor-offset": ["bottom", [0, -1.1], "left", [1.1, 0], "right", [-1.1, 0], "top", [0, 1.1]],
1484
+ "text-optional": false,
1485
+ "text-font": ["Noto Sans Bold"],
1486
+ "text-letter-spacing": 0.04,
1487
+ "text-max-width": 8,
1488
+
1489
+ "text-rotation-alignment": "viewport",
1490
+ "text-allow-overlap": true,
1491
+ "text-padding": 4
1492
+ },
1493
+ "paint": {
1494
+ "text-color": "#162e51",
1495
+ "text-halo-color": "#fffffe",
1496
+ "text-halo-width": 1.4,
1497
+ "text-halo-blur": 0.5
1498
+ }
1499
+ },
1500
+ {
1501
+ "id": "venue-marker",
1502
+ "type": "symbol",
1503
+ "source": "venue-marker-data",
1504
+ "minzoom": 10,
1505
+ "maxzoom": 14.5,
1506
+ "layout": {
1507
+ "icon-image": "marker-venue",
1508
+ "icon-size": 0.75,
1509
+ "icon-allow-overlap": true,
1510
+ "icon-ignore-placement": false,
1511
+ "text-field": ["get", "name"],
1512
+ "text-size": 14,
1513
+ "text-anchor": "top",
1514
+ "text-offset": [0, 1.4],
1515
+ "text-font": ["Noto Sans Bold"],
1516
+ "text-letter-spacing": 0.04,
1517
+ "text-max-width": 10,
1518
+ "text-allow-overlap": true,
1519
+ "text-padding": 4
1520
+ },
1521
+ "paint": {
1522
+ "text-color": "#162e51",
1523
+ "text-halo-color": "#fffffe",
1524
+ "text-halo-width": 1.4,
1525
+ "text-halo-blur": 0.5
1526
+ }
1527
+ },
1528
+
1529
+ {
1530
+ "id": "poi-entrance-exit-icons",
1531
+ "type": "symbol",
1532
+ "source": "poi-data",
1533
+ "filter": ["==", ["get", "amenityCategory"], "entrance"],
1534
+ "minzoom": 15,
1535
+ "layout": {
1536
+ "symbol-sort-key": ["get", "rank"],
1537
+ "icon-image": ["get", "iconId"],
1538
+ "icon-size": [
1539
+ "interpolate", ["exponential", 1.3], ["zoom"],
1540
+ 15, 0.3,
1541
+ 16, 0.5,
1542
+ 18, 0.6,
1543
+ 20, 0.75,
1544
+ 22, 0.9
1545
+ ],
1546
+ "icon-optional": false,
1547
+ "icon-rotation-alignment": "viewport",
1548
+ "icon-pitch-alignment": "viewport",
1549
+ "icon-allow-overlap":true,
1550
+ "text-field": ["get", "name"],
1551
+ "text-size": [
1552
+ "interpolate", ["linear"], ["zoom"],
1553
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1554
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1555
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1556
+ ],
1557
+
1558
+ "text-anchor": "top",
1559
+ "text-optional": true,
1560
+ "text-padding": 2,
1561
+ "text-font": ["Noto Sans Bold"],
1562
+ "text-rotation-alignment": "viewport"
1563
+ },
1564
+ "paint": {
1565
+ "text-color": "#242930",
1566
+ "text-halo-color": "#FFFFFF",
1567
+ "text-halo-width": 1.5,
1568
+ "text-halo-blur": 1,
1569
+ "icon-translate": [0, -20],
1570
+ "icon-translate-anchor": "viewport"
1571
+ }
1572
+ },
1573
+ {
1574
+ "id": "poi-parking-icons",
1575
+ "type": "symbol",
1576
+ "source": "poi-data",
1577
+ "filter": ["==", ["get", "amenityCategory"], "parking"],
1578
+ "minzoom": 14,
1579
+ "layout": {
1580
+ "symbol-sort-key": ["get", "rank"],
1581
+ "icon-image": ["get", "iconId"],
1582
+ "icon-size": [
1583
+ "interpolate", ["exponential", 1.3], ["zoom"],
1584
+ 15, 0.3,
1585
+ 16, 0.5,
1586
+ 18, 0.6,
1587
+ 20, 0.75,
1588
+ 22, 0.9
1589
+ ],
1590
+ "icon-allow-overlap": true,
1591
+ "icon-optional": false,
1592
+ "icon-rotation-alignment": "viewport",
1593
+ "icon-pitch-alignment": "viewport",
1594
+
1595
+ "text-field": ["get", "name"],
1596
+ "text-size": [
1597
+ "interpolate", ["linear"], ["zoom"],
1598
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1599
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1600
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1601
+ ],
1602
+ "text-offset": [0, 1.3],
1603
+ "text-anchor": "top",
1604
+ "text-optional": true,
1605
+ "text-padding": 4,
1606
+ "text-font": ["Noto Sans Bold"],
1607
+ "text-rotation-alignment": "viewport"
1608
+ },
1609
+ "paint": {
1610
+ "text-color": "#242930",
1611
+ "text-halo-color": "#FFFFFF",
1612
+ "text-halo-width": 1.5,
1613
+ "text-halo-blur": 1,
1614
+ "icon-translate": [0, -20],
1615
+ "icon-translate-anchor": "viewport"
1616
+ }
1617
+ },
1618
+ {
1619
+ "id": "poi-bus-icons",
1620
+ "type": "symbol",
1621
+ "source": "poi-data",
1622
+ "filter": ["==", ["get", "amenityCategory"], "bus"],
1623
+ "minzoom": 14,
1624
+ "layout": {
1625
+ "symbol-sort-key": ["get", "rank"],
1626
+ "icon-image": ["get", "iconId"],
1627
+ "icon-size": [
1628
+ "interpolate", ["exponential", 1.3], ["zoom"],
1629
+ 15, 0.3,
1630
+ 16, 0.5,
1631
+ 18, 0.6,
1632
+ 20, 0.75,
1633
+ 22, 0.9
1634
+ ],
1635
+ "icon-allow-overlap": false,
1636
+ "icon-padding": [
1637
+ "interpolate", ["linear"], ["zoom"],
1638
+ 15, 8,
1639
+ 17, 4,
1640
+ 19, 2
1641
+ ],
1642
+ "icon-optional": false,
1643
+ "icon-rotation-alignment": "viewport",
1644
+ "icon-pitch-alignment": "viewport",
1645
+
1646
+ "text-field": ["get", "name"],
1647
+ "text-size": [
1648
+ "interpolate", ["linear"], ["zoom"],
1649
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1650
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1651
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1652
+ ],
1653
+ "text-offset": [0, 1.3],
1654
+ "text-anchor": "top",
1655
+ "text-optional": true,
1656
+ "text-padding": 4,
1657
+ "text-font": ["Noto Sans Bold"],
1658
+ "text-rotation-alignment": "viewport"
1659
+ },
1660
+ "paint": {
1661
+ "text-color": "#242930",
1662
+ "text-halo-color": "#FFFFFF",
1663
+ "text-halo-width": 1.5,
1664
+ "text-halo-blur": 1,
1665
+ "icon-translate": [0, -20],
1666
+ "icon-translate-anchor": "viewport"
1667
+ }
1668
+ },
1669
+ {
1670
+ "id": "poi-connector-icons",
1671
+ "type": "symbol",
1672
+ "source": "poi-data",
1673
+ "filter": ["==", ["get", "amenityCategory"], "connector"],
1674
+ "minzoom": 16.5,
1675
+ "layout": {
1676
+ "symbol-sort-key": ["get", "rank"],
1677
+ "icon-image": ["get", "iconId"],
1678
+ "icon-size": [
1679
+ "interpolate", ["exponential", 1.3], ["zoom"],
1680
+ 15, 0.3,
1681
+ 16, 0.5,
1682
+ 18, 0.6,
1683
+ 20, 0.75,
1684
+ 22, 0.9
1685
+ ],
1686
+ "icon-allow-overlap": false,
1687
+ "icon-padding": [
1688
+ "interpolate", ["linear"], ["zoom"],
1689
+ 15, 8,
1690
+ 17, 4,
1691
+ 19, 2
1692
+ ],
1693
+ "icon-optional": false,
1694
+ "icon-rotation-alignment": "viewport",
1695
+ "icon-pitch-alignment": "viewport",
1696
+
1697
+ "text-field": ["get", "name"],
1698
+ "text-size": [
1699
+ "interpolate", ["linear"], ["zoom"],
1700
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1701
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1702
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1703
+ ],
1704
+ "text-offset": [0, 1.3],
1705
+ "text-anchor": "top",
1706
+ "text-optional": true,
1707
+ "text-padding": 4,
1708
+ "text-font": ["Noto Sans Bold"],
1709
+ "text-rotation-alignment": "viewport"
1710
+ },
1711
+ "paint": {
1712
+ "text-color": "#242930",
1713
+ "text-halo-color": "#FFFFFF",
1714
+ "text-halo-width": 1.5,
1715
+ "text-halo-blur": 1,
1716
+ "icon-translate": [0, -20],
1717
+ "icon-translate-anchor": "viewport"
1718
+ }
1719
+ },
1720
+ {
1721
+ "id": "poi-information-icons",
1722
+ "type": "symbol",
1723
+ "source": "poi-data",
1724
+ "filter": ["==", ["get", "amenityCategory"], "information"],
1725
+ "minzoom": 16.5,
1726
+ "layout": {
1727
+ "symbol-sort-key": ["get", "rank"],
1728
+ "icon-image": ["get", "iconId"],
1729
+ "icon-size": [
1730
+ "interpolate", ["exponential", 1.3], ["zoom"],
1731
+ 15, 0.3,
1732
+ 16, 0.5,
1733
+ 18, 0.6,
1734
+ 20, 0.75,
1735
+ 22, 0.9
1736
+ ],
1737
+ "icon-allow-overlap": false,
1738
+ "icon-padding": [
1739
+ "interpolate", ["linear"], ["zoom"],
1740
+ 15, 8,
1741
+ 17, 4,
1742
+ 19, 2
1743
+ ],
1744
+ "icon-optional": false,
1745
+ "icon-rotation-alignment": "viewport",
1746
+ "icon-pitch-alignment": "viewport",
1747
+
1748
+ "text-field": ["get", "name"],
1749
+ "text-size": [
1750
+ "interpolate", ["linear"], ["zoom"],
1751
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1752
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1753
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1754
+ ],
1755
+ "text-offset": [0, 1.3],
1756
+ "text-anchor": "top",
1757
+ "text-optional": true,
1758
+ "text-padding": 4,
1759
+ "text-font": ["Noto Sans Bold"],
1760
+ "text-rotation-alignment": "viewport"
1761
+ },
1762
+ "paint": {
1763
+ "text-color": "#242930",
1764
+ "text-halo-color": "#FFFFFF",
1765
+ "text-halo-width": 1.5,
1766
+ "text-halo-blur": 1,
1767
+ "icon-translate": [0, -20],
1768
+ "icon-translate-anchor": "viewport"
1769
+ }
1770
+ },
1771
+ {
1772
+ "id": "poi-other-amenity-icons",
1773
+ "type": "symbol",
1774
+ "source": "poi-data",
1775
+ "filter": [
1776
+ "all",
1777
+ ["==", ["get", "amenityCategory"], "other"],
1778
+ ["<=", ["get", "rank"], ["step", ["zoom"], 0, 17, 2, 18, 3]]
1779
+ ],
1780
+ "minzoom": 16.5,
1781
+ "layout": {
1782
+ "symbol-sort-key": ["get", "rank"],
1783
+ "icon-image": ["get", "iconId"],
1784
+ "icon-size": [
1785
+ "interpolate", ["exponential", 1.3], ["zoom"],
1786
+ 15, 0.3,
1787
+ 16, 0.5,
1788
+ 18, 0.6,
1789
+ 20, 0.75,
1790
+ 22, 0.9
1791
+ ],
1792
+ "icon-allow-overlap": false,
1793
+ "icon-padding": [
1794
+ "interpolate", ["linear"], ["zoom"],
1795
+ 15, 8,
1796
+ 17, 4,
1797
+ 19, 2
1798
+ ],
1799
+ "icon-optional": false,
1800
+ "icon-rotation-alignment": "viewport",
1801
+ "icon-pitch-alignment": "viewport",
1802
+
1803
+ "text-field": ["get", "name"],
1804
+ "text-size": [
1805
+ "interpolate", ["linear"], ["zoom"],
1806
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
1807
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
1808
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1809
+ ],
1810
+ "text-offset": [0, 1.3],
1811
+ "text-anchor": "top",
1812
+ "text-optional": true,
1813
+ "text-padding": 4,
1814
+ "text-font": ["Noto Sans Bold"],
1815
+ "text-rotation-alignment": "viewport"
1816
+ },
1817
+ "paint": {
1818
+ "text-color": "#242930",
1819
+ "text-halo-color": "#FFFFFF",
1820
+ "text-halo-width": 1.5,
1821
+ "text-halo-blur": 1,
1822
+ "icon-translate": [0, -20],
1823
+ "icon-translate-anchor": "viewport"
1824
+ }
1825
+ },
1826
+ {
1827
+ "id": "poi-restroom-group-icons",
1828
+ "type": "symbol",
1829
+ "source": "restroom-group-data",
1830
+ "minzoom": 16.5,
1831
+ "layout": {
1832
+ "symbol-sort-key": 0,
1833
+ "icon-image": "material-wc",
1834
+ "icon-size": [
1835
+ "interpolate", ["exponential", 1.3], ["zoom"],
1836
+ 15, 0.3,
1837
+ 16, 0.5,
1838
+ 18, 0.6,
1839
+ 20, 0.75,
1840
+ 22, 0.9
1841
+ ],
1842
+ "icon-allow-overlap": false,
1843
+ "icon-padding": [
1844
+ "interpolate", ["linear"], ["zoom"],
1845
+ 15, 8,
1846
+ 17, 4,
1847
+ 19, 2
1848
+ ],
1849
+ "icon-optional": false,
1850
+ "icon-rotation-alignment": "viewport",
1851
+ "icon-pitch-alignment": "viewport"
1852
+ },
1853
+ "paint": {
1854
+ "icon-translate": [0, -20],
1855
+ "icon-translate-anchor": "viewport"
1856
+ }
1857
+ },
1858
+ {
1859
+ "id": "poi-amenity-instance-labels",
1860
+ "type": "symbol",
1861
+ "source": "poi-data",
1862
+ "filter": ["all", ["==", ["get", "poiType"], "amenity"], ["has", "instanceName"]],
1863
+
1864
+ "layout": {
1865
+ "symbol-sort-key": ["get", "rank"],
1866
+ "text-field": ["get", "instanceName"],
1867
+ "text-size": [
1868
+ "interpolate", ["linear"], ["zoom"],
1869
+ 16, 14,
1870
+ 19, 15,
1871
+ 22, 17
1872
+ ],
1873
+ "text-offset": [
1874
+ "interpolate", ["linear"], ["zoom"],
1875
+ 16, ["literal", [0, 0.25]],
1876
+ 17, ["literal", [0, 0.15]],
1877
+ 19, ["literal", [0, 0.25]],
1878
+ 20, ["literal", [0, 0.45]],
1879
+ 22, ["literal", [0, 0.85]]
1880
+ ],
1881
+ "text-anchor": "top",
1882
+ "text-optional": true,
1883
+ "text-padding": 4,
1884
+ "text-font": ["Noto Sans Bold"],
1885
+ "text-rotation-alignment": "viewport"
1886
+ },
1887
+ "paint": {
1888
+ "text-color": "#0f1114",
1889
+ "text-halo-color": "#ffffff",
1890
+ "text-halo-width": 1.5,
1891
+ "text-halo-blur": 0.1
1892
+ }
1893
+ },
1894
+ {
1895
+ "id": "poi-destination-dots",
1896
+ "type": "symbol",
1897
+ "source": "poi-destination-cluster-data",
1898
+ "filter": ["!", ["has", "point_count"]],
1899
+ "minzoom": 16.5,
1900
+ "maxzoom": 18.25,
1901
+ "layout": {
1902
+ "icon-image": "destination-dot",
1903
+ "icon-size": [
1904
+ "interpolate", ["linear"], ["zoom"],
1905
+ 14, 0.1,
1906
+ 16, 0.8,
1907
+ 17.30, 0.8,
1908
+ 18, 0.5,
1909
+ 20, 0.8
1910
+ ],
1911
+ "icon-overlap": "cooperative",
1912
+ "icon-ignore-placement": false,
1913
+ "icon-padding": 0,
1914
+ "icon-rotation-alignment": "viewport",
1915
+ "icon-pitch-alignment": "viewport"
1916
+ }
1917
+ },
1918
+ {
1919
+ "id": "poi-destination-cluster-bubbles",
1920
+ "type": "symbol",
1921
+ "source": "poi-destination-cluster-data",
1922
+ "filter": ["has", "point_count"],
1923
+ "minzoom": 16.5,
1924
+ "maxzoom": 18.25,
1925
+ "layout": {
1926
+ "icon-image": "destination-cluster-dot",
1927
+ "icon-size": [
1928
+ "step", ["get", "point_count"],
1929
+ 1.3,
1930
+ 10, 1.5,
1931
+ 25, 1.7
1932
+ ],
1933
+ "icon-overlap": "cooperative",
1934
+ "icon-ignore-placement": false,
1935
+ "icon-padding": 0,
1936
+ "icon-rotation-alignment": "viewport",
1937
+ "icon-pitch-alignment": "viewport",
1938
+ "text-field": ["get", "point_count_abbreviated"],
1939
+ "text-size": 18,
1940
+ "text-font": ["Noto Sans Bold"],
1941
+ "text-overlap": "always",
1942
+ "text-ignore-placement": true,
1943
+ "text-rotation-alignment": "viewport",
1944
+ "text-pitch-alignment": "viewport"
1945
+ },
1946
+ "paint": {
1947
+ "text-color": "#ffffff"
1948
+ }
1949
+ },
1950
+ {
1951
+ "id": "poi-destination-labels",
1952
+ "type": "symbol",
1953
+ "source": "poi-data",
1954
+ "filter": [
1955
+ "all",
1956
+ ["==", ["get", "poiType"], "destination"],
1957
+ ["==", ["get", "showLabel"], true],
1958
+ ["any", ["!", ["has", "groupSize"]], ["has", "isGroupLead"]]
1959
+ ],
1960
+ "layout": {
1961
+ "symbol-sort-key": 0,
1962
+ "icon-image": "destination-dot",
1963
+ "icon-size": [
1964
+ "interpolate", ["linear"], ["zoom"],
1965
+ 14, 0.1,
1966
+ 16, 0.8,
1967
+ 17.30, 0.8,
1968
+ 18, 0.5,
1969
+ 20, 0.8
1970
+ ],
1971
+ "icon-overlap": "cooperative",
1972
+ "icon-ignore-placement": false,
1973
+ "icon-padding": 0,
1974
+ "icon-optional": false,
1975
+ "icon-rotation-alignment": "viewport",
1976
+ "icon-pitch-alignment": "viewport",
1977
+ "text-field": ["get", "name"],
1978
+ "text-size": 16,
1979
+ "text-variable-anchor-offset": [
1980
+ "case", ["has", "groupSize"],
1981
+ ["literal", ["top", [0, 1], "right", [-0.9, 0], "bottom", [0, -1], "left", [0.9, 0]]],
1982
+ ["literal", ["top", [0, 0.5], "right", [-0.5, 0], "bottom", [0, -0.5], "left", [0.5, 0]]]
1983
+ ],
1984
+ "text-variable-anchor": ["top", "right" , "bottom", "left"],
1985
+ "text-font": ["Noto Sans Bold"],
1986
+ "text-max-width": 12,
1987
+ "text-overlap": "never",
1988
+ "text-padding": 4,
1989
+ "text-optional": true,
1990
+ "text-rotation-alignment": "viewport"
1991
+ },
1992
+ "paint": {
1993
+ "text-color": "#F2F2F2",
1994
+ "text-halo-color": "#242930",
1995
+ "text-halo-width": 2,
1996
+ "text-halo-blur": 0
1997
+ }
1998
+ },
1999
+ {
2000
+ "id": "poi-destination-group-bubbles",
2001
+ "type": "symbol",
2002
+ "source": "poi-data",
2003
+ "filter": [
2004
+ "all",
2005
+ ["==", ["get", "poiType"], "destination"],
2006
+ ["has", "isGroupLead"]
2007
+ ],
2008
+ "layout": {
2009
+ "icon-image": "destination-group-dot",
2010
+ "icon-size": [
2011
+ "step", ["get", "groupSize"],
2012
+ 1.5,
2013
+ 10, 1,
2014
+ 25, 2.2
2015
+ ],
2016
+ "icon-overlap": "cooperative",
2017
+ "icon-ignore-placement": false,
2018
+ "icon-padding": 0,
2019
+ "icon-rotation-alignment": "viewport",
2020
+ "icon-pitch-alignment": "viewport",
2021
+
2022
+ "text-field": ["concat", "+", ["to-string", ["get", "groupSize"]]],
2023
+ "text-size": 14,
2024
+ "text-font": ["Noto Sans Bold"],
2025
+ "text-overlap": "always",
2026
+ "text-ignore-placement": true,
2027
+ "text-rotation-alignment": "viewport",
2028
+ "text-pitch-alignment": "viewport"
2029
+ },
2030
+ "paint": {
2031
+ "text-color": "#ffffff"
2032
+ }
2033
+ },
2034
+ {
2035
+ "id": "poi-destination-circles",
2036
+ "type": "symbol",
2037
+ "source": "poi-data",
2038
+ "filter": [
2039
+ "all",
2040
+ ["==", ["get", "poiType"], "destination"],
2041
+ ["!=", ["get", "showLabel"], true]
2042
+ ],
2043
+ "minzoom": 16.5,
2044
+ "layout": {
2045
+ "icon-image": "destination-dot",
2046
+ "icon-size": [
2047
+ "interpolate", ["linear"], ["zoom"],
2048
+ 14, 0.1,
2049
+ 16, 0.8,
2050
+ 17.30, 0.8,
2051
+ 18, 0.5,
2052
+ 20, 0.8
2053
+ ],
2054
+ "icon-overlap": "cooperative",
2055
+ "icon-ignore-placement": false,
2056
+ "icon-padding": 0,
2057
+ "icon-rotation-alignment": "viewport",
2058
+ "icon-pitch-alignment": "viewport"
2059
+ }
2060
+ },
2061
+ {
2062
+ "id": "route-halo",
2063
+ "type": "line",
2064
+ "source": "route-data",
2065
+ "minzoom": 16.5,
2066
+ "layout": {
2067
+ "line-cap": "round",
2068
+ "line-join": "round"
2069
+ },
2070
+ "paint": {
2071
+ "line-color": "#ffffff",
2072
+ "line-width": [
2073
+ "interpolate", ["linear"], ["zoom"],
2074
+ 16.5, 10,
2075
+ 18.0, 15,
2076
+ 20.0, 21
886
2077
  ],
887
- "fill-extrusion-base": 0,
888
- "fill-extrusion-opacity": 0.85
2078
+ "line-opacity": 0.95
889
2079
  }
890
2080
  },
891
2081
  {
@@ -898,33 +2088,167 @@
898
2088
  "line-join": "round"
899
2089
  },
900
2090
  "paint": {
901
- "line-color": "#007aff",
2091
+ "line-color": "#d32f2f",
902
2092
  "line-width": [
903
2093
  "interpolate", ["linear"], ["zoom"],
904
- 16.5, 3,
905
- 18.0, 5,
906
- 20.0, 7
2094
+ 16.5, 6,
2095
+ 18.0, 9,
2096
+ 20.0, 13
907
2097
  ],
908
- "line-opacity": 0.9
2098
+ "line-opacity": 1
909
2099
  }
910
2100
  },
911
2101
  {
912
- "id": "route-halo",
913
- "type": "line",
2102
+ "id": "route-blocker",
2103
+ "type": "symbol",
914
2104
  "source": "route-data",
915
2105
  "minzoom": 16.5,
2106
+ "layout": {
2107
+ "symbol-placement": "line",
2108
+ "symbol-spacing": 6,
2109
+ "icon-image": "route-blocker",
2110
+ "icon-rotation-alignment": "viewport",
2111
+ "icon-pitch-alignment": "viewport",
2112
+ "icon-overlap": "always",
2113
+ "icon-ignore-placement": false,
2114
+ "icon-padding": 2,
2115
+ "icon-size": [
2116
+ "interpolate", ["linear"], ["zoom"],
2117
+ 16.5, 0.6,
2118
+ 18.0, 0.8,
2119
+ 20.0, 1.0
2120
+ ]
2121
+ }
2122
+ },
2123
+
2124
+ {
2125
+ "id": "route-line-active-halo",
2126
+ "type": "line",
2127
+ "source": "route-active-step",
2128
+ "minzoom": 16.5,
2129
+ "layout": {
2130
+ "line-cap": "round",
2131
+ "line-join": "round"
2132
+ },
2133
+ "paint": {
2134
+ "line-color": "#01A91D",
2135
+ "line-width": [
2136
+ "interpolate", ["linear"], ["zoom"],
2137
+ 16.5, 8,
2138
+ 18.0, 11,
2139
+ 20.0, 14
2140
+ ],
2141
+ "line-opacity": 0.85
2142
+ }
2143
+ },
2144
+ {
2145
+ "id": "route-line-active",
2146
+ "type": "line",
2147
+ "source": "route-active-step",
2148
+ "minzoom": 16.5,
2149
+ "layout": {
2150
+ "line-cap": "round",
2151
+ "line-join": "round"
2152
+ },
916
2153
  "paint": {
917
- "line-color": "white",
2154
+ "line-color": "#01A91D",
918
2155
  "line-width": [
919
2156
  "interpolate", ["linear"], ["zoom"],
920
2157
  16.5, 5,
921
2158
  18.0, 7,
922
2159
  20.0, 9
923
2160
  ],
924
- "line-opacity": 0.7
2161
+ "line-opacity": 0.25
2162
+ }
2163
+ },
2164
+ {
2165
+ "id": "route-approach-line",
2166
+ "type": "line",
2167
+ "source": "route-approach-data",
2168
+ "filter": ["==", ["geometry-type"], "LineString"],
2169
+ "layout": {
2170
+ "line-cap": "round",
2171
+ "line-join": "round"
2172
+ },
2173
+ "paint": {
2174
+ "line-color": "#d32f2f",
2175
+ "line-width": [
2176
+ "interpolate", ["linear"], ["zoom"],
2177
+ 16.5, 3,
2178
+ 18.0, 4,
2179
+ 20.0, 6
2180
+ ],
2181
+ "line-dasharray": [0.1, 2],
2182
+ "line-opacity": 1
2183
+ }
2184
+ },
2185
+ {
2186
+ "id": "route-approach-tap",
2187
+ "type": "circle",
2188
+ "source": "route-approach-data",
2189
+ "filter": ["==", ["geometry-type"], "Point"],
2190
+ "paint": {
2191
+ "circle-radius": 7,
2192
+ "circle-color": "#ffffff",
2193
+ "circle-stroke-width": 3,
2194
+ "circle-stroke-color": "#d32f2f",
2195
+ "circle-opacity": 1,
2196
+ "circle-pitch-alignment": "map"
2197
+ }
2198
+ },
2199
+ {
2200
+ "id": "route-arrows",
2201
+ "type": "symbol",
2202
+ "source": "route-data",
2203
+ "minzoom": 16.5,
2204
+ "layout": {
2205
+ "symbol-placement": "line",
2206
+ "symbol-spacing": [
2207
+ "interpolate", ["linear"], ["zoom"],
2208
+ 16.5, 150,
2209
+ 18.0, 290,
2210
+ 20.0, 480
2211
+ ],
2212
+ "icon-image": "route-arrow",
2213
+ "icon-rotation-alignment": "map",
2214
+ "icon-pitch-alignment": "map",
2215
+ "icon-allow-overlap": true,
2216
+ "icon-ignore-placement": true,
2217
+ "icon-size": [
2218
+ "interpolate", ["linear"], ["zoom"],
2219
+ 16.5, 0.55,
2220
+ 18.0, 0.75,
2221
+ 20.0, 0.85
2222
+ ]
2223
+ },
2224
+ "paint": {
2225
+ "icon-opacity": 1
925
2226
  }
926
2227
  },
927
- {
2228
+ {
2229
+ "id": "route-arrows-flow",
2230
+ "type": "symbol",
2231
+ "source": "route-arrows-flow",
2232
+ "minzoom": 16.5,
2233
+ "layout": {
2234
+ "icon-image": "route-arrow",
2235
+ "icon-rotate": ["get", "rotate"],
2236
+ "icon-rotation-alignment": "map",
2237
+ "icon-pitch-alignment": "map",
2238
+ "icon-allow-overlap": true,
2239
+ "icon-ignore-placement": true,
2240
+ "icon-size": [
2241
+ "interpolate", ["linear"], ["zoom"],
2242
+ 16.5, 0.55,
2243
+ 18.0, 0.75,
2244
+ 20.0, 0.85
2245
+ ]
2246
+ },
2247
+ "paint": {
2248
+ "icon-opacity": 1
2249
+ }
2250
+ },
2251
+ {
928
2252
  "id": "route-endpoint-source",
929
2253
  "type": "circle",
930
2254
  "source": "route-endpoints",
@@ -934,7 +2258,7 @@
934
2258
  "circle-radius": 6,
935
2259
  "circle-color": "#ffffff",
936
2260
  "circle-stroke-width": 3,
937
- "circle-stroke-color": "#007aff",
2261
+ "circle-stroke-color": "#d32f2f",
938
2262
  "circle-opacity": 1
939
2263
  }
940
2264
  },
@@ -946,248 +2270,233 @@
946
2270
  "filter": ["==", ["get", "role"], "destination"],
947
2271
  "paint": {
948
2272
  "circle-radius": 7,
949
- "circle-color": "#007aff",
2273
+ "circle-color": "#d32f2f",
950
2274
  "circle-stroke-width": 3,
951
2275
  "circle-stroke-color": "#ffffff",
952
2276
  "circle-opacity": 1
953
2277
  }
954
2278
  },
955
2279
  {
956
- "id": "poi-accessibility-icons",
2280
+ "id": "poi-route-connector-icons",
957
2281
  "type": "symbol",
958
2282
  "source": "poi-data",
959
- "filter": ["==", ["get", "accessible"], true],
2283
+ "filter": ["all", ["==", ["get", "amenityCategory"], "connector"], ["in", ["to-string", ["get", "waypointId"]], ["literal", []]]],
960
2284
  "minzoom": 16.5,
961
2285
  "layout": {
962
- "icon-image": "wheelchair-accessible",
2286
+ "icon-image": ["get", "iconId"],
963
2287
  "icon-size": [
964
- "interpolate", ["linear"], ["zoom"],
965
- 15, 0.4,
966
- 17, 0.6,
967
- 19, 0.8
2288
+ "interpolate", ["exponential", 1.3], ["zoom"],
2289
+ 15, 0.3,
2290
+ 16, 0.5,
2291
+ 18, 0.6,
2292
+ 20, 0.75,
2293
+ 22, 0.9
968
2294
  ],
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": [
2295
+ "icon-allow-overlap": true,
2296
+ "icon-ignore-placement": true,
2297
+ "icon-padding": [
982
2298
  "interpolate", ["linear"], ["zoom"],
983
- 15, 3,
2299
+ 15, 8,
984
2300
  17, 4,
985
- 19, 5,
986
- 20, 6
2301
+ 19, 2
987
2302
  ],
988
- "circle-color": "#162e51",
989
- "circle-stroke-width": 2,
990
- "circle-stroke-color": "#FFFFFF",
991
- "circle-opacity": 0.9
992
- }
993
- },
2303
+ "icon-optional": false,
2304
+ "icon-rotation-alignment": "viewport",
2305
+ "icon-pitch-alignment": "viewport",
994
2306
 
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
2307
  "text-field": ["get", "name"],
1007
2308
  "text-size": [
1008
2309
  "interpolate", ["linear"], ["zoom"],
1009
- 18.5, 12,
1010
- 20, 14
2310
+ 16, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 17],
2311
+ 19, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 19],
2312
+ 20, ["case", ["!=", ["coalesce", ["get", "iconId"], ""], ""], 0, 22]
1011
2313
  ],
1012
- "text-offset": [0, 0.8],
2314
+ "text-offset": [0, 1.3],
1013
2315
  "text-anchor": "top",
2316
+ "text-optional": true,
2317
+ "text-padding": 4,
1014
2318
  "text-font": ["Noto Sans Bold"],
1015
- "text-max-width": 12,
1016
- "text-allow-overlap": false,
1017
2319
  "text-rotation-alignment": "viewport"
1018
2320
  },
1019
2321
  "paint": {
1020
2322
  "text-color": "#242930",
1021
2323
  "text-halo-color": "#FFFFFF",
1022
2324
  "text-halo-width": 1.5,
1023
- "text-halo-blur": 1
2325
+ "text-halo-blur": 1,
2326
+ "icon-translate": [0, -20],
2327
+ "icon-translate-anchor": "viewport"
1024
2328
  }
1025
2329
  },
1026
-
1027
2330
  {
1028
- "id": "poi-entrance-exit-icons",
2331
+ "id": "poi-route-preview",
1029
2332
  "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,
2333
+ "source": "route-preview-data",
1042
2334
  "layout": {
1043
- "icon-image": ["get", "iconId"],
2335
+ "icon-image": ["match", ["get", "kind"], "start", "marker-start", "marker-destination"],
2336
+ "icon-anchor": "bottom",
2337
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 15, 0.7, 16, 0.9, 18, 1, 20, 1.15, 22, 1.35],
2338
+ "icon-overlap": "always",
2339
+ "icon-ignore-placement": false,
2340
+ "icon-rotation-alignment": "viewport",
2341
+ "icon-pitch-alignment": "viewport"
2342
+ }
2343
+ },
2344
+ {
2345
+ "id": "poi-route-start",
2346
+ "type": "symbol",
2347
+ "source": "route-end-data",
2348
+ "filter": ["==", ["get", "kind"], "start"],
2349
+ "layout": {
2350
+ "icon-image": "marker-start",
2351
+ "icon-anchor": "bottom",
2352
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 15, 0.7, 16, 0.9, 18, 1, 20, 1.15, 22, 1.35],
2353
+ "icon-overlap": "always",
2354
+ "icon-ignore-placement": false,
2355
+ "icon-rotation-alignment": "viewport",
2356
+ "icon-pitch-alignment": "viewport"
2357
+ }
2358
+ },
2359
+ {
2360
+ "id": "poi-route-end-flag",
2361
+ "type": "symbol",
2362
+ "source": "route-end-data",
2363
+ "filter": ["==", ["get", "kind"], "destination"],
2364
+ "layout": {
2365
+ "icon-image": "route-end-flag",
1044
2366
  "icon-size": [
1045
2367
  "interpolate", ["linear"], ["zoom"],
1046
- 16.5, 0.5,
1047
- 18, 0.6,
1048
- 20, 0.8
2368
+ 15, 0.52,
2369
+ 16, 0.8,
2370
+ 18, 0.9,
2371
+ 20, 1,
2372
+ 22, 1.2
1049
2373
  ],
1050
- "icon-allow-overlap": true,
1051
- "icon-padding": 2,
1052
- "icon-optional": false,
2374
+ "icon-overlap": "always",
2375
+ "icon-ignore-placement": false,
1053
2376
  "icon-rotation-alignment": "viewport",
1054
2377
  "icon-pitch-alignment": "viewport",
1055
-
1056
2378
  "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
2379
+ "text-size": 16,
2380
+ "text-variable-anchor-offset": [
2381
+ "top", [0, 1.6],
2382
+ "right", [-2, 0],
2383
+ "bottom", [0, -1.6],
2384
+ "left", [2, 0]
1063
2385
  ],
1064
- "text-offset": [0, 1.3],
1065
- "text-anchor": "top",
1066
- "text-optional": true,
1067
- "text-padding": 4,
1068
2386
  "text-font": ["Noto Sans Bold"],
2387
+ "text-max-width": 12,
2388
+ "text-overlap": "always",
2389
+ "text-ignore-placement": false,
2390
+ "text-optional": false,
1069
2391
  "text-rotation-alignment": "viewport"
1070
2392
  },
1071
2393
  "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"
2394
+ "text-color": "#F2F2F2",
2395
+ "text-halo-color": "#242930",
2396
+ "text-halo-width": 2,
2397
+ "text-halo-blur": 0
1081
2398
  }
1082
2399
  },
1083
2400
  {
1084
- "id": "poi-parking-icons",
2401
+ "id": "poi-route-end-amenity",
1085
2402
  "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,
2403
+ "source": "route-end-data",
2404
+ "filter": ["==", ["get", "kind"], "amenity"],
1097
2405
  "layout": {
1098
2406
  "icon-image": ["get", "iconId"],
1099
2407
  "icon-size": [
1100
- "interpolate", ["linear"], ["zoom"],
1101
- 16.5, 0.5,
1102
- 18, 0.6,
1103
- 20, 0.8
2408
+ "interpolate", ["exponential", 1.3], ["zoom"],
2409
+ 15, 0.45,
2410
+ 16, 0.75,
2411
+ 18, 0.9,
2412
+ 20, 1.13,
2413
+ 22, 1.35
1104
2414
  ],
1105
- "icon-allow-overlap": true,
1106
- "icon-padding": 2,
1107
- "icon-optional": false,
2415
+ "icon-overlap": "always",
2416
+ "icon-ignore-placement": false,
1108
2417
  "icon-rotation-alignment": "viewport",
1109
2418
  "icon-pitch-alignment": "viewport",
1110
-
1111
- "text-field": ["get", "name"],
2419
+ "text-field": ["coalesce", ["get", "instanceName"], ""],
1112
2420
  "text-size": [
1113
2421
  "interpolate", ["linear"], ["zoom"],
1114
- 16.5, 0,
1115
- 18.5, 0,
1116
- 19, 12,
1117
- 20, 13
2422
+ 16, 14,
2423
+ 19, 15,
2424
+ 22, 17
2425
+ ],
2426
+ "text-offset": [
2427
+ "interpolate", ["linear"], ["zoom"],
2428
+ 16, ["literal", [0, 0.3]],
2429
+ 18, ["literal", [0, 0.5]],
2430
+ 20, ["literal", [0, 0.55]],
2431
+ 22, ["literal", [0, 1.5]]
1118
2432
  ],
1119
- "text-offset": [0, 1.3],
1120
2433
  "text-anchor": "top",
1121
- "text-optional": true,
1122
- "text-padding": 4,
1123
2434
  "text-font": ["Noto Sans Bold"],
2435
+ "text-overlap": "always",
2436
+ "text-ignore-placement": false,
2437
+ "text-optional": true,
1124
2438
  "text-rotation-alignment": "viewport"
1125
2439
  },
1126
2440
  "paint": {
1127
- "icon-halo-color": "#FFFFFF",
1128
- "icon-halo-width": 1.5,
1129
- "icon-halo-blur": 0.5,
1130
- "text-color": "#242930",
2441
+ "icon-translate": [0, -20],
2442
+ "icon-translate-anchor": "viewport",
2443
+ "text-color": "#0F1114",
1131
2444
  "text-halo-color": "#FFFFFF",
1132
2445
  "text-halo-width": 1.5,
1133
- "text-halo-blur": 1,
1134
- "icon-translate": [0, -20],
1135
- "icon-translate-anchor": "viewport"
2446
+ "text-halo-blur": 0.1
1136
2447
  }
1137
2448
  },
2449
+
1138
2450
  {
1139
- "id": "poi-other-amenity-icons",
2451
+ "id": "poi-you-are-here-heading",
1140
2452
  "type": "symbol",
1141
2453
  "source": "poi-data",
1142
2454
  "filter": [
1143
2455
  "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]
2456
+ ["==", ["get", "isYouAreHere"], true],
2457
+ ["==", ["get", "hasHeading"], true]
1150
2458
  ],
1151
- "minzoom": 17.5,
2459
+ "minzoom": 16,
1152
2460
  "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"],
2461
+ "text-field": "▲",
1167
2462
  "text-size": [
1168
2463
  "interpolate", ["linear"], ["zoom"],
1169
- 17.5, 0,
1170
- 18.5, 0,
1171
- 19, 12,
1172
- 20, 13
2464
+ 16, 20,
2465
+ 18, 22,
2466
+ 20, 28
1173
2467
  ],
1174
- "text-offset": [0, 1.3],
1175
- "text-anchor": "top",
1176
- "text-optional": true,
1177
- "text-padding": 4,
1178
2468
  "text-font": ["Noto Sans Bold"],
1179
- "text-rotation-alignment": "viewport"
2469
+ "text-anchor": "bottom",
2470
+ "text-rotate": ["-", ["get", "heading"], 180],
2471
+ "text-rotation-alignment": "map",
2472
+ "text-pitch-alignment": "map",
2473
+ "text-overlap": "always",
2474
+ "text-ignore-placement": false,
2475
+ "text-padding": 4
1180
2476
  },
1181
2477
  "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"
2478
+ "text-color": "#E31C3D",
2479
+ "text-halo-color": "#162e51",
2480
+ "text-halo-width": 2.5,
2481
+ "text-opacity": 0.9
2482
+ }
2483
+ },
2484
+ {
2485
+ "id": "poi-you-are-here-ring",
2486
+ "type": "circle",
2487
+ "source": "poi-data",
2488
+ "filter": ["==", ["get", "isYouAreHere"], true],
2489
+ "minzoom": 16,
2490
+ "paint": {
2491
+ "circle-radius": [
2492
+ "interpolate", ["linear"], ["zoom"],
2493
+ 16, 14,
2494
+ 18, 18,
2495
+ 20, 24
2496
+ ],
2497
+ "circle-color": "#E31C3D",
2498
+ "circle-opacity": 0.25,
2499
+ "circle-pitch-alignment": "map"
1191
2500
  }
1192
2501
  },
1193
2502
  {
@@ -1195,38 +2504,86 @@
1195
2504
  "type": "symbol",
1196
2505
  "source": "poi-data",
1197
2506
  "filter": ["==", ["get", "isYouAreHere"], true],
1198
- "minzoom": 16.5,
2507
+ "minzoom": 16,
1199
2508
  "layout": {
1200
- "icon-image": [
1201
- "coalesce",
1202
- ["get", "iconId"],
1203
- "you-are-here"
2509
+ "icon-image": "YouAreHereKiosk",
2510
+ "icon-anchor": "bottom",
2511
+ "icon-offset": [
2512
+ "interpolate", ["linear"], ["zoom"],
2513
+ 16, ["literal", [0, 20]],
2514
+ 18, ["literal", [0, 0]]
1204
2515
  ],
1205
2516
  "icon-size": [
1206
2517
  "interpolate", ["linear"], ["zoom"],
1207
- 16.5, 0.8,
1208
- 18.0, 1.0,
1209
- 20.0, 1.2
2518
+ 16, 0.9,
2519
+ 18, 0.8
2520
+ ],
2521
+ "icon-overlap": "never",
2522
+ "icon-ignore-placement": false,
2523
+ "icon-padding": [
2524
+ "interpolate", ["linear"], ["zoom"],
2525
+ 16, 12,
2526
+ 18, 14,
2527
+ 20, 18
1210
2528
  ],
1211
- "icon-allow-overlap": true,
1212
- "icon-ignore-placement": true,
1213
- "icon-anchor": "bottom",
1214
2529
  "text-field": ["get", "name"],
1215
2530
  "text-size": [
1216
2531
  "interpolate", ["linear"], ["zoom"],
1217
- 17.5, 11,
1218
- 19.5, 13
2532
+ 16, 16,
2533
+ 18, 16,
2534
+ 20, 18
1219
2535
  ],
1220
- "text-offset": [0, 1.2],
1221
- "text-anchor": "top",
2536
+ "text-offset": [
2537
+ "interpolate", ["linear"], ["zoom"],
2538
+ 16, ["literal", [0, -1.5]],
2539
+ 18, ["literal", [0, -2.5]]
2540
+ ],
2541
+ "text-anchor": "bottom",
1222
2542
  "text-font": ["Noto Sans Bold"],
1223
- "text-optional": true
2543
+ "text-overlap": "never",
2544
+ "text-ignore-placement": false,
2545
+ "text-padding": [
2546
+ "interpolate", ["linear"], ["zoom"],
2547
+ 16, 8,
2548
+ 18, 10,
2549
+ 20, 12
2550
+ ],
2551
+ "text-optional": false,
2552
+ "text-transform": "uppercase"
1224
2553
  },
1225
2554
  "paint": {
1226
- "text-color": "#ffffff",
1227
- "text-halo-color": "#000000",
1228
- "text-halo-width": 1.5,
1229
- "text-halo-blur": 0.8
2555
+ "text-color": "#E31C3D",
2556
+ "text-halo-color": "#ffffff",
2557
+ "text-halo-width": 2.5,
2558
+ "text-halo-blur": 0.5
2559
+ }
2560
+ },
2561
+
2562
+ {
2563
+ "id": "poi-highlight-ring",
2564
+ "type": "circle",
2565
+ "source": "poi-highlight-data",
2566
+ "filter": ["==", ["geometry-type"], "Point"],
2567
+ "paint": {
2568
+ "circle-radius": 14,
2569
+ "circle-color": "#005ea2",
2570
+ "circle-opacity": 0.45,
2571
+ "circle-pitch-alignment": "map"
2572
+ }
2573
+ },
2574
+ {
2575
+ "id": "poi-highlight-core",
2576
+ "type": "circle",
2577
+ "source": "poi-highlight-data",
2578
+ "filter": ["==", ["geometry-type"], "Point"],
2579
+ "paint": {
2580
+ "circle-radius": 9,
2581
+ "circle-color": "#005ea2",
2582
+ "circle-opacity": 1,
2583
+ "circle-stroke-color": "#ffffff",
2584
+ "circle-stroke-width": 3,
2585
+ "circle-stroke-opacity": 1,
2586
+ "circle-pitch-alignment": "map"
1230
2587
  }
1231
2588
  }
1232
2589
  ]