Google Maps API v3 - Visualizzare markers e infowindow da database MySQL

eldivino87

Nuovo Utente
14 Gen 2012
5
0
0
Problema: visualizzare una serie di markers in Gmaps estratti da database MySQL.

La tabella del database (nome: 'website') ha i seguenti campi:
id, id_utente (fk), nome, indirizzo, latitudine, longitudine

Come si può facilmente intuire, per ogni negozio online memorizzo il nome e la sua posizione (indirizzo e coordinate) fisica.

Il mio intento è quello di visualizzare una mappa e visualizzare tutti i negozi attraverso dei markers. Poi, se si clicca su un marker deve comparire una infowindow contente le informazioni del negozio (nome e indirizzo).

Il codice che ho sviluppato è il seguente. Il problema è che mi crea i marker per tutti i negozi, pero non mi crea le infowindow per tutti i marker ma solo dell'ultimo.

PHP:
<body>
<div id="map_full">
			
<script> // script per Google Maps
					
function visualizza_mappa() {
// ... [visualizzazione mappa nel div "map_full"]
// Centriamo la mappa sulle coordinate di Napoli

	var map = new google.maps.Map(document.getElementById('map_full'), options);

<?php
	// Recupero le informazioni su tutti i siti segnalati
	$query_siti = mysql_query("SELECT * FROM website") or die (mysql_error());
				
	// Verifichiamo che siano presenti records
	if (mysql_num_rows($query_siti) > 0) {
				
		//se la tabella contiene records mostriamo tutti i siti attraverso un ciclo
		while ($riga_sito = mysql_fetch_array($query_siti)) {
					
		// Recuperiamo varie informazioni
		$id_sito = $riga_sito['id'];
		$nome_sito = stripslashes($riga_sito['nome']);
		$latitudine = $riga_sito['latitudine'];
		$longitudine = $riga_sito['longitudine'];
	?>
									
		var siteLatLng = new google.maps.LatLng(<?php echo $latitudine ?>,<?php echo $longitudine?>);
		var marker = new google.maps.Marker({
			position: siteLatLng,
			map: map,
			title: "Prova"
		});
								
		var infowindow2 = new google.maps.InfoWindow({
			content: 'Prova'
		});
								
          	// Adding a click event to the marker
		google.maps.event.addListener(marker, 'click', function() {
			// Opening the InfoWindow
			infowindow2.setPosition(siteLatLng);
			infowindow2.open(map, marker);
		});
								

							
		<?php
		}

	}
?>
</body>
 

eldivino87

Nuovo Utente
14 Gen 2012
5
0
0
Forse ho risolto. Riporto la porzione di codice "incriminata". Sto ancora testandola.

PHP:
// Definiamo le coordinate del website corrente
var siteLatLng = new google.maps.LatLng(<?php echo $latitudine ?>,<?php echo $longitudine?>);

// Creiamo un marcatore
var marker = new google.maps.Marker({
	position: siteLatLng,
	map: map,
	title: "<?php echo $nome_sito ?>"
});

// Creiamo la infowindow
var infowindow2 = new google.maps.InfoWindow();
	  
// Poniamoci in attesa dell'evento 'click' sull'oggetto 'marker'
google.maps.event.addListener(marker, 'click', function() {
	// Settiamo la posizione della infowindow e il suo contenuto per poi aprirla nella posizione corrente
	infowindow2.setPosition(siteLatLng);
	infowindow2.setContent("<?php echo "Attività<br><br><a href='siti_visual.php?id=$id_sito'>$nome_sito</a>" ?>");
	infowindow2.open(map, this); //This è un puntatore all'oggetto con cui stiamo lavorando.
});
 

peppepegasus

Utente Attivo
20 Ott 2006
108
0
0
ciao,

facendo una ricerca sono pervenuto al tuo post..ho lo stesso problema..vorrei capire se il codice che hai inserito nel tuo primo post è sufficiente a far visualizzare i marker sulla mappa..mentre il secondo post e il relativo codice inserito correggere l'errore?
grazie mi sarebbe d'aiuto la tua risposta.
ciao