di: Filippo Buratti 11 Gennaio 2010
L'oggetto InfoWindow apre una tooltip da qualche parte su una mappa, normalmente in corrispondenza di un marker, permettendo di visualizzare informazioni personalizzate. Dal momento che è possibile inserire testo in formato HTML, questa funzionalità può essere utilizzata in modi molto interessanti.
Il namespace di questo oggetto è google.map.InfoWindow che accetta un argomento opzionale (options) in cui è possibile definire alcuni valori tra cui anche il contenuto (content).
Per aprire la InfoWindow è necessario utilizzare il metodo open(), che dispone di due argomenti: l'identificativo dell'istanza della mappa e, opzionalmente, un ancoraggio a cui puntare (deve essere un oggetto della mappa che disponga della proprietà positions).
È consuetudine associare l'apertura della infoWindow in seguito a un evento (click del mouse, tastiera) dell'utente su un oggetto della mappa, e le API V.3 forniscono per questo impiego uno specifico namespace, google.maps.event che tramite il metodo addListener() permette di registrare l'evento, e al suo verificarsi, di effettuare varie operazioni come ad esempio richiamare una funzione personalizzata.
Ecco l'esempio in opera e il codice aggiornato:
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps API v3: InfoWindow</title>
<style type="text/css">
html, body { margin:0; padding:0; width:100%; height:100%; }
body { background:#FFFFFF; color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; line-height:150%; text-align:center;}
#map { width:100%; height:100%; }
#tooltip { padding:10px; text-align:left; }
#tooltip p, #tooltip img { float:left; display:inline; padding:0; margin:0 10px 0 0; }
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var initialize = function() {
var latlng = new google.maps.LatLng(42.745334,12.738430);
var options = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map'), options);
var marker = new google.maps.Marker(
{
position: latlng,
map: map,
icon: 'http://google-maps-icons.googlecode.com/files/country.png',
flat: true
}
);
var tooltip = '<div id="tooltip">'+
'<img src="spoleto.jpg" alt="Spoleto">'+
'<p><strong>Comune di Spoleto</strong><br>'+
'cap: 06049<br>'+
'provincia: Perugia<br>'+
'nazione. Italia</p>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: tooltip
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
window.onload = initialize;
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
Termina qui la prima parte. Nella seconda, online tra una settimana, affronteremo gli ultimi due argomenti: la ricerca degli indirizzi e il calcolo del percorso tra due località.
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida jQuery UICreare siti ricchi e dinamici con jQuery UI, il progetto ufficiale... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |