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

Landmarks 3D plugin

Request Access

Important note 3D Landmarks are in Private Preview and unavailable on a Freemium or Pay As You Grow (PAYG) basis. Click the Request Access button above to contact our Sales team. With a key that lacks the access, the map draws no landmarks and the console warns, per tile, that the key needs it.

Use cases

How it works

Installation

This plugin uses @tomtom-org/maps-sdk, maplibre-gl and three as peer dependencies. Install all three.

npm install @tomtom-org/maps-sdk maplibre-gl three @tomtom-org/maps-sdk-plugin-landmarks-3d
  1. Follow the SDK Project Setup to create a TomTomMap. Pitch the camera. From above, the meshes look flat.
  2. Create the plugin. Rendering starts once the map is ready, so there is nothing to await.
import { Landmarks3D } from '@tomtom-org/maps-sdk-plugin-landmarks-3d';

const landmarks = new Landmarks3D(map);

Usage examples

Change the display mode

// 'inherited' (default) | 'dark' | 'light'
await landmarks.setDisplayMode('dark');
landmarks.getDisplayMode(); // 'dark'

Terrain

Landmarks stand on 3D terrain without any configuration. The plugin lowers each one onto the lowest ground under its footprint, so no wall floats above a slope. Landmarks follow the terrain as it loads or its exaggeration changes.

import { TerrainModule } from '@tomtom-org/maps-sdk/map';
import { Landmarks3D } from '@tomtom-org/maps-sdk-plugin-landmarks-3d';

await TerrainModule.get(map, { elevation: { visible: true }, hillshade: { visible: true } });
const landmarks = new Landmarks3D(map);

Toggle visibility

await landmarks.setVisible(false);
landmarks.isVisible(); // false

Configuration

const landmarks = new Landmarks3D(map, {
  displayMode: 'inherited',
  visible: true,
  minZoom: 10,
});
Option Default
displayMode 'inherited'
visible true
minZoom, maxZoom the basemap 3D building layer's range, so landmarks appear and disappear with it. Without that layer, 10 and 22
withCredentials follows the SDK's proxy configuration

API reference

For complete documentation see the Landmarks3D API Reference.

Related guides and examples