开发者

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!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜