Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    infowindow googlemap metodo close()

    ciao a tutti, scrivo perchè ho un problema: ho creato una mappa con marker multipli, e ho inserito un Eventi Listner che apre la vignetta infowindow al click del marker. Io vorrei che non ci fosse più di una infowindow aperta, perciò che al click di un'altro marker, l'infowindow precedente si chiude.
    HO provato, ma per ora senza esito positivo....
    Ho letto delle guide che dicono di assegnare soltanto un infowindow alla volta, ma non so se è possibile nel mio caso:
    codice:
    -----
    -----
    map = new google.maps.Map(document.getElementById("mappa_locali"),mapOptions);
        $.ajax({
            type:'GET',
            url:"locali_json.php"+urlz,
            success:function(data){ 
                  var json = JSON.parse(data);
                  for (var i=0; i<json.length; i++) {
                     point = new google.maps.LatLng(json[i].latitudine,json[i].longitudine);
                     var infowindow = new google.maps.InfoWindow;
                     infowindow.setContent('+json[i].nome_locale+');
                     addMarkerz(point,infowindow);
                  }
            }
        })
    }
    function addMarkerz(point,infowindow) { 
        marker = new google.maps.Marker({
            position: point,
            map: map
        });
       google.maps.event.addListener(marker,'click',infoCallback(infowindow, marker));
      markers.push(marker);
      infos.push(infowindow);
    }
    
    function infoCallback(infowindow, marker) { 
              infowindow.close(); 
              return function() {
              infowindow.open(map, marker);
              };
    }
    Qualcuno sa dove sbaglio? non so dove mettere il metodo infowindow.close().
    Grazie in anticipo....
    Stefania
    Destinato alla gioia, l'uomo si nutre di noia

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    var infowindow = new google.maps.InfoWindow;
    
    map = new google.maps.Map(document.getElementById("mappa_locali"),mapOptions);
        $.ajax({
            type:'GET',
            url:"locali_json.php"+urlz,
            dataType: "json",
            success:function(json){ 
                  for (var i=0; i<json.length; i++) {
                     point = new google.maps.LatLng(json[i].latitudine,json[i].longitudine);
                     addMarkerz(point,json[i].nome_locale);
                  }
            }
        })
    }
    function addMarkerz(point,infoContent) { 
        marker = new google.maps.Marker({
            position: point,
            map: map
        });
        marker.infoContent = infoContent;
       google.maps.event.addListener(marker,'click',function(){
          infowindow.setContent(this.infoContent);
          infowindow.open(map, this);
       });
    }

  3. #3
    Ho provato con questo metodo, ma purtroppo così non funziona il listner e al click non succede niente....
    Destinato alla gioia, l'uomo si nutre di noia

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    l'ho provato prima di postartelo e funziona, quando ho tempo vedo se riesco a prepararti una demo

  5. #5
    ok! grazie mille.....
    Destinato alla gioia, l'uomo si nutre di noia

  6. #6
    io per ora ho deciso di far comparire l'infowindow al mouseover e al mouseout di chiamare il metodo close(). Stò provando con questo codice, ma mi scazza quando faccio il mouseover!
    codice:
     map = new google.maps.Map(document.getElementById("mappa_locali"),mapOptions);
        var infowindow = new google.maps.InfoWindow;
        $.ajax({
            type:'GET',
            url:"locali_json.php"+urlz,
            success:function(data){ 
                  var json = JSON.parse(data);
                  for (var i=0; i<json.length; i++) {
                     point = new google.maps.LatLng(json[i].latitudine,json[i].longitudine);
                     var provas = json[i].nome_locale;
                     infowindow.setContent(json[i].nome_locale);
                     addMarkerz(point,infowindow);
                  }
            }
        })
    }
    
    function addMarkerz(point,infowindow) { 
       console.log(infowindow);
       marker = new google.maps.Marker({
            position: point,
            map: map
             });
        google.maps.event.addListener(marker,'mouseover',function(){
            infowindow.open(map, marker); 
          
        });
       google.maps.event.addListener(marker,'mouseout',function(){
         infowindow.close(map,marker);   
      }); 
      markers.push(marker);
      infos.push(infowindow);
    }
    Quando metto il mouse su un marker a quel punto rimane visibile solo il marker e l'infowindow, gli altri marker vengono oscurati, la mappa invece diventa tutta blu.
    Boh
    Destinato alla gioia, l'uomo si nutre di noia

  7. #7

  8. #8
    Grazie mille! più chiaro di così non si può....
    Ora funziona!
    Grazie ancora infinitamente

    Stefania
    Destinato alla gioia, l'uomo si nutre di noia

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.