infowindow delle mappe di google

  • Creatore Discussione Creatore Discussione feed90
  • Data di inizio Data di inizio

feed90

Nuovo Utente
6 Mar 2015
3
0
0
Salve a tutti, ho il seguente problema:
all'interno del sito che sto creando ci sarà una mappa presa da google map entro cui si visualizzeranno diversi markers ad ognuno dei quali verrà associata una infowindow diversa; allo stato attuale dell'arte sono riuscito a prendere gli indirizzo dal database, individuarne le coordinate mediante la funzione geocoder e piazzare i markers sulla mappa ma quando ci vado su col mouse l'infowindow ha sempre lo stesso testo per ogni marker, eppure nel codice ho messo una variabile che si incrementa. Dovrei visualizzare per il marker1 "ciao1", per il marker2 "ciao2" e per il marke3 "ciao3", mentre invece visualizzo sempre "ciao3" per tutti i marker. chi riesce a capire il motivo? GRAZIE MILLE

PHP:
<script type="text/javascript">
<?php 
 //!CREAZIONE MAPPA!!!!!!!!!!
 $risultato=mysqli_query($conn,"select * from tbleventi");
      if (!$risultato)
          {
              die("non c'è la città");	
          }
      $x=1;	
      while($riga=mysqli_fetch_array($risultato))
          {			
  $indirizzo[$x]=$riga["indirizzo"]; 
  $cittamappa[$x]=$riga["Citta"];
  $stato[$x]=$riga["stato"];  
  $x=$x+1;
          }
    $js_indirizzo = json_encode($indirizzo);
    echo "var indirizzo= ". $js_indirizzo . ";\n";
     $js_cittamappa = json_encode($cittamappa);
    echo "var citta= ". $js_cittamappa . ";\n";
     $js_stato = json_encode($stato);
    echo "var stato= ". $js_stato . ";\n";
  ?>
  
    var ausiliaria= "<?php echo($x); ?>";
    for(i=1;i<ausiliaria;i++)
    { 
      var locations =	 ['ciao', indirizzo[i]+  " " + citta[i]+  ", " + stato[i]];      
      //document.write('ciao', indirizzo+  " " + citta+  ", " + stato );
      var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 15,
      center: new google.maps.LatLng(43.253205,-80.480347),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
	 
      var infowindow = new google.maps.InfoWindow({});
      var geocoder = new google.maps.Geocoder();
      var marker;
	  var testo;
	  
      //for (i = 0; i < locations.length; i++) {
      geocoder.geocode( { 'address': locations[1]}, function(results, status) {
      //alert(status);
      if (status == google.maps.GeocoderStatus.OK) {
      //alert(results[0].geometry.location);
      map.setCenter(results[0].geometry.location);
      marker = new google.maps.Marker({
      position: results[0].geometry.location,
      map: map,
	  testo:"ciao" + i
	 

    }); 

      google.maps.event.addListener(marker, 'mouseover', function() { infowindow.setContent(this.testo);infowindow.open(map,this);});
      google.maps.event.addListener(marker, 'mouseout', function() { infowindow.close();});
     }
     else
     {
       alert("some problem in geocode" + status);
     }
    });
   }
  </script>
 
Ultima modifica di un moderatore:

Discussioni simili