This is the documentation of version 0.63.0. Go to the latest version, 1.0.0-rc.5.

Bloom

Bloom is the map effects plugin's emphasis for dark and driving styles: lit roads, traffic tubes and route lines glow. The playground below puts every bloom knob on one panel, the colour scope included:

Turning it on

Bloom is off until bloom.intensity is above 0. bloom.threshold decides how bright a pixel must be to glow, and bloom.radius how far the glow spreads:

const effects = new MapEffects(map);

effects.updateConfig({ 'bloom.intensity': 0.5, 'bloom.threshold': 0.6 });

Bloom reads the map canvas back, so the map needs canvasContextAttributes: { preserveDrawingBuffer: true } (Usage).

Knob Range Default
bloom.intensity, bloom.threshold 0–1 0 (off), 0.55
bloom.radius (CSS px) 2–40 12
bloom.only list of style colour knobs, groups and CSS colours [] (the whole frame)
bloom.onlyTolerance 0–1 0.15

Scoping bloom by colour

bloom.only lists the colours bloom may light. Entries mix freely, and the default [] lights the whole frame.

effects.updateConfig({ 'bloom.intensity': 0.9, 'bloom.only': ['traffic'] }); // a group of style colours
setKnob(effects, effectKnobCatalogue, 'bloom.only', ['traffic.incidents.colors.major', 'traffic.incidents.colors.closed']); // single knobs

const routeColor = '#1a73e8';                                                 // the color your RoutingModule draws routes in
setKnob(effects, effectKnobCatalogue, 'bloom.only', ['traffic', routeColor]); // plus a CSS colour of your own
Entry Resolves to
A style colour knob by its map-wide id, e.g. colors.roadMajor, traffic.flow.colors.slow, pois.label.color the colour the loaded style paints it in
A group of them (StyleColorKnobGroup), e.g. traffic, traffic.incidents, colors every colour knob whose id starts with it
A CSS colour, e.g. '#1a73e8' itself — for what no style knob paints, such as a route in the color you gave RoutingModule

How it renders

Bloom is neither a GPU pass nor a CSS overlay: a small canvas (a quarter of the pixels) redrawn from the finished artwork every frame and blended in screen mode, because a glow needs the original and its blur, which a backdrop-filter cannot give. It reads the output of the GPU chain rather than the raw map, so a highlight the depth of field defocused glows as the wide soft disc a photograph gives it. A pass of your own that shifts hues runs before bloom's colour key, so a bloom.only scope may need a wider bloom.onlyTolerance to find its colours. The overview shows the whole order.

Related guides and examples

Related guides

Related examples