Index: django/contrib/gis/maps/google/overlays.py
===================================================================
--- django/contrib/gis/maps/google/overlays.py	(revision 11214)
+++ django/contrib/gis/maps/google/overlays.py	(working copy)
@@ -65,6 +65,26 @@
         "The string representation is the JavaScript API call."
         return mark_safe('%s(%s)' % (self.__class__.__name__, self.js_params))
 
+
+class GPolygonOptions(object):
+    """
+    A Python wrapper for the Google GPolygonOptions object. For more information
+    please see the Google Maps API Reference:
+    http://code.google.com/apis/maps/documentation/reference.html#GPolygonOptions
+    """
+    def __init__(self, clickable=None, mouseout_tolerance=None):
+        self.clickable = clickable
+        self.mouseout_tolerance = mouseout_tolerance
+
+    def __str__(self):
+        options = []
+        if isinstance(self.clickable, bool):
+            options.append('clickable: %s' % (str(self.clickable).lower()))
+        if isinstance(self.mouseout_tolerance, int):
+            options.append('mouseOutTolerance: %d' % (self.mouseout_tolerance))
+        return mark_safe('{' + ','.join(options) + '}')
+
+
 class GPolygon(GOverlayBase):
     """
     A Python wrapper for the Google GPolygon object.  For more information
@@ -73,7 +93,7 @@
     """
     def __init__(self, poly,
                  stroke_color='#0000ff', stroke_weight=2, stroke_opacity=1,
-                 fill_color='#0000ff', fill_opacity=0.4):
+                 fill_color='#0000ff', fill_opacity=0.4, options=GPolygonOptions()):
         """
         The GPolygon object initializes on a GEOS Polygon or a parameter that
         may be instantiated into GEOS Polygon.  Please note that this will not
@@ -95,6 +115,10 @@
 
           fill_opacity:
             The opacity of the polygon fill.  Defaults to 0.4.
+
+          options:
+            GPolygonOptions (clickable, mouseOutTolerance) for the polygon.
+
         """
         if isinstance(poly, basestring): poly = fromstr(poly)
         if isinstance(poly, (tuple, list)): poly = Polygon(poly)
@@ -115,20 +139,45 @@
         # Fill settings.
         self.fill_color, self.fill_opacity = fill_color, fill_opacity
 
+        # Options settings.
+        self.options = options
+
         super(GPolygon, self).__init__()
 
     @property
     def js_params(self):
-        return '%s, "%s", %s, %s, "%s", %s' % (self.points, self.stroke_color, self.stroke_weight, self.stroke_opacity,
-                                               self.fill_color, self.fill_opacity)
+        return '%s, "%s", %s, %s, "%s", %s, %s' % (self.points, self.stroke_color, self.stroke_weight, self.stroke_opacity, self.fill_color, self.fill_opacity, self.options)
 
+
+class GPolylineOptions(object):
+    """
+    A Python wrapper for the Google GPolylineOptions object. For more information
+    please see the Google Maps API Reference:
+    http://code.google.com/apis/maps/documentation/reference.html#GPolylineOptions
+    """
+    def __init__(self, clickable=None, geodesic=None, mouseout_tolerance=None):
+        self.clickable = clickable
+        self.geodesic = geodesic
+        self.mouseout_tolerance = mouseout_tolerance
+
+    def __str__(self):
+        options = []
+        if isinstance(self.clickable, bool):
+            options.append('clickable: %s' % (str(self.clickable).lower()))
+        if isinstance(self.geodesic, bool):
+            options.append('clickable: %s' % (str(self.geodesic).lower()))
+        if isinstance(self.mouseout_tolerance, int):
+            options.append('mouseOutTolerance: %d' % (self.mouseout_tolerance))
+        return mark_safe('{' + ','.join(options) + '}')
+
+
 class GPolyline(GOverlayBase):
     """
     A Python wrapper for the Google GPolyline object.  For more information
     please see the Google Maps API Reference:
      http://code.google.com/apis/maps/documentation/reference.html#GPolyline
     """
-    def __init__(self, geom, color='#0000ff', weight=2, opacity=1):
+    def __init__(self, geom, color='#0000ff', weight=2, opacity=1, options=GPolylineOptions()):
         """
         The GPolyline object may be initialized on GEOS LineStirng, LinearRing,
         and Polygon objects (internal rings not supported) or a parameter that
@@ -144,6 +193,9 @@
 
           opacity:
             The opacity of the polyline, between 0 and 1.  Defaults to 1.
+
+          options:
+            GPolylineOptions (clickable, mouseOutTolerance) for the polygon.
         """
         # If a GEOS geometry isn't passed in, try to contsruct one.
         if isinstance(geom, basestring): geom = fromstr(geom)
@@ -158,12 +210,12 @@
 
         # Getting the envelope for automatic zoom determination.
         self.envelope = geom.envelope
-        self.color, self.weight, self.opacity = color, weight, opacity
+        self.color, self.weight, self.opacity, self.options = color, weight, opacity, options
         super(GPolyline, self).__init__()
 
     @property
     def js_params(self):
-        return '%s, "%s", %s, %s' % (self.latlngs, self.color, self.weight, self.opacity)
+        return '%s, "%s", %s, %s, %s' % (self.latlngs, self.color, self.weight, self.opacity, self.options)
 
 
 class GIcon(object):
