2009-11-17 3 views
22

Ich baue eine Karte mit der Google V3 API, weil es viel schneller ist. Im Wesentlichen ist es eine Karte eines Gebiets mit ungefähr 30 Städten mit Polygonen über den Regionen. Wenn ein Benutzer über eine Stadt schwebt, möchte ich, dass die fillColor heller wird und bei Mouseout in den normalen Zustand zurückkehrt. Wenn ein Benutzer darauf klickt, wird er auf eine andere Seite umgeleitet.Google Maps v3 API mouseover mit Polygonen?

Das Klickereignis funktioniert einwandfrei. Aber wenn man sich die API-Dokumentation von v3 anschaut, scheint es so, als ob Google Klick-, Doppelklick-, Mausklick-, Mouse-Down- und Mouse-Up-Funktionen als Ereignisauslöser implementiert hat, aber keinen Mauszeiger oder Mouseover.

Wirklich? Meine Güte. Ich würde mir überlegen, dass das eine höhere Priorität hat als das Auf und Ab.

Wie auch immer, ist jemand anderes dazu gekommen? Liege ich falsch? Oder gibt es einen Workaround?

Vielen Dank im Voraus für Ihre Hilfe, Stephanie

Antwort

38

Die folgenden Werke:

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

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

Wie Sie sagen, sind diese bereits in V3 umgesetzt. – Nordes

+0

Ich hatte in einem Google Groups angefordert und ein Administrator wurde zurück und sagte, dass sie mehrere Anforderungen für diese hatte, und dann implementiert es. Vielen Dank! –

0

Mouseover- und mouseout sind jetzt in V3 Polyline umgesetzt.

2

In Google Maps API V3 habe ich einen Rollover für ein Polygon mit dem folgenden Code. Ich mag es nicht, dass ich die Karte bei jedem Rollover zurücksetzen muss, aber zu diesem Zeitpunkt habe ich einen Mouseover erreicht.

Ich bin an irgendwelchen Anmerkungen interessiert, wie man diesen Code verbessert.

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); 
});