<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