2009-11-17 30 views
22

Daha hızlı olduğu için google v3 api kullanarak bir harita yapıyorum. Esasen, bölgeler üzerinde çokgenli yaklaşık 30 şehirli bir alan haritası. Bir kullanıcı bir şehrin üzerinde gezindiğinde, fillColor'un daha açık olmasını ve mouseoutta normal durumuna dönmesini istiyorum. Bir kullanıcı tıkladığında, onları başka bir sayfaya yönlendirir.google maps v3 API mouseover çokgenlerle mi?

Tıklama olayı iyi çalışıyor. Ancak, v3 API'sı dokümantasyonuna bakıldığında, Google'ın tıklamalar, doubleclick, mousemove, mousedown ve mouseup olay tetikleyicileri olarak uyguladığı, ancak gezinme, fare ya da mouseout uygulanmadığı görülüyor.

Gerçekten mi? Tanrım. Aşırı ve dışarıdan daha yüksek öncelikli olacağını düşünürdüm.

Neyse, bununla karşılaşan başka biri var mı? Yanlış mıyım? Ya da bir çözüm var mı?

cevap

38

aşağıdaki çalışır:

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

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

, bunların zaten V3 uygulanır. – Nordes

+0

Google Grupları için bir istekte bulundum ve bir yönetici geri döndü ve bunun için çok sayıda istekleri olduğunu belirttikten sonra uyguladı. Teşekkür ederim! –

0

Mouseover ve mouseout şimdi V3 Polyline uygulanmaktadır.

2

Google Maps API V3'te, aşağıdaki kodla çokgen için bir rollover var. Her bir devreyi haritayı sıfırlamak ve sıfırlamak zorunda olduğumdan hoşlanmıyorum, ama, bu noktada, bu sefer bir mouseover elde ettim.

Bu kodun nasıl geliştirileceğine dair yorumlarla ilgileniyorum.

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); 
}); 
İlgili konular