lib/geos/google_maps/api_3.rb
def to_g_polygon_single_api3(polygon_options = {}, options = {})
      options = {
        :escape => [],
        :lat_lng_options => {}
      }.merge(options)

      opts = Geos::Helper.camelize_keys(polygon_options)
      opts[:paths] = %{[#{self.collect { |p|
        "[#{p.exterior_ring.coord_seq.to_g_lat_lng_api3(options[:lat_lng_options]).join(', ')}]"
      }.join(', ')}]}
      json = Geos::Helper.escape_json(opts, Geos::GoogleMaps::Api3Constants::UNESCAPED_POLY_OPTIONS - options[:escape])

      "new google.maps.Polygon(#{json})"
    end
def to_g_polygon_single_api3(polygon_options = {}, options = {})
      options = {
        :escape => [],
        :lat_lng_options => {}
      }.merge(options)

      opts = Geos::Helper.camelize_keys(polygon_options)
      opts[:paths] = %{[#{self.collect { |p|
        "[#{p.exterior_ring.coord_seq.to_g_lat_lng_api3(options[:lat_lng_options]).join(', ')}]"
      }.join(', ')}]}
      json = Geos::Helper.escape_json(opts, Geos::GoogleMaps::Api3Constants::UNESCAPED_POLY_OPTIONS - options[:escape])

      "new google.maps.Polygon(#{json})"
    end
Behaves the same as to_g_polygon_api3 with the :single option set, where
 a single Google Maps Polygon will be returned with all of the Polygons
 set in the Polygon's "path" attribute.