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

Globe and sky

The Styling Foundations module's view knobs hold the projection, the sky and the light on the 3D buildings, the map-level MapLibre state that a style switch would otherwise reset. So a globe stays a globe across setStyle. Like any other knobs, they work with setKnob, getKnob, resetKnob and getConfig(), on every style.

Projection and sky

import { setKnob, StylingFoundationsModule, stylingFoundationsKnobCatalogue } from '@tomtom-org/maps-sdk/map';

const styling = await StylingFoundationsModule.get(map);
setKnob(styling, stylingFoundationsKnobCatalogue, 'view.projection', 'globe');
setKnob(styling, stylingFoundationsKnobCatalogue, 'view.sky.visible', true); // without it, a globe has no atmosphere

Sky colours

view.sky.color and view.sky.horizonColor colour the sky. If you don't set them, they take:

Note that the sky knobs write MapLibre's whole sky. A sky property you set with map.mapLibreMap.setSky, such as atmosphere-blend or a fog blend, goes back to the style's own value, otherwise the SDK's default, whenever a sky knob applies. That happens when you set or reset one, and after a style switch.

The colour behind the map

view.space.color is the colour behind the map. It shows around the planet on a globe, where the map canvas is transparent.

setKnob(styling, stylingFoundationsKnobCatalogue, 'view.space.color', '#05070d');

The light on 3D buildings

The view.light knobs set the light that shades the sides of the 3D buildings. Nothing else on the map takes it. The standard styles ship their 3D buildings hidden, except the driving ones, so show them first through the Base map module's buildings3D group.

To light the buildings with a warm sun from the west, set the light's parts:

import { BaseMapModule, StylingFoundationsModule } from '@tomtom-org/maps-sdk/map';

await BaseMapModule.get(map, { groups: { buildings3D: { visible: true } } });
const styling = await StylingFoundationsModule.get(map, {
    view: { light: { direction: 270, altitude: 35, alignment: 'map', color: '#ffd9a8', intensity: 0.7 } },
});

If you don't set a part, it takes the style's own light, otherwise MapLibre's default: from 210° at an altitude of 60°, measured from the top of the screen, white, at 0.5.

Note that the light knobs write MapLibre's whole light. A light property you set with map.mapLibreMap.setLight goes back to the style's own value, otherwise MapLibre's default, whenever a light knob applies.

Once you've set a light knob, a clean style switch, setStyle(…, { resetState: true }), draws the new style's light, rather than keeping the one the knobs had set.

What to expect

The demo above zooms a globe into 3D terrain. The 3D terrain playground keeps a tilted camera, its sky and its relief across a style switch. The map effects plugin's depth of field keeps one distance of a tilted view sharp and blurs the rest.

Related guides and examples

Related guides

Related examples