All you have to do is set the clickable: false parameter in the GPolygon constructor, as in the following example ( GPolygonOptions: API Reference ):
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>Google Maps Non Clickable Polygon Demo</title> <script src="http://maps.google.com/maps?file=api&v=2&sensor=false" type="text/javascript"></script> </head> <body onunload="GUnload()"> <div id="map" style="width: 450px; height: 300px"></div> <script type="text/javascript"> var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(37.4419, -122.1419), 13); GEvent.addListener(map, "click", function(overlay, latlng) { var lat = latlng.lat(); var lon = latlng.lng(); var latOffset = 0.01; var lonOffset = 0.01; var polygon = new GPolygon([ new GLatLng(lat, lon - lonOffset), new GLatLng(lat + latOffset, lon), new GLatLng(lat, lon + lonOffset), new GLatLng(lat - latOffset, lon), new GLatLng(lat, lon - lonOffset) ], "#f33f00", 5, 1, "#ff0000", 0.2, { clickable: false }); map.addOverlay(polygon); }); </script> </body> </html>
Screenshot with proof:

Note that the click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng) event click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng) gives different arguments depending on the context of the click and whether the click occurred on a clickable overlay. If a click does not occur on a clickable overlay, the overlay argument is null , and the latlng argument contains the geographic coordinates of the point the button was clicked on. If the user clicks on the overlay, the overlay argument contains the overlay object, and the overlaylatlng argument contains the coordinates of the clicked overlay ( Source: API Reference ).
Daniel Vassallo
source share