




 
 
 
  <html lang="en">
  <head>
    <title>Simple Map</title>
  <script>
      // linking google maps API: copy and paste and add your own key
      // put your own key in the key section
      // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.).  
      (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: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      v: "weekly",
      });
      </script>
    <style>
      /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
      #map {
        height: 100%;
      }
      /* Optional: Makes the sample page fill the window. */
      html,
      body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
      </head>
  <body>
    
    <div id="map"></div>
     
    <script>
    
      let map;
     
      // Define an asynchronous function to initialize the Google Map.
      // The "async" keyword indicates that this function will perform asynchronous operations, 
      // allowing us to use await inside it to wait for the loading of the Google Maps library.
          async function initMap() {
      
        // Request libraries when needed, not in the script tag.
            const { Map } = await google.maps.importLibrary("maps");
	  
        // make a map inside the div with id "map"
        // with center, and zoom setting, mapTypeID
           map = new Map(document.getElementById("map"), {
           center: { lat: -34.397, lng: 150.644 },
           zoom: 8,
           mapId: "DEMO_MAP_ID",   // so you can control how a map looks via the cloud interface and save the setting as mapID
        });
      }
      
      initMap();
      
    </script>
  </body>
  </html>
 
Changing values and getting Values using javascript
<!DOCTYPE html>
<html lang="en">
<head>
<title>Simple Map</title>
	
 <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: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx",
	  v: "weekly",
      });
      
</script>
	
<style>
body {
  font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
  font-size: small;
  background: #fff;
}
#map {
  width: 100%;
  height: 500px;
  border: 1px solid #000;
}
</style>
</head>
<body>
<h1> Hello, My First Google Map </h1>
<input type="button" value="getValues" id="getValues" />
<input type="button" value="changeValues" id="changeValues" />
<div id="map"></div>
<script>
  let map;
  
  async function initMap() {
      // Request needed libraries.
      const { Map } = await google.maps.importLibrary("maps");
      // you can isolate the options into an object literal like this
      var options = {
	  	center: {lat: 37.09, lng: -95.71},
	  	zoom: 3,
		mapId: "DEMO_MAP_ID",   // so you can control how a map looks via the cloud interface and save the setting as mapID
      }
	  
      // create new map into div with id "map" with optios
      map = new Map(document.getElementById("map"), options);
      //event handler for button 1
      document.getElementById('getValues').onclick = function(){
	  	alert("Current Zoom level is " + map.getZoom());
	  	alert("Current Center is " + map.getCenter());    // BTW, this is a convenient way to get lat & lang
	  	alert("The current mapType is " + map.getMapTypeId());
      }
      //event handler for button 2
      document.getElementById("changeValues").onclick = function(){
	  var options = {
	      center: {lat: 45.4809680038112, lng: -122.63033866882324},
	      zoom: 18,
	  }
	  map.setOptions(options);
	  }
  }
  initMap();
  
</script>
</body>
</html>
Here we are creating a map and creating a marker
<!--
setting marker in a map
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Simple Map</title>
  
    <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: "XXXXXXXXXXXXXXXXXXXXXXXX",
	  v: "weekly",
      });
      
    </script>
  
  <style>
    body {
      font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
      font-size: small;
      background: #fff;
    }
    #mapdiv {
      width: 100%;
      height: 500px;
      border: 1px solid #000;
    }
</style>
</head>
<body>
<h1> My First Google Map </h1>
<div id="mapdiv"></div>
    
<script>
  var map;
  
  async function initMap() {
    // Request needed libraries.
    const { Map } = await google.maps.importLibrary("maps");
    const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
      var options = {
        zoom: 16,
	    center: {lat: 45.481, lng: -122.6303},
            mapId: "DEMO_MAP_ID",   // so you can control how a map looks via the cloud interface
      };
    
      map = new Map(document.getElementById('mapdiv'), options);
    
     // Add a marker to the map 
      const marker = new AdvancedMarkerElement({
        position: { lat: 45.481, lng: -122.6303 },
        map: map, // Attach the marker to the map
      });
  }
  initMap();
</script>
</body>
</html>
  03_marker_googlemapv2_marker_htmlcss.html Here we are creating a marker created through html and css
<!--
add a marker. marker is described using html and css 
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Simple Map</title>
    
    <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: "AIzaSyCMesXxnNB-W70Kbw0y0-LS98UN798W1_w",
	  v: "weekly",
      });
      
    </script>
    <style>
        body {
          font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
          font-size: small;
          background: #fff;
        }
        #mapdiv {
          width: 100%;
          height: 500px;
          border: 1px solid #000;
        }
          /* HTML marker styles */
        .reedcss {
          background-color: #A70E16;
          border-radius: 8px;
          color: #FFFFFF;
          font-size: 14px;
          padding: 10px 15px;
          position: relative;
        }
          /* adds a small triangle below the .reedcss element */
         .reedcss::after {
          content: "";
          position: absolute;
          left: 50%;   /* from left 50% so middle */
          top: 100%;   /* from top 100% so bottom */
          transform: translate(-50%, 0);
          width: 0;
          height: 0;
          border-left: 8px solid transparent;   /* left triangle */
          border-right: 8px solid transparent;  /*  right triangle */
          border-top: 8px solid #A70E16;  /* top of triangle */
        }
    </style>
</head>
<body>
<h1> My First Google Map </h1>
<div id="mapdiv"></div>
<script>
  var map;
  
  async function initMap() {
    // Request needed libraries.
    const { Map } = await google.maps.importLibrary("maps");
    const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
      var options = {
        zoom: 16,
	    center: {lat: 45.481, lng: -122.6303},
        mapId: "DEMO_MAP_ID",   // so you can control how a map looks via the cloud interface
      };
    
      map = new Map(document.getElementById('mapdiv'), options);
     // create a new DIV element and store in reedDiv
      const reedDiv = document.createElement("div");
      // set content
      reedDiv.innerHTML = "welcome to Reed";
      // apply CSS class "reedcss" to div object
      reedDiv.className = "reedcss"; // css style name
          
     // Add a marker using the traditional Marker class
      const marker = new AdvancedMarkerElement({
        position: { lat: 45.481, lng: -122.6303 },
        map: map, // Attach the marker to the map
        content: reedDiv,
      });
  }
  initMap();
</script>
</body>
</html>
03_marker_googlemapv3_marker_img.html  
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Simple Map</title>
  <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: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
	  v: "weekly",
      });
      
  </script>
  <style>
      body {
        font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
        font-size: small;
        background: #fff;
      }
      #mapdiv {
        width: 100%;
        height: 500px;
        border: 1px solid #000;
      }
  </style>
</head>
<body>
<h1> My First Google Map </h1>
<div id="mapdiv"></div>
<script>
  var map;
  
  async function initMap() {
    // Request needed libraries.
    const { Map } = await google.maps.importLibrary("maps");
    const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
      var options = {
        zoom: 16,
	    center: {lat: 45.481, lng: -122.6303},
        mapId: "DEMO_MAP_ID",   // so you can control how a map looks via the cloud interface
      };
      map = new Map(document.getElementById('mapdiv'), options);
    
    // create <img> element 
    const beachFlagImg = document.createElement("img");
    // set the src attribute to a png image file
    beachFlagImg.src =
    "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png";
          
    // A marker with a with a URL pointing to a PNG.
      const marker = new AdvancedMarkerElement({
        position: { lat: 45.481, lng: -122.6303 },
        map: map, // Attach the marker to the map
        content: beachFlagImg,
        title: "A marker using a custom PNG Image",
      });
  }
  initMap();
</script>
</body>
</html>
    
<html lang="en">
<head>
  <title>Simple Map</title>
  
  <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: "AIzaSyCMesXxnNB-W70Kbw0y0-LS98UN798W1_w",
	  v: "weekly",
      });
      
  </script>
  
  <style>
      body {
        font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
        font-size: small;
        background: #fff;
      }
      #mapdiv {
        width: 100%;
        height: 500px;
        border: 1px solid #000;
      }
    
    
        /* HTML marker styles */
        .artcss {
          background-color: #A70E16;
          border-radius: 8px;
          color: #FFFFFF;
          font-size: 14px;
          padding: 10px 15px;
          position: relative;
        }
  </style>
</head>
<body>
<h1> My First Google Map </h1>
<div id="mapdiv"></div>
<script>
  async function initMap() {
    // Request needed libraries.
    const { Map, InfoWindow } = await google.maps.importLibrary("maps");
    const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary(
      "marker",
    );
    
    const map = new Map(document.getElementById("mapdiv"), {
      zoom: 15,
      center: {lat: 45.4809680038112, lng: -122.63033866882324},
      mapId: "DEMO_MAP_ID",   // so you can control how a map looks via the cloud interface and save the setting as mapID
    });
     // Create the marker pin element.
    const pin = new PinElement({
      glyph: "E", // Label for the pin
      scale: 1.5,
    });
    
    
     // Create the marker.
    const marker = new AdvancedMarkerElement({
      position:{lat: 45.4809680038112, lng: -122.63033866882324},
      map,
      title: "Eliot",
      content: pin.element,
      gmpClickable: true, // Ensures the marker is clickable
    });
      // Create an info window to share between markers.
    const infoWindow = new InfoWindow();
    
    
     // Add a click listener for the marker.
    marker.addListener("click", function (event) {
      infoWindow.close();
      infoWindow.setContent(marker.title); // Set the content to the marker's title
      infoWindow.open(map, marker); // Open the info window anchored to the marker
  });
    
    /*** marker two ***/
    
         // Create the marker pin element.
    const pin2 = new PinElement({
      glyph: "S", // Label for the pin
      scale: 2,
    });
    
         // Create the marker.
    const marker2 = new AdvancedMarkerElement({
      position:{lat: 45.480546023521846, lng: -122.62529827164177},
      map,
      title: "Studio Art",
      content: pin2.element,
      gmpClickable: true, // Ensures the marker is clickable
    });
    
    
      // Create an info window to share between markers.
    const infoWindow2 = new InfoWindow();
    
    
      // create a new DIV element and store in reedDiv
      const artDiv = document.createElement("div");
    
      //  idea was to to the below but not elegant so creating elements dynamically below
      //  artDiv.innerHTML = "<h1>Art Dept here!<h1><img style='width:50%' src='https://www.reed.edu/assets-main/images/feature-panels/reed-home-reedies-students-laughing.jpg'>";
      // Create elements dynamically
      const heading = document.createElement("h1");
      heading.textContent = "Art Dept here!";
      const image = document.createElement("img");
      image.style.width = "50%";
      image.src = "https://www.reed.edu/assets-main/images/feature-panels/reed-home-reedies-students-laughing.jpg";
      artDiv.appendChild(heading);
      artDiv.appendChild(document.createElement("br")); // Optional line break
      artDiv.appendChild(image);
      artDiv.className = "artcss";     // apply CSS class "artcss" to div object
    
     // Add a click listener for the marker.
    marker2.addListener("click", function (event) {
      infoWindow2.close();
      infoWindow2.setContent(artDiv); // Set the content to the marker's title
      infoWindow2.open(map, marker2); // Open  info window2 anchored to  marker2
  });
 
  }
initMap();
  
  
  </script>
</body>
</html>
<script>
var myDiv;
window.onload = function(){
  myDiv = document.getElementById('myDiv');
  if (navigator.geolocation){
          navigator.geolocation.getCurrentPosition(showPosition);
  }
  else {
    myDiv.innerHTML = "Geolocation is not supported by this browser.";
  }
}
function showPosition(position){
  myDiv.innerHTML = "Latitude: " + position.coords.latitude + "Longitude: " + position.coords.longitude;
}
</script>
08_simple_geolocation_html5.html:
Getting location and print into a DIV