Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как закрыть текущий infowindow в google api v3 (https://javascript.ru/forum/misc/26551-kak-zakryt-tekushhijj-infowindow-v-google-api-v3.html)

chunek 12.03.2012 18:27

как закрыть текущий infowindow в google api v3
 
Подскажите пожалуйста как закрыть infowindow перед открытием следующего? Спасибо заранее!

моё решение: вставить
infowindow.close();
в событии клика перед открытием инфоокна - не работает(

решение подсмотрел в гугл группах, но там видимо какой-то другой случай был.

данная реализация карты, маркеров и кластеризации была подсмотрена тут: http://google-maps-utility-library-v.../examples.html

но почему-то там как раз пример без закрытия infowindow перед открытием нового.

заранее спасибо!


<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js"></script>
<script type="text/javascript" src="data.json"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
   

function initialize() {
       var center = new google.maps.LatLng(66.416666676667,94.25000001);

       map = new google.maps.Map(document.getElementById('map'), {
         zoom: 3,
         center: center,
         mapTypeId: google.maps.MapTypeId.ROADMAP
       });
 
   var markers = [];
       for (var i = 0; i < 3; i++) {

         var dataplace = data.places[i];
         var latLng = new google.maps.LatLng(dataplace.latitude,
             dataplace.longitude);
         var marker = new google.maps.Marker({
           position: latLng
         });
 var baloon = '<div><strong>' + dataplace.place_title + '</strong></div>' + dataplace.description
 var marker = add_marker(dataplace.latitude, dataplace.longitude, dataplace.place_title, baloon);
 
         markers.push(marker);
       }
       var markerCluster = new MarkerClusterer(map, markers);
     }

 function add_marker(lat, lng, title, box_html) {

     var infowindow = new google.maps.InfoWindow({
       content: box_html
     });

     var marker = new google.maps.Marker({
       position: new google.maps.LatLng(lat, lng),
       map: map,
       title: title
     });
 
 
 google.maps.event.addListener(marker, 'click', function () {
       infowindow.close();
       infowindow.open(map, marker);
     });

     return marker;
     }
     google.maps.event.addDomListener(window, 'load', initialize);

</script>


Часовой пояс GMT +3, время: 14:50.