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.
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>