/// <summary>
        /// Async retrieve a static map
        /// </summary>
        /// <param name="staticMapRequest"></param>
        /// <param name="callback"></param>
        public void RetrieveStaticMap(GoogleStaticMapRequest staticMapRequest, GoogleStaticMapCompleteDelegate callback)
        {
            var request = (HttpWebRequest)HttpWebRequest.Create(staticMapRequest.GenerateRequestUrl());
            request.Method = "Post";
            try
            {
                request.BeginGetResponse(ResponseCallBack, new List<object> {request, staticMapRequest,callback});

            } catch(Exception e)
            {
                callback(null, staticMapRequest,e);
            }
        }
        /// <summary>
        /// Async retrieve a static map
        /// </summary>
        /// <param name="staticMapRequest"></param>
        /// <param name="callback"></param>
        public void RetrieveStaticMap(GoogleStaticMapRequest staticMapRequest, GoogleStaticMapCompleteDelegate callback)
        {
            var request = (HttpWebRequest)HttpWebRequest.Create(staticMapRequest.GenerateRequestUrl());

            request.Method = "Post";
            try
            {
                request.BeginGetResponse(ResponseCallBack, new List <object> {
                    request, staticMapRequest, callback
                });
            } catch (Exception e)
            {
                callback(null, staticMapRequest, e);
            }
        }