Use markers to draw a user's attention to a location on a map. This guide demonstrates how to use and customize markers in 3D maps. You can control the shape, size, and color of markers, in addition to the altitude at which they appear. The following example shows a basic marker:
3D Maps in Maps JavaScript provides two distinct marker classes, each optimized for specific uses. The following table shows differences and tradeoffs between the two available classes:
| Capability | MarkerElement |
Marker3DElement |
|---|---|---|
| Customization | High (Supports custom HTML elements, core animation APIs, etc.) | Low (Less customizable) |
| Performance | Lower interaction performance (FPS drops with a large number of markers) | Higher interaction performance (Optimized for rendering large datasets) |
| Recommended capacity | Reliable interaction performance up to around 1,000 markers | Recommended for handling over 1,000 markers |
Customize color, scale and icon image
Customize the default marker's background, glyph, border color, and size.

Replace the default marker icon with a custom SVG resource.

Set marker altitude
You can set marker altitude by extruding the marker and setting the altitude.

Make markers respond to click and keyboard events
Make a marker respond to clicks and keyboard events by adding a click event
listener.
function initMap() {
const map = new Map3DElement({
center: { lat: 37.4690, lng: -122.1074, altitude: 0 },
tilt: 67.5,
range: 45000,
mode: MapMode.HYBRID
});
const interactiveMarker = new google.maps.marker.Marker3DInteractiveElement({
map,
position: {lat: 37.4239163, lng: -122.0947209},
});
interactiveMarker.addEventListener('gmp-click', (event) => {
// Handle the click event.
// ...
});
}
Set marker collision behavior
Specify how a marker should behave when it collides with another marker or map label.
const marker = new Marker3DElement({
position: {lat, lng},
collisionBehavior: google.maps.CollisionBehavior.REQUIRED
});
Marker performance
Custom HTML markers (MarkerElement) offer lower performance than
standard 3D markers (Marker3DElement). For applications with more than 1,000
markers, the Marker3dElement
class is strongly encouraged to
ensure optimal performance.