2009-11-17 11 views
22

Je construis une carte en utilisant l'API google v3 car elle est beaucoup plus rapide. Essentiellement, c'est une carte d'une région avec environ 30 villes avec des polygones au-dessus des régions. Lorsqu'un utilisateur survole une ville, je souhaite que la propriété fillColor soit plus claire, puis rétablisse son état normal lors du passage au curseur. Lorsqu'un utilisateur clique, il les redirige vers une autre page.API google maps v3 avec des polygones?

L'événement click fonctionne correctement. Mais, en regardant à travers la documentation de l'API v3, il semble que Google ait implémenté click, doubleclick, mousemove, mousedown et mouseup en tant que déclencheurs d'événement, mais pas de survol, de survol ou de souris.

Vraiment? Geez. Je penserais à l'avance et à la fin serait plus prioritaire que de bas en haut.

Quoi qu'il en soit, quelqu'un d'autre est-il tombé dessus? Ai-je tort? Ou y a-t-il une solution de contournement?

Nous vous remercions d'avance pour votre aide, Stephanie

Répondre

38

Les travaux suivants:

google.maps.event.addListener(polygon,"mouseover",function(){ 
this.setOptions({fillColor: "#00FF00"}); 
}); 

google.maps.event.addListener(polygon,"mouseout",function(){ 
this.setOptions({fillColor: "#FF0000"}); 
}); 
+0

Comme vous dites, ceux-ci sont déjà mises en œuvre V3. – Nordes

+0

J'avais demandé dans Google Groupes et un administrateur est revenu et a dit qu'ils avaient eu plusieurs demandes pour cela, puis l'a implémenté. Je vous remercie! –

0

et mouseover mouseout sont maintenant mises en œuvre V3 Polyline.

2

Dans Google Maps API V3, j'ai un survol pour un polygone avec le code ci-dessous. Je n'aime pas que je doive annuler et réinitialiser la carte à chaque retournement, mais, à ce moment-là, c'est comme ça que j'ai réussi à passer la souris.

Je suis intéressé (e) par des commentaires sur la façon d'améliorer ce code.

var polyShape  = new google.maps.Polygon({paths:polyData,strokeColor:"#aa0",strokeOpacity:0.5,strokeWeight:1,fillColor:"#cc0",fillOpacity: 0.25}); 
var polyShapeOver = new google.maps.Polygon({paths:polyData,strokeColor:"#cc0",strokeOpacity:0.5,strokeWeight:1,fillColor:"#ff0",fillOpacity: 0.25}); 

polyShape.setMap(map); 

google.maps.event.addListener(polyShape,"mouseover",function(){ 
    this.setMap(null); 
    polyShapeOver.setMap(map); 
}); 

google.maps.event.addListener(polyShapeOver,"mouseout",function(){ 
    this.setMap(null); 
    polyShape.setMap(map); 
}); 
Questions connexes