2011-11-20 15 views
22
var image = 'bullets/_st_zzzzzzl SSS.gif'; 

var bar1 = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    icon: image, 
    title: "bar number 1"  
}); 

    google.maps.event.addListener(bar1, 'mouseover', function() { 
     infowindow.open(map,bar1); 
    }); 

    google.maps.event.addListener(bar1, 'mouseout', function() { 
     infowindow.close(map,bar1); 
    }); 

Ora, quando sono sul mouse, voglio che l'icona cambi in un'altra immagine che ho ottenuto. ho provato alcuni suggerimenti e un po 'di codice ma niente funziona ... Apprezzare il tuo aiutocambia l'icona del marker su mouseover (google maps V3)

risposta

53

Utilizzare la funzione marker.setIcon(). Il resto è quasi la stessa di apertura/chiusura infowindow nel codice:

var icon1 = "imageA.png"; 
var icon2 = "imageB.png"; 

var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    icon: icon1, 
    title: "some marker" 
}); 

google.maps.event.addListener(marker, 'mouseover', function() { 
    marker.setIcon(icon2); 
}); 
google.maps.event.addListener(marker, 'mouseout', function() { 
    marker.setIcon(icon1); 
}); 

Si noti che oltre ad utilizzare i percorsi di immagine in setIcon() funzione, è possibile utilizzare anche google.maps.MarkerImage oggetti, che sono molto utili, soprattutto se si desidera utilizzare sprite di immagini.

+0

questo ha funzionato alla grande per me! – Avishai

+0

Potrebbe fornire una soluzione per sprite. Provo ad usare 'setIcon()' per cambiare l'origine delle icone al passaggio del mouse e questo non funziona – sgromskiy

-1
google.maps.event.addListener(marker, 'mouseover', function() { 
    infowindow.open(map, this); 
}); 

// assuming you also want to hide the infowindow when user mouses-out 
google.maps.event.addListener(marker, 'mouseout', function() { 
    infowindow.close(); 
}); 
Problemi correlati