Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Map API v3 ~ Simply Close an infowindow?

Trying to simply close an infowindow?

I already have an array of markers, so something like this would be good. Thanks

MyMarkers[i].infowindow.close(); 
like image 638
Harry Avatar asked May 31 '10 22:05

Harry


People also ask

How do I know if InfoWindow is open?

Calling InfoWindow. getOpenedState() returns a boolean which reflects the state (opened/closed) of the infowindow.

How do I edit InfoWindow on Google Maps?

You can modify the whole InfoWindow using jquery alone... var popup = new google. maps. InfoWindow({ content:'<p id="hook">Hello World!

What is InfoWindow in Google map?

An InfoWindow displays content (usually text or images) in a popup window above the map, at a given location. The info window has a content area and a tapered stem. The tip of the stem is attached to a specified location on the map. Info windows appear as a Dialog to screen readers.


1 Answers

With the v3 API, you can easily close the InfoWindow with the InfoWindow.close() method. You simply need to keep a reference to the InfoWindow object that you are using. Consider the following example, which opens up an InfoWindow and closes it after 5 seconds:

<!DOCTYPE html> <html>  <head>    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>    <title>Google Maps API InfoWindow Demo</title>    <script src="http://maps.google.com/maps/api/js?sensor=false"            type="text/javascript"></script> </head>  <body>   <div id="map" style="width: 400px; height: 500px;"></div>    <script type="text/javascript">     var map = new google.maps.Map(document.getElementById('map'), {       zoom: 4,       center: new google.maps.LatLng(-25.36388, 131.04492),       mapTypeId: google.maps.MapTypeId.ROADMAP     });      var marker = new google.maps.Marker({       position: map.getCenter(),       map: map     });      var infowindow = new google.maps.InfoWindow({       content: 'An InfoWindow'     });      infowindow.open(map, marker);      setTimeout(function () { infowindow.close(); }, 5000);   </script> </body> </html> 

If you have a separate InfoWindow object for each Marker, you may want to consider adding the InfoWindow object as a property of your Marker objects:

var marker = new google.maps.Marker({   position: map.getCenter(),    map: map });  marker.infowindow = new google.maps.InfoWindow({   content: 'An InfoWindow' }); 

Then you would be able to open and close that InfoWindow as follows:

marker.infowindow.open(map, marker); marker.infowindow.close(); 

The same applies if you have an array of markers:

var markers = [];  marker[0] = new google.maps.Marker({   position: map.getCenter(),    map: map });  marker[0].infowindow = new google.maps.InfoWindow({   content: 'An InfoWindow' });  // ...  marker[0].infowindow.open(map, marker); marker[0].infowindow.close(); 
like image 54
Daniel Vassallo Avatar answered Sep 23 '22 17:09

Daniel Vassallo