Landmarks 3D Plugin
Use cases
- City-scale 3D visualization — show recognizable landmark buildings (stadiums, cathedrals, towers) as detailed meshes instead of plain extrusions.
- Blend with the base map — display modes let landmarks render in plain dark or light shading, or inheriting the basemap building colour.
How it works
The plugin adds a MapLibre custom layer that fetches the landmark tiles covering the viewport and renders them with Three.js, keeping lighting in sync with the map style.
The standard styles include a 3D building layer that is hidden by default; the plugin makes it visible so landmarks appear in a full 3D city context. Basemap extruded buildings that overlap a landmark carry a has_landmark property; the plugin filters those out of the basemap building layer so they don’t clip through the high-detail meshes.
API Reference:
Landmarks 3D Plugin API Reference
Installation
-
Follow the SDK Project Setup to create a working SDK project and initialize a
TomTomMapinstance. Use a pitched camera for the best result; the plugin enables the standard style’s 3D building layer automatically. -
Import and initialize the plugin (plugin-specific steps only):
// assume `map` is your initialized TomTomMap instance// import the plugin in your application code:// import { Landmarks3D } from '@tomtom-org/maps-sdk-plugin-landmarks-3d';
const landmarks = new Landmarks3D(map);The landmark tile URL is built automatically from the global TomTomConfig (apiKey, commonBaseURL).
Usage examples
Change the display mode
// 'inherited' (default) | 'dark' | 'light'await landmarks.setDisplayMode('dark');inherited mirrors the colour and opacity of the basemap 3D building layer, so landmarks blend in instead of standing out.
Toggle visibility
await landmarks.setVisible(false);Configuration
const landmarks = new Landmarks3D(map, { displayMode: 'inherited', visible: true, minZoom: 10,});For a complete working example, see the landmarks-3d-plugin example in the SDK repository (live coding example above).