Changer l'icône du google map marker quand onmouseover div (Google maps v3 api)

Comment puis-je changer l'icône d'un marqueur sur google maps lorsque je passe le texte dans un div? J'ai réussi à changer l'icône du marqueur sur le chemin du marqueur sur la carte elle-même en utilisant

google.maps.event.addListener(marker1, "mouseover", function(event) { this.setIcon("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=1|ffffff|c41200"); } 

MODIFIER:

Voici ce que j'ai maintenant:

 function initialize(){ .... var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(1.288693,103.846733), map: map, icon: "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=1|c41200|ffffff" }); .... } function changeMarker(marker) { alert(marker); } 

et

 <div id="searchresult" onmouseover="changeMarker(marker1)"> 

J'utilise Chrome. Dans la console, onmouseover the div I get the error "Uncaught ReferenceError: marker1 n'est pas défini"

Ajouter une propriété onmouseover à la div. Disons qu'on l'appelait changeMarker.

 function changeMarker(marker) { var icon = new Google.maps.MarkerImage({ url:"http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=1|ffffff|c41200"}); marker.setIcon(icon); } 

Votre div pourrait alors ressembler à:

 <div onmouseover="changeMarker(marker1)"> 

Je recommande toutefois de mettre en cache le MarkerImage (car il semble assez statique) afin que Google n'ait pas à conserver la régénération de l'image graphique.

Vous pouvez définir d'autres propriétés de l'image. Voir la documentation

 google.maps.event.addListener(marker1, 'mouseover', function () { marker1.setIcon('miniMarker.png'); }); 

Première fonction d'initialisation d'appel, définissez marker1, puis utilisez ce code, vous pouvez également appeler cette fonction de différentes façons comme vous le souhaitez sur la souris sur la souris, etc.

J'utilise Chrome. Dans la console, onmouseover <div> j'obtiens l'erreur:

Uncaught ReferenceError: marker1 n'est pas défini

Si vous définissez une variable comme celle-ci:

 function a() { var marker1 = "foo"; } alert(marker1); 

Marker1 n'est pas accessible au niveau "window". Vous devez l'écrire comme ceci:

 var marker1; function a() { marker1 = "foo"; } alert(marker1);