L’esempio che segue è un’aggiunta allo script che potete studiare e scaricare a questo indirizzo. Per ogni esigenza di base, fate riferimento a quell’articolo, dove ho spiegato nel dettaglio come creare e personalizzare una mappa di Google.
In questo articolo faremo un ulteriore passo avanti e vedremo come personalizzare l’aspetto del tooltip (il fumetto che appare sopra l’indicatore) e come aggiungere un secondo marker (segnalino). L’operazione è piuttosto semplice e non richiede grandi spiegazioni.
A ogni modo potete scaricarvi liberamente lo script, che è standalone e completamente funzionante. Lo script è la continuazione del precedente: i dati sono gli stessi con l’aggiunta della personalizzazione dell’aspetto del tooltip e di un nuovo marker.
Download script
Personalizzare il tooltip
Per modificare l’aspetto del tooltip, vi basta semplicemente agire sul css e modificare a piacere i parametri dell’identificare “tooltip”. Riporto un esempio minimale, che si limita soltanto ad allargare il tooltip a 300px; naturalmente potete agire come meglio credete sul div. Il codice può essere messo prima della chiusura del tag della pagina:
1 2 3 |
<style> #tooltip{ width:300px;} </style> |
Inoltre, abbiamo già visto in altri articoli che il testo interno del balloon può essere formattato a piacere con i comuni tag html, per esempio:
1 |
<strong>Via Delle Muratte, 90</strong><br> |
Aggiungere un secondo marker
Nella mappa potete aggiungere un numero illimitato di marker. L’unica cosa che dovete fare è replicare il sistema di creazione dell’indicatore e assegnargli le dovute coordinate. Inoltre, se lo volete dotare di un proprio tooltip, dovrete replicare anche il suo riferimento associandolo al marker. Per esempio:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
var latlng_newmarker = new google.maps.LatLng(41.903,12.483339); [...] /*questa parte aggiunge un secondo marker nella pagina*/ var marker2 = new google.maps.Marker( { position: latlng_newmarker, map: map, flat: true } ); var tooltip2 = '<div id="tooltip">'+ '<p><strong>Via Delle Muratte, 90</strong><br>'+ 'secondo tooltip</p>'+ '</div>'; var infowindow2 = new google.maps.InfoWindow({ content: tooltip2 }); infowindow2.open(map,marker2); |
In pratica, ho creato la nuova variabile latlng_newmarker
e gli ho associato delle coordinate leggermente spostate rispetto a quelle del marker originario. Dopodiché ho creato il nuovo segnalino (marker2
) associandogli questa variabile, e il nuovo fumetto (tooltip2
) che ho poi richiamato sulla mappa con l’ultima istruzione (assegnata a infowindow2
).
Il risultato è la creazione di un nuovo segnalino sulla mappa un po’ più spostato rispetto all’originale, con il proprio tooltip.
Ciao,
perdona in anticipo le ingenue domande.
Ho creato una mappa con google map.
Questa —> https://maps.google.it/maps/ms?ie=UTF8&t=k&hl=it&source=embed&msa=0&msid=212650734766579919243.0004a549a212dca104157&ll=41.738528,13.051758&spn=11.473056,30.761719&z=5
Vorrei lasciare tutti i miei segnaposti visibili nella stessa pagina (ad esempio così —> http://www.incompiutosiciliano.org/opere)
Poiché qui nel mio post si vedono solo quelli della mia prima pagina —> http://wilfingarchitettura.blogspot.it/p/wikio.html
Come posso fare?
Inoltre come posso cambiare l’icona?
Saluti,
Salvatore D’Agostino
Non ti preoccupare, nessuna domanda è troppo ingenua quando uno vuole imparare 😉
Per personalizzare il marker dai un’occhiata a questo link:
http://www.manuelmarangoni.it/sir-bit/800/google-maps-come-integrare-e-personalizzare-una-mappa-nel-nostro-sito-parte-2/
Non ho capito invece l’altra domanda: vuoi creare una mappa unica invece di due pezzi? Perché se è così ti basta aggiungere le coordinate della seconda mappa nella prima e avrai tutti i segnalini nella prima mappa (dopo ovviamente la seconda la puoi cancellare)
Grazie,
ho capito solo adesso che tu hai scritto un codice per inserire una mappa dal blog.
Io invece ho prima fatto una mappa su google map e dopo ricopiato il codice sul blog.
Significa che devo rifare tutto?
La mappa è questa https://maps.google.it/maps/ms?ie=UTF8&t=k&hl=it&source=embed&msa=0&msid=212650734766579919243.0004a549a212dca104157&ll=41.7
e come vedi google dopo il 200° segnaposto ha creato una nuova pagina.
Hai qualche risposta?
S
Prova a usare il pulsante di condivisione di Google Maps (il simbolo della catena sulla sinistra) e nel box che ti appare premi su “Personalizza e visualizza in anteprima la mappa incorporata”.
Qua hai la possibilità di specificare le dimensioni della mappa: allargale e dovrebbe apparirti la mappa completa
ciao, questo tuo articolo e’ una risorsa molto utile.
una domanda : nel tuo esempio valorizzi la variabile tooltip2 con il codice html del tooltip (div ecc…). si puo’ mettere QUALSIASI elemento html? se volessi mettere un bottone oppure un link da cliccare nel tooltip lo posso fare? in caso affermativo si seguono le regole standard dei link html?
grazie
Ciao Sandro,
nel tooltip ci può stare qualsiasi elemento html, quindi link e immagini comprese (diciamo che lo vede come una “pagina” nel baloon). Per quanto riguarda le azioni, cioè i pulsanti che inviino un form, non ho mai fatto un esperimento diretto, ma immagino che non ci siano problemi se si mette il giusto indirizzo di destinazione.
Dovresti fare qualche esperimento, inviando magari una semplice variabile post. Se fai questa prova, magari fammi sapere com’è andata, che può essere senz’altro utile ad altri utenti…
Ciao so che è un articolo un po’ vecchiotto ma è il migliore che ho trovato e se non è troppo tardi avrei 2 domande
1) c’è il modo di chiudere un tooltip aperto quando si clicca su un altro marcatore?
2) è possibile modificare la forma del tooltip? tramite css cambio colore, sfondo e bordi ma resta comunque un rettangolo bianco intorno alle modifiche che faccio (il classico tooltip di google) a me andrebbe anche bene quello classico di google se riuscissi a fargli avere i bordi arrotondati ma vorrei occupasse molto meno spazio (poco di più di ciò che c’è scritto all’interno del baloon) è possibile?
1) La sintassi per chiudere un tooltip è “oggettoinfowindow.close()”. Dovresti creare una variabile javascript che contiene di volta in volta la precedente infowindow aperta. Non appena clicchi su una nuova, chiudi quella precedente. Esempio (non l’ho testato, ma dovrebbe funzionare):
var infowindow_temp = null;
google.maps.event.addListener(marker, ‘click’, function() {
if (infowindow_temp) {
infowindow_temp.close(); //chiude la precedente infowindow
}
infowindow2.open(map,marker); //apre la nuova infowindow
infowindow_temp = infowindow2;
});
2) Per la personalizzazione del balloon probabilmente devi agire sul metodo InfoWindow (di più non saprei dirti perché non ho mai avuto necessità di personalizzarlo).
Grazie mille per la risposta ho provato il tuo codice il problema è che anche modificandolo non riesco a capire perchè ma alcuni li chiude ed altri no, ho una mappa con molti segnalini, adesso ne ho rifatta una con solo 2 segnalini e se ne apro il secondo, quando poi apro il primo , si chiude, mentre se apro il primo, quando apro il secondo , resta aperto…
non so se posso postare il codice (ho seguito l’altra tua guida per mettere i marcatori quindi il codice è quello)
grazie ancora
ciao!!
Se funziona nel primo caso, probabilmente il problema del secondo caso è nell’assegnamento a infowindow_temp: controlla bene e vedi se assegni in modo esatto (a infowindow_temp devi sempre assegnare l’infowindow che apri, perché sarà quello poi che si andrà a chiudere)
Ciao a tutti, una domanda banale…
Se google maps clicco su link per generare l’iframe per embeddare la mappa, mi restituisce il codice. Fin qui tutto ok. Il problema è che a volte nella mappa embeddata il marcatore con le info del luogo (infowindow/tooltip) rimane aperto. Esiste un comando per chiuderlo?
Grazie!
Ciao Francesco,
mentre stai facendo l’embed, clicca sul tasto “Personalizza ecc.” che vedi sotto: ti si aprirà l’anteprima della mappa.
Chiudi il tooltip: il codice da embeddare si aggiornerà automaticamente, così quando lo copierai sarà senza tooltip.
Niente da fare… ho chiuso il tooltip, copiato il codice e inserito nel sito.
il tooltip si apre automaticamente.
Premetto che non è una mappa da me creata (in tal caso il tuo suggerimento funziona) ma è una mappa di un’attività commerciale associata a google places.
Non c’è qualche script/modifica all’iframe?
Grazie mille!
Se vuoi farlo a mano, devi modificare il get “iwloc”.
Cercalo nell’indirizzo dentro l’iframe (se l’hai preso dal sito di Google Maps, dovrebbe essere l’ultimo parametro get dell’indirizzo).
Dovresti avere settato “iwloc=A”.
Prova a modificarlo in “iwloc=near”.
Specifico che non l’ho mai provato, il sistema l’ho appena trovato con una ricerca in rete: magari fammi sapere se ti funziona…
Ciao Manuel, grazie per il tuo gentile interessamento…
Putroppo nel codice non c’è iwloc=A
Ti riporto l’iframe qui sotto!
grazie 1000 🙂
Giramelo per email attraverso la pagina dei contatti, allegandomi il codice in uno zip (per motivi di sicurezza nei commenti non è permesso l’inserimento di iframe)