谷歌地图v3 API鼠标悬停与多边形?

时间:2009-11-17 20:57:17

标签: javascript ajax google-maps

我正在使用google v3 api构建地图,因为它更快。从本质上讲,它是一个地区的地图,该地区有大约30个城市的多边形区域。当用户在城市上空盘旋时,我希望fillColor变轻,然后在mouseout上返回到它的正常状态。当用户点击时,它会将它们重定向到另一个页面。

点击事件很好用。但是,通过v3 API文档,似乎Google已经实现了click,doubleclick,mousemove,mousedown和mouseup作为事件触发器,但没有悬停,鼠标悬停或mouseout。

真的?吉兹。我认为一次又一次的优先级高于上下。

无论如何,还有其他人遇到过这个吗?我错了吗?或者有解决方法吗?

提前感谢您的帮助, 斯蒂芬妮

4 个答案:

答案 0 :(得分:40)

以下作品:

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

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

答案 1 :(得分:2)

在Google Maps API V3中,我使用以下代码对多边形进行翻转。我不喜欢我必须取消设置并重置每个翻转的地图,但是,在这个时间点,这就是我实现鼠标悬停的方式。

我对如何改进此代码的任何意见感兴趣。

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

答案 2 :(得分:1)

每个对象定义

Maps API V3 events。对V3 reference page进行搜索后发现,Marker是唯一具有mouseover和mouseout定义的对象。所以,是的,你似乎是正确的。

顺便说一下,有人这样做,但看起来非常复杂:

http://groups.google.com/group/Google-Maps-API/browse_thread/thread/4ddc4f5888994563

答案 3 :(得分:0)

mouseover和mouseout现在已在V3 Polyline中实现。