# File lib/static_gmaps.rb, line 63
    def url
      raise MissingArgument.new("Size must be set before a url can be generated for Map.") if !size || !size[0] || !size[1]
      raise MissingArgument.new("Key must be set before a url can be generated for Map.") if !key
      if !(markers && markers.size > 1)
        raise MissingArgument.new("Center must be set before a url can be generated for Map (or multiple markers can be specified).") if !center
        raise MissingArgument.new("Zoom must be set before a url can be generated for Map (or multiple markers can be specified).") if !zoom
      end
      raise "Google will not display more than #{MAXIMUM_MARKERS} markers." if markers && markers.size > MAXIMUM_MARKERS
      parameters = {}
      parameters[:size]     = "#{size[0]}x#{size[1]}"
      parameters[:key]      = "#{key}"
      parameters[:map_type] = "#{map_type}"               if map_type
      parameters[:center]   = "#{center[0]},#{center[1]}" if center
      parameters[:zoom]     = "#{zoom}"                   if zoom
      parameters[:markers]  = "#{markers_url_fragment}"   if markers_url_fragment
      parameters = parameters.to_a.sort { |a, b| a[0].to_s <=> b[0].to_s }
      parameters = parameters.collect { |parameter| "#{parameter[0]}=#{parameter[1]}" }
      parameters = parameters.join '&'
      x = "http://maps.google.com/staticmap?#{parameters}"
      raise "Google doesn't like the url to be longer than #{MAXIMUM_URL_SIZE} characters.  Try fewer or less precise markers." if x.size > MAXIMUM_URL_SIZE
      return x
    end