Beispiel #1
0
        public async Task <IResponse <GoogleMapApiResponse> > GetLocationFromLatLong(string lat, string lon)
        {
            var builder = new UriBuilder("https://maps.googleapis.com/maps/api/geocode/json");

            builder.Port = -1;
            var query = HttpUtility.ParseQueryString(builder.Query);

            query["latlng"] = string.Format("{0},{1}", lat.Trim(), lon.Trim());
            query["key"]    = _settings.GetConfigSetting <string>(SettingKeys.Integration.GoogleGeocoding.APIKey);

            builder.Query = query.ToString();
            string endpoint = builder.ToString();

            string responseData = string.Empty;

            try
            {
                using (var httpClient = new HttpClient())
                {
                    httpClient.Timeout = TimeSpan.FromMinutes(3);
                    var response = await httpClient.GetAsync(new Uri(endpoint));

                    responseData = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
                }
                var locationResult = GoogleLocationApiResultParser(responseData);
                locationResult.lat = Convert.ToDouble(lat);
                locationResult.lng = Convert.ToDouble(lon);

                return(GetResponse(true, locationResult));
            }
            catch (HttpRequestException ex)
            {
                _logger.Log(LogCategory.Error, ex);
                return(GetResponse(false, null));
            }
            catch (Exception ex)
            {
                var errorMsg      = new GoogleMapApiError();
                var locationError = Mapper <GoogleMapApiError> .MapJsonStringToObject(responseData);

                _logger.Log(LogCategory.Error, new Exception(locationError.status, ex));
                return(GetResponse(false, null));
            }
        }
Beispiel #2
0
        public async Task <GoogleMapApiResponse> GetLatLongFromAddress(string address)
        {
            var builder = new UriBuilder("https://maps.googleapis.com/maps/api/geocode/json");

            builder.Port = -1;
            var query = HttpUtility.ParseQueryString(builder.Query);

            query["address"] = address.Trim();
            query["key"]     = "AIzaSyDZ4Ik7ENzLWY1tLh1ul8NxhWBdWGK6tQU";

            builder.Query = query.ToString();
            string endpoint = builder.ToString();

            string responseData = string.Empty;

            try
            {
                using (var httpClient = new HttpClient())
                {
                    httpClient.Timeout = TimeSpan.FromMinutes(3);
                    var response = await httpClient.GetAsync(new Uri(endpoint));

                    responseData = await response.Content.ReadAsStringAsync();
                }
                var locationResult = GoogleLocationApiResultParser(responseData);
                return(locationResult);
            }
            catch (HttpRequestException ex)
            {
                return(null);
            }
            catch (Exception ex)
            {
                var errorMsg = new GoogleMapApiError();
                return(null);
            }
        }