google maps v3 API mouseover with polygons. Not working
I'm trying to get mouseover to work polygons in google maps api v3. I've tried the answer provided in this post: google maps v3 API mouseover with polygons?
This answer should be working, but it's not for me. Can anyone spot the stick in my spokes?
Here is my code:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<title>Google Maps</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(28, -81);
var myOptions = {
zoom: 6,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var coords = "-81.182206004858,24.1854100227356 -81.0702140033245,24.7389860153198 -80.8464170098305,25.8438450098038 -80.6222470104694,26.9482280015945 -80.3975859880447,28.0521240234375 -80.1723110079765,29.1555219888687 -80.7749719917774,29.21175801754 -80.9939419925213,28.1075259447098 -81.212574005127,27.0034509897232 -81.4309749901295,25.8995419740677 -81.6492510139942,24.7958129644394 -81.7585659921169,24.243047952652 -81.182206004858,24.1854100227356";
coords = coords.split(" ");
var path = [];
for (var i = 0; i < coords.length; i++) {
var coord = coords[i].split(",");
path.push(new google.maps.LatLng(coord[1], coord[0]));
}
//polygon options
var options = {
clickable: false,
fillColor: '#FFF',
fillOpacity: 0,
geodesic: true,
map: map,
paths: new google.maps.MVCArray(path),
strokeColor: '#FFF',
strokeOpacity: 1,
strokeWeight: 1,
zIndex: 99
}
var polygon = new google.maps.Polygon(options);
var listener = google.maps.event.addListener(polygon, "mouseover", function () { this.setOptions({ strokeColor: '#000' }); });
}
</开发者_如何转开发script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>
Okay, i figured it out. Very simple, but not very intuitive.
You need to set the "clickable:true" in the polygon options.
The documentation says the following about the clickable property: "Indicates whether this Polygon handles click events. Defaults to true."
It should say: "whether this Polygon handles (ANY) events." (such as mouseover).
Google documentation fail!
精彩评论