Info Windows

  • This webpage provides a basic example of using Google Maps to display a marker with an info window.

  • When clicked, the marker for Uluru (Ayers Rock) in Australia displays an info window containing details about the landmark.

  • The sample code demonstrates how to implement this functionality using either JavaScript or TypeScript.

  • The webpage offers links to documentation, live demos, and instructions for running the sample locally.

This example displays a marker and info window at the center of Australia. If the info window is closed, you can click the marker to display it again.

Read the documentation .

TypeScript

 // This example displays a marker at the center of Australia. 
 // When the user clicks the marker, an info window opens. 
 async 
  
 function 
  
 initMap 
 () 
 : 
  
 Promise<void> 
  
 { 
  
 // Import the needed libraries. 
  
 await 
  
 google 
 . 
 maps 
 . 
 importLibrary 
 ( 
 "maps" 
 ); 
  
 await 
  
 google 
 . 
 maps 
 . 
 importLibrary 
 ( 
 "marker" 
 ); 
  
 // Get the map element and the inner map from it. 
  
 const 
  
 mapElement 
  
 = 
  
 document 
 . 
 querySelector 
 ( 
 'gmp-map' 
 ) 
  
 as 
  
 google 
 . 
 maps 
 . 
 MapElement 
 ; 
  
 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 
  
 google 
 . 
 maps 
 . 
 InfoWindow 
 ({ 
  
 headerContent 
 : 
  
 heading 
 , 
  
 content 
 : 
  
 content 
 , 
  
 ariaLabel 
 : 
  
 "Uluru" 
 , 
  
 maxWidth 
 : 
  
 500 
 , 
  
 // Set max width (optional). 
  
 }); 
  
 // Create the marker. 
  
 const 
  
 marker 
  
 = 
  
 new 
  
 google 
 . 
 maps 
 . 
 marker 
 . 
 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 
 , 
  
 }); 
  
 }); 
 } 
 initMap 
 (); 
  

JavaScript

 // This example displays a marker at the center of Australia. 
 // When the user clicks the marker, an info window opens. 
 async 
  
 function 
  
 initMap 
 () 
  
 { 
  
 // Import the needed libraries. 
  
 await 
  
 google 
 . 
 maps 
 . 
 importLibrary 
 ( 
 "maps" 
 ); 
  
 await 
  
 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 
  
 google 
 . 
 maps 
 . 
 InfoWindow 
 ({ 
  
 headerContent 
 : 
  
 heading 
 , 
  
 content 
 : 
  
 content 
 , 
  
 ariaLabel 
 : 
  
 "Uluru" 
 , 
  
 maxWidth 
 : 
  
 500 
 , 
  
 // Set max width (optional). 
  
 }); 
  
 // Create the marker. 
  
 const 
  
 marker 
  
 = 
  
 new 
  
 google 
 . 
 maps 
 . 
 marker 
 . 
 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 
 , 
  
 }); 
  
 }); 
 } 
 initMap 
 (); 
  

CSS

 /* 
 * Optional: Makes the sample page fill the window. 
 */ 
 html 
 , 
 body 
  
 { 
  
 height 
 : 
  
 100 
 % 
 ; 
  
 margin 
 : 
  
 0 
 ; 
  
 padding 
 : 
  
 0 
 ; 
 } 
  

HTML

<html>
  <head>
    <title>Info Windows</title>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
    <!-- prettier-ignore -->
    <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})
    ({key: "AIzaSyA6myHzS10YXdcazAFalmXvDkrYCp5cLc8", v: "weekly" });</script>
  </head>
  <body>
    <gmp-map center="-25.363,131.044" zoom="4" map-id="DEMO_MAP_ID"></gmp-map>
  </body>
</html>  

Try Sample

Clone Sample

Git and Node.js are required to run this sample locally. Follow these instructions to install Node.js and NPM. The following commands clone, install dependencies and start the sample application.

  
  git 
  
 clone 
  
 https 
 : 
 //github.com/googlemaps-samples/js-api-samples.git 
 
  
  cd 
  
 samples 
 / 
 infowindow 
 - 
 simple 
 
  
  npm 
  
 i 
 
  
  npm 
  
 start 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: