<!DOCTYPE html> <html> <head> <style type="text/css"> html {height:100%} body {height:100%;margin:0;padding:0} #googleMap {height:40%} </style> <title>Google Map Template with Geocoded Address</title> <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> <!-- Google Maps API --> <script> var map; // Google map object // Initialize and display a google map function Init() { // Create a Google coordinate object for where to initially center the map document.getElementById( "address" ).value = "Milano, Italia"; var latlng = new google.maps.LatLng( 45.4654219, 9.18592430000001); // Milan, Italy // Map options for how to display the Google map var mapOptions = { zoom: 17, center: latlng }; // Show the Google map in the div with the attribute id 'map-canvas'. map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); } // Update the Google map for the user's inputted address function UpdateMap( ) { var geocoder = new google.maps.Geocoder(); // instantiate a geocoder object // Get the user's inputted address var address = document.getElementById( "address" ).value; // Make asynchronous call to Google geocoding API geocoder.geocode( { 'address': address }, function(results, status) { var addr_type = results[0].types[0]; // type of address inputted that was geocoded if ( status == google.maps.GeocoderStatus.OK ) { var i; document.getElementById('dropd').options.length = 0; for (i=0; i<results.length; i++) { var opt = document.createElement('option'); opt.value = results[i].formatted_address; opt.innerHTML = results[i].formatted_address; document.getElementById('dropd').options.add(opt); } ShowLocation( results[0].geometry.location, address, addr_type ); } else alert("Geocode was not successful for the following reason: " + status); }); } // Show the location (address) on the map. function ShowLocation( latlng, address, addr_type ) { // Center the map at the specified location map.setCenter( latlng ); // Set the zoom level according to the address level of detail the user specified var zoom = 17; switch ( addr_type ) { case "administrative_area_level_1" : zoom = 6; break; // user specified a state case "locality" : zoom = 10; break; // user specified a city/town case "street_address" : zoom = 17; break; // user specified a street address } map.setZoom( zoom ); // Place a Google Marker at the same location as the map center // When you hover over the marker, it will display the title if (ShowLocation.marker) { ShowLocation.marker.setMap(null); ShowLocation.marker = null; } ShowLocation.marker = new google.maps.Marker( { position: latlng, map: map, title: address }); // Create an InfoWindow for the marker var contentString = "" + address + ""; // HTML text to display in the InfoWindow var infowindow = new google.maps.InfoWindow( { content: contentString } ); // Set event to display the InfoWindow anchored to the marker when the marker is clicked. google.maps.event.addListener( marker, 'click', function() { infowindow.open( map, marker ); }); } function SelChanged() { dropdown = document.getElementById('dropd'); ix = dropdown.selectedIndex; var selected = dropdown.options[ix].value; if (document.getElementById( "address" ).value != selected) { document.getElementById( "address" ).value = selected; UpdateMap(); } } function ClrInput() { document.getElementById( "address" ).value = ""; document.getElementById('dropd').options.length = 0; } // Call the method 'Init()' to display the google map when the web page is displayed ( load event ) google.maps.event.addDomListener( window, 'load', Init ); </script> <style> /* style settings for Google map */ #map-canvas { width : 100%; /* map width */ height: 500px; /* map height */ } </style> </head> <body> <div align="center"> <!-- Dislay Google map here --> <div id='map-canvas' > </div> <br> <div> <label for="address"> Address: </label> <input type="text" id="address"/> <button onclick="UpdateMap()">Locate </button> <button onclick="ClrInput()">ClrInput </button> <br> <select id="dropd" size=1 onChange="SelChanged()"> <option value="milano">Milano, Italia </option> </select> </div> </div> </body> </html>