We can draw objects on the map and bind them to a desired latitude and longitude. These are called overlays. Google Maps provides various overlays as shown below.
To mark a single location on the map, Google Maps provides markers. These markers use a standard symbol and these symbols can be customized. This chapter explains how to add markers, and how to customize, animate, and remove them.
You can add a simple marker to the map at a desired location by instantiating the marker class and specifying the position to be marked using latlng, as shown below.
var marker = new google.maps.Marker({ position: new google.maps.LatLng(19.373341, 78.662109), map: map, });
The following code sets the marker on the city Hyderabad (India).
<!DOCTYPE html> <html> <head> <script src = "https://maps.googleapis.com/maps/api/js"></script> <script> function loadMap() { var mapOptions = { center:new google.maps.LatLng(19.373341, 78.662109), zoom:7 } var map = new google.maps.Map(document.getElementById("sample"),mapOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(17.088291, 78.442383), map: map, }); } </script> </head> <body onload = "loadMap()"> <div id = "sample" style = "width:580px; height:400px;"></div> </body> </html>
It produces the following output −
After adding a marker to the map, you can go further and add animations to it such as bounce and drop. The following code snippet shows how to add bounce and drop animations to a marker.
//To make the marker bounce` animation:google.maps.Animation.BOUNCE //To make the marker drop animation:google.maps.Animation.Drop
The following code sets the marker on the city Hyderabad with an added animation effect −
<!DOCTYPE html> <html> <head> <script src = "https://maps.googleapis.com/maps/api/js"></script> <script> function loadMap() { var mapOptions = { center:new google.maps.LatLng(17.377631, 78.478603), zoom:5 } var map = new google.maps.Map(document.getElementById("sample"),mapOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(17.377631, 78.478603), map: map, animation:google.maps.Animation.Drop }); } </script> </head> <body onload = "loadMap()"> <div id = "sample" style = "width:580px; height:400px;"></div> </body> </html>
It produces the following output −
You can use your own icons instead of the default icon provided by Google Maps. Just set the icon as icon:'ICON PATH'. And you can make this icon draggable by setting draggable:true.
The following example shows how to customize the marker to a desired icon −
<!DOCTYPE html> <html> <head> <script src = "https://maps.googleapis.com/maps/api/js"></script> <script> function loadMap() { var mapOptions = { center:new google.maps.LatLng(17.377631, 78.478603), zoom:5 } var map = new google.maps.Map(document.getElementById("sample"),mapOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(17.377631, 78.478603), map: map, draggable:true, icon:'/scripts/img/logo-footer.png' }); marker.setMap(map); } </script> </head> <body onload = "loadMap()"> <div id = "sample" style = "width:580px; height:400px;"></div> </body> </html>
It produces the following output −
You can remove an existing marker by setting up the marker to null using the marker.setMap() method.
The following example shows how to remove the marker from a map −
<!DOCTYPE html> <html> <head> <script src = "https://maps.googleapis.com/maps/api/js"></script> <script> function loadMap() { var mapOptions = { center:new google.maps.LatLng(17.377631, 78.478603), zoom:5 } var map = new google.maps.Map(document.getElementById("sample"),mapOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(17.377631, 78.478603), map: map, animation:google.maps.Animation.Drop }); marker.setMap(null); } </script> </head> <body onload = "loadMap()"> <div id = "sample" style = "width:580px; height:400px;"></div> </body> </html>
It produces the following output −