1,200 POIs on a single symbol layer. The layer declares an appearances array of four named variants — each with a condition expression and a set of property overrides spanning the appearance-supported portion of the spec. mapbox-gl evaluates the conditions per feature and applies the highest-priority match.
MAPBOX_ACCESS_TOKEN) to load the map.
Each appearance's condition is a single feature-state lookup:
highlighted:
['boolean',
['feature-state', 'highlighted'],
false]
dimmed:
['boolean',
['feature-state', 'dimmed'],
false]
caseAn AND of two booleans:
premium-zoomed:
['case',
['boolean',
['feature-state', 'premium'],
false],
['>', ['zoom'], 15.5],
false]
A single threshold against measure-light, placed at the back of the priority list so feature-state and zoom appearances still win when they match:
night-tint:
['<',
['measure-light', 'brightness'],
0.3]
pois-label) renders all 1,200 POIs using six custom icons tinted per category. The four appearances together exercise three of the condition sources on the appearance allow-list - feature-state, zoom and measure-light - and cover a representative slice of appearance-supported properties.