- Maps JavaScript API
- Overview
- Set up the JavaScript API
- Get and use a Maps Demo Key
- Use App Check to secure your API key
- Load the Maps JavaScript API
- Error handling
- Troubleshooting
Tutorials
- Add a Google Map with markers using HTML
- Add a Google Map with a marker using JavaScript
- Add a Google Map to a React app
- Show current location
- Cluster markers
Concepts
- Versioning
- Localization
- Best practices
- TypeScript
- Promises
Base map
- Add a Google Map to a web page
- Map events
- Map controls
- Control zoom and pan
- Rendering type (raster and vector)
- Map types
- Map color scheme
- Map and tile coordinates
Customize maps
- Overview
Cloud-based maps styling
Work with 3D Maps
- Overview
- Get started
Markers
- Overview
- Get started
- Add a marker to a map
- Basic marker customization
- Create markers with graphics
- Create markers with HTML and CSS
- Control collision behavior, altitude, and visibility
- Make markers clickable and accessible
- Make markers draggable
- Migrate to advanced markers
- Markers (legacy)
Work with Places
- Overview
Work with Routes
- Overview
- Get started
- Try the demo
Address validation
- Overview
- Try the demo
- Get started
- Validate an address
- Understand a basic response
- Handle United States addresses
- Country and region coverage
Draw on the map
- Overview
- Info windows
- Shapes and lines
- Symbols
- Deck.gl data visualizations
- Ground overlays
- Custom overlays
- Add a custom legend
Display data
- Overview
- Data layer
- Heatmap (deprecated)
- Traffic, Transit, and Bicycling layers
Services
- Elevation
- Geocoding
- Maximum Zoom Imagery
- Street View
Additional libraries
- Overview
- Air Quality Meter widget (experimental)
- Drawing library (deprecated)
- Geometry library
- Visualization library (deprecated)
- Open Source libraries
More guides
- Google loader migration guide
- Place field migration (open_now, utc_offset)
- Upgrading from v2 to v3
Info Windows
Introduction
An
InfoWindow displays content (usually text or images) in a
popup window above the map, at a given location. The info window has a content
area and a tapered stem. The tip of the stem is attached to a specified
location on the map. Info windows appear as a Dialog to screen readers.
Typically you will attach an info window to a marker, but you can also attach an info window to a specific latitude/longitude, as described in the section on adding an info window below.
Broadly speaking, info windows are a type of overlay. For information on other types of overlay, see Drawing on the map.
Add an info window
The
InfoWindow constructor takes an
InfoWindowOptions object literal, which specifies the initial
parameters for displaying the info window.
The InfoWindowOptions object literal
contains the following fields:
contentcontains either a string of text or a DOM node to display in the info window.pixelOffsetcontains an offset from the tip of the info window to the location on which the info window is anchored. In practice, you should not need to specify this field. You can leave it at the default value.positioncontains theLatLngat which this info window is anchored. Note: AnInfoWindowmay be attached either to aMarkerobject (in which case its position is based on the marker's location) or on the map itself at a specifiedLatLng. One way of retrieving aLatLngis by using the Geocoding service. Opening an info window on a marker will automatically update theposition.maxWidthspecifies the maximum width of the info window in pixels. By default, an info window expands to fit its content, and auto-wraps text if the info window fills the map. If you add amaxWidththe info window will auto-wrap to enforce the specified width. If it reaches the maximum width and there is vertical room on the screen, the info window may expand vertically.
The content of the InfoWindow may contain a string of text, a
snippet of HTML, or a DOM element. To set the content, either specify it
within the InfoWindowOptions or call
setContent() on the InfoWindow explicitly.
If you wish to explicitly size the content, you can put it in a
<div> element and style the <div> with
CSS. You can use CSS to enable scrolling too. Note that if you do not
enable scrolling and the content exceeds the space available in the info
window, the content may spill out of the info window.
Open an info window
When you create an info window, it is not displayed automatically on the map.
To make the info window visible, you must call the open() method
on the InfoWindow, passing an InfoWindowOpenOptions
object literal specifying the following options:
mapspecifies the map or Street View panorama on which to open.anchorcontains an anchor point (for example aMarker). If theanchoroption isnullor undefined, the info window will open at itspositionproperty.
TypeScript
// This example displays a marker at the center of Australia. // When the user clicks the marker, an info window opens. async function init(): Promise<void> { // Import the needed libraries. const [{ InfoWindow }, { AdvancedMarkerElement }] = await Promise.all([ google.maps.importLibrary('maps'), google.maps.importLibrary('marker'), ]); // Get the map element and the inner map from it. const mapElement = document.querySelector('gmp-map')!; const innerMap = mapElement.innerMap; // Get the center of the map. const center = mapElement.center; // Create the info window content. const heading = document.createElement('h1'); heading.textContent = 'Uluru (Ayers Rock)'; const content = document.createElement('div'); const infoParagraph = document.createElement('p'); infoParagraph.textContent = `Uluru, also referred to as Ayers Rock, is a large sandstone rock formation in the southern part of the Northern Territory, central Australia. It lies 335 km (208 mi) south west of the nearest large town, Alice Springs; 450 km (280 mi) by road. Kata Tjuta and Uluru are the two major features of the Uluru - Kata Tjuta National Park. Uluru is sacred to the Pitjantjatjara and Yankunytjatjara, the Aboriginal people of the area. It has many springs, waterholes, rock caves and ancient paintings. Uluru is listed as a World Heritage Site.`; content.appendChild(infoParagraph); const link = document.createElement('a'); link.href = 'https://en.wikipedia.org/w/index.php?title=Uluru'; link.textContent = 'https://en.wikipedia.org/w/index.php?title=Uluru'; link.target = '_blank'; content.appendChild(link); // Create the info window. const infoWindow = new InfoWindow({ headerContent: heading, content, ariaLabel: 'Uluru', maxWidth: 500, // Set max width (optional). }); // Create the marker. const marker = new AdvancedMarkerElement({ position: center, map: innerMap, title: 'Uluru (Ayers Rock)', gmpClickable: true, }); // Open the info window when the map loads. infoWindow.open({ anchor: marker, map: innerMap, }); // Open the info window when the marker is clicked. marker.addEventListener('gmp-click', () => { infoWindow.open({ anchor: marker, map: innerMap, }); }); } void init();
JavaScript
// This example displays a marker at the center of Australia. // When the user clicks the marker, an info window opens. async function init() { // Import the needed libraries. const [{ InfoWindow }, { AdvancedMarkerElement }] = await Promise.all([ google.maps.importLibrary('maps'), google.maps.importLibrary('marker'), ]); // Get the map element and the inner map from it. const mapElement = document.querySelector('gmp-map'); const innerMap = mapElement.innerMap; // Get the center of the map. const center = mapElement.center; // Create the info window content. const heading = document.createElement('h1'); heading.textContent = 'Uluru (Ayers Rock)'; const content = document.createElement('div'); const infoParagraph = document.createElement('p'); infoParagraph.textContent = `Uluru, also referred to as Ayers Rock, is a large sandstone rock formation in the southern part of the Northern Territory, central Australia. It lies 335 km (208 mi) south west of the nearest large town, Alice Springs; 450 km (280 mi) by road. Kata Tjuta and Uluru are the two major features of the Uluru - Kata Tjuta National Park. Uluru is sacred to the Pitjantjatjara and Yankunytjatjara, the Aboriginal people of the area. It has many springs, waterholes, rock caves and ancient paintings. Uluru is listed as a World Heritage Site.`; content.appendChild(infoParagraph); const link = document.createElement('a'); link.href = 'https://en.wikipedia.org/w/index.php?title=Uluru'; link.textContent = 'https://en.wikipedia.org/w/index.php?title=Uluru'; link.target = '_blank'; content.appendChild(link); // Create the info window. const infoWindow = new InfoWindow({ headerContent: heading, content, ariaLabel: 'Uluru', maxWidth: 500, // Set max width (optional). }); // Create the marker. const marker = new AdvancedMarkerElement({ position: center, map: innerMap, title: 'Uluru (Ayers Rock)', gmpClickable: true, }); // Open the info window when the map loads. infoWindow.open({ anchor: marker, map: innerMap, }); // Open the info window when the marker is clicked. marker.addEventListener('gmp-click', () => { infoWindow.open({ anchor: marker, map: innerMap, }); }); } void init();
The following example sets the maxWidth of an info window:
view example.
Set focus on an info window
To set focus on an info window, call its focus()
method. Consider using this method along with a visible
event prior to setting focus. Calling this method on a non-visible info
window will have no effect. Call open() to
make an info window visible.
Close an info window
By default, an info window remains open until the user clicks the close
control (a cross at top right of the info window), or presses the ESC key.
You can also close the info window explicitly by calling its close()
method.
When an info window is closed, focus moves back to the element that was in
focus prior to the info window being opened. If that element is unavailable,
focus is moved back to the map. To override this behavior, you can listen to
the closeclick event, and manually manage focus as shown in the
following example:
infoWindow.addListener('closeclick', ()=>{ // Handle focus manually. });
Move an info window
There are a couple of ways to change the location of an info window:
- Call
setPosition()on the info window, or - Attach the info window to a new marker using the
InfoWindow.open()method. Note: If you callopen()without passing a marker, theInfoWindowwill use the position specified upon construction through theInfoWindowOptionsobject literal.
Customization
The InfoWindow class does not offer customization. Instead,
see the
customized
popup example
to see how to create a fully customized popup.
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 2026-08-11 UTC.