Skip to content
This repository was archived by the owner on Jan 13, 2023. It is now read-only.

Latest commit

 

History

History
59 lines (59 loc) · 2.07 KB

File metadata and controls

59 lines (59 loc) · 2.07 KB

< Previous     Next >


Click to Zoom

We still use the map from the previous page: a map centered on London, England.
Now we want to zoom when a user is clicking on the marker (We attach an event handler to a marker that zooms the map when clicked).
Here is the added code:
// Zoom to 9 when clicking on marker
google.maps.event.addListener(marker,'click',function() {
  map.setZoom(9);
  map.setCenter(marker.getPosition());
});
I register for event notifications using the addListener() event handler. That method takes an object, an event to listen for, and a function to call when the specified event occurs.

Pan Back to Marker

Here, we save the zoom changes and pan the map back after 3 seconds
google.maps.event.addListener(marker,'click',function() {
  var pos = map.getZoom();
  map.setZoom(9);
  map.setCenter(marker.getPosition());
  window.setTimeout(function() {map.setZoom(pos);},3000);
});

Open an InfoWindow When Clicking on The Marker

Click on the marker to show an infowindow with some text:
var infowindow = new google.maps.InfoWindow({
  content:"Hello World!"
});
google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});
Click Here for more 'InfoWindow' information

Set Markers and Open InfoWindow for Each Marker

Run a function when the user clicks on the map.
The placeMarker() function places a marker where the user has clicked, and shows an infowindow with the latitudes and longitudes of the marker:
google.maps.event.addListener(map, 'click', function(event) {
  placeMarker(map, event.latLng);
});
function placeMarker(map, location) {
  var marker = new google.maps.Marker({
    position: location,
    map: map
  });
  var infowindow = new google.maps.InfoWindow({
    content: 'Latitude: ' + location.lat() +
    '
Longitude: ' + location.lng() }); infowindow.open(map,marker); }