Stay organized with collections Save and categorize content based on your preferences.
This product or feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the Google Maps Platform Service Specific Terms. For more information, see the launch stage descriptions.A popover
displays content (usually text or images) in a dialog window above the map, at a given location. The popover has a content area and a tapered stem. The tip of the stem is attached to a specified location on the map. Popovers appear as a dialog to screen readers.
Typically you will attach a popover to an interactive marker, but you can also attach a popover to a specific LatLngAltitude
coordinate, or offset it from a marker.
The PopoverElement
constructor takes an PopoverElementOptions
object literal, which specifies the initial parameters for displaying the popover.
The PopoverElementOptions
object literal contains the following fields:
positionAnchor
: The LatLngAltitude
position at which to display the marker. If using a marker, the marker's position will be used instead.altitudeMode
: How the popover's altitude is interpreted.lightDismissDisabled
: Whether the popover stays open when the user clicks outside of it, or presses the Esc
key. When this option is set to true
, multiple lightDismissDisabled
popovers can be shown on the map simultaneously.open
: Dictates whether the popover should be open or not. Defaults to false
.The content of the PopoverElement
may contain a string of text, a snippet of HTML, or a DOM element. You set the content by appending it to the PopoverElement
explicitly in the header
or default
slot.
If you want to explicitly size the content, you can put it in a <div>
element and style the <div>
with CSS. Popovers are scrollable by default, and have a predefined maximum height.
PopoverElement
object and open it at different locations or markers on map events, such as user clicks. If you do need more than one popover, you can display multiple PopoverElement
objects at the same time by setting lightDismissDisabled
to true
. Anchor a popover to a LatLngAltitude coordinate
When you create a popover, it is not displayed automatically on the map. To make the popover visible, you must set the open
option to true
in the PopoverElement
. You are able to perform this action during construction or after instantiation.
async function init() { const { AltitudeMode, Map3DElement, MapMode, PopoverElement } = await google.maps.importLibrary("maps3d"); const map = new Map3DElement({ center: { lat: 37.8204, lng: -122.4783, altitude: 0.407 }, range: 4000, tilt: 74, heading: 38, mode: MapMode.HYBRID, }); const popover = new PopoverElement({ altitudeMode: AltitudeMode.ABSOLUTE, open: true, positionAnchor: { lat: 37.819852, lng: -122.478549, altitude: 150 }, }); popover.append('Golden Gate Bridge'); map.append(popover); document.body.append(map); } init();Anchor a popover to a marker
You can anchor popovers to markers. When adding a popover anchored to a marker, you set the PopoverElement.positionAnchor
option to use the marker.
async function init() { const { AltitudeMode, Map3DElement, Marker3DInteractiveElement, MapMode, PopoverElement } = await google.maps.importLibrary("maps3d"); const map = new Map3DElement({ center: { lat: 37.8204, lng: -122.4783, altitude: 0.407 }, range: 4000, tilt: 74, heading: 38, mode: MapMode.HYBRID, }); // Popovers can only be added to interactive Markers const interactiveMarker = new Marker3DInteractiveElement({ altitudeMode: AltitudeMode.ABSOLUTE, position: { lat: 37.819852, lng: -122.478549, altitude: 100 } }); const popover = new PopoverElement({ open: false, positionAnchor: interactiveMarker, }); popover.append('Golden Gate Bridge'); interactiveMarker.addEventListener('gmp-click', (event) => { // toggle the marker to the other state (unlee you are clicking on the marker itself when it reopens it) popover.open = !popover.open; }); map.append(interactiveMarker); map.append(popover); document.body.append(map); } init();Anchor a popover to a marker using HTML
You can also anchor popovers to markers without writing any JavaScript code, as shown below:
<gmp-map-3d mode="hybrid" center="37.819852,-122.478549" tilt="75" range="2000" heading="330">
<gmp-marker-3d-interactive gmp-popover-target="my-popover" position="37.819852,-122.478549,100"></gmp-marker-3d-interactive>
<gmp-popover id="my-popover">
Golden Gate Bridge
</gmp-popover>
</gmp-map-3d>
<script async src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDGl0teQ6qwaBEdHazOWIEXd8XGWOZvoaM&v=beta&libraries=maps3d">
</script>
Add custom content to a popover
You can add custom content to popovers by setting the header
and content
options:
async function init() {
const {Map3DElement, MapMode, PopoverElement, AltitudeMode} = await google.maps.importLibrary('maps3d');
const map = new Map3DElement({
center: { lat: 37.819852, lng: -122.478549, altitude: 2000 },
tilt: 75,
heading: 330,
mode: MapMode.SATELLITE,
});
const popover = new PopoverElement({
altitudeMode: AltitudeMode.ABSOLUTE,
open: true,
positionAnchor: {lat: 37.819852, lng: -122.478549, altitude: 100},
});
const header = document.createElement('div');
header.style.fontWeight = 'bold';
header.slot = 'header';
header.textContent = 'Golden Gate Bridge';
const content = document.createElement('div');
content.textContent = 'Iconic orange bridge connecting San Francisco to Marin.';
popover.append(header);
popover.append(content);
document.body.append(map);
map.append(popover);
}
init();
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4