functioninitMap():void{constmap=newgoogle.maps.Map(document.getElementById("map")asHTMLElement,{zoom:8,center:{lat:40.731,lng:-73.997},});constgeocoder=newgoogle.maps.Geocoder();constinfowindow=newgoogle.maps.InfoWindow();(document.getElementById("submit")asHTMLElement).addEventListener("click",()=>{geocodeLatLng(geocoder,map,infowindow);});}functiongeocodeLatLng(geocoder:google.maps.Geocoder,map:google.maps.Map,infowindow:google.maps.InfoWindow){constinput=(document.getElementById("latlng")asHTMLInputElement).value;constlatlngStr=input.split(",",2);constlatlng={lat:parseFloat(latlngStr[0]),lng:parseFloat(latlngStr[1]),};geocoder.geocode({location:latlng}).then((response)=>{if(response.results[0]){map.setZoom(11);constmarker=newgoogle.maps.Marker({position:latlng,map:map,});infowindow.setContent(response.results[0].formatted_address);infowindow.open(map,marker);}else{window.alert("No results found");}}).catch((e)=>window.alert("Geocoder failed due to: "+e));}declareglobal{interfaceWindow{initMap:()=>void;}}window.initMap=initMap;
functioninitMap(){constmap=newgoogle.maps.Map(document.getElementById("map"),{zoom:8,center:{lat:40.731,lng:-73.997},});constgeocoder=newgoogle.maps.Geocoder();constinfowindow=newgoogle.maps.InfoWindow();document.getElementById("submit").addEventListener("click",()=>{geocodeLatLng(geocoder,map,infowindow);});}functiongeocodeLatLng(geocoder,map,infowindow){constinput=document.getElementById("latlng").value;constlatlngStr=input.split(",",2);constlatlng={lat:parseFloat(latlngStr[0]),lng:parseFloat(latlngStr[1]),};geocoder.geocode({location:latlng}).then((response)=>{if(response.results[0]){map.setZoom(11);constmarker=newgoogle.maps.Marker({position:latlng,map:map,});infowindow.setContent(response.results[0].formatted_address);infowindow.open(map,marker);}else{window.alert("No results found");}}).catch((e)=>window.alert("Geocoder failed due to: "+e));}window.initMap=initMap;
/* * 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;}#floating-panel{position:absolute;top:10px;left:25%;z-index:5;background-color:#fff;padding:5px;border:1pxsolid#999;text-align:center;font-family:"Roboto","sans-serif";line-height:30px;padding-left:10px;}#floating-panel{position:absolute;top:5px;left:50%;margin-left:-180px;width:350px;z-index:5;background-color:#fff;padding:5px;border:1pxsolid#999;}#latlng{width:225px;}
<html> <head> <title>Reverse Geocoding</title> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <div id="floating-panel"> <input id="latlng" type="text" value="40.714224,-73.961452" /> <input id="submit" type="button" value="Reverse Geocode" /> </div> <div id="map"></div> <!-- The `defer` attribute causes the script to execute after the full HTML document has been parsed. For non-blocking uses, avoiding race conditions, and consistent behavior across browsers, consider loading using Promises. See https://developers.google.com/maps/documentation/javascript/load-maps-js-api for more information. --> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly" defer ></script> </body> </html>
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.