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

    API maps, infowindows, dinamiche, come??

    Ciao a tutti, ho una funzione javascript che prende in input un database in json, contenente delle locazioni,ognuna delle quali possiede latitudinde,longitudine,ecc...
    Un ciclo for crea un marker per ogni locazione. In più, ad ogni ciclo crea una "vignetta" infowindow associata al marker che ha appena creato..il mio problema è:
    vorrei che ogni infowindow contenesse le informazioni riguardanti il marker creato, mentre adesso come adesso, tutte le infowindow contengono le informazioni del PRIMO marker che viene creato.

    Ecco il pezzo di codice interessato


    for (var i=0; i < conta; i++) {

    var marker = new google.maps.Marker({
    position: new google.maps.LatLng(latit[i], longit[i]), // coordinate
    map: mappa, // specifico in quale mappa aggiungerli
    title:etichette[i], // specifico il titolo del marker
    });// fine creazione marker

    all_markers.push(marker);// insrisce il marker appena creato nell'array dei markers

    var contenuto = informazioni[i];

    var infowindow = new google.maps.InfoWindow( { content:'<div class="infowin">'+contenuto+'</div>' }); // crea una finestra informativa (vignetta)

    google.maps.event.addListener(all_markers[i], 'click', function(e) { infowindow.open(mappa, this);
    });

    } // fine ciclo FOR


    l'array informazioni[i] contiene le informazioni, e vorrei che in ogni vignetta infowindow venisse caricato il contenuto giusto, mentre così in OGNI vignetta viene caricato il contenuto di informazioni[0],

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    sei sicuro che vengano caricate sempre le informazioni del primo marker? a rigor di logica dovrebbe mostrarti sempre l'ultimo.

  3. #3
    Probabilmente hai ragione, ho fatto delle prove sono con due locations,mi sarò confuso...

    Ma quindi se,solo a leggere il codice, hai notato questa cosa, riesci anche a dirmi come risolvere il mio problema??

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    devi associare il marker alla infowindow, il modo + veloce è questo:

    codice:
    ...
    marker.content = informazioni[i];
    all_markers.push(marker);// insrisce il marker appena creato nell'array dei markers
    
    var infowindow = new google.maps.InfoWindow(); // crea una finestra informativa (vignetta)
     
    google.maps.event.addListener(all_markers[i], 'click', function(e) { 
    infowindow.setContent(this.content);      
    infowindow.open(mappa, this); 
    });
    ...

  5. #5
    Perfetto!!
    Ti ringrazio moltissimo!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.