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)); } }
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); } }