using cwebplusApp.Shared.Models; using Json.Net; using System; using System.Globalization; using System.Net.Http; using System.Threading.Tasks; namespace cwebplusApp.Shared.Services { public class NominatimService { public static async Task GetAddressForCoordinates(double latitude, double longitude) { string lat = latitude.ToString("0.0000000000", CultureInfo.InvariantCulture); string lng = longitude.ToString("0.0000000000", CultureInfo.InvariantCulture); HttpClient httpClient = new() { BaseAddress = new Uri("https://nominatim.openstreetmap.org/") }; try { HttpResponseMessage httpResult = await httpClient.GetAsync(string.Format("reverse?format=json&accept-language={0}&lat={1}&lon={2}", CultureInfo.CurrentCulture.Name, lat, lng)); if (httpResult.StatusCode == System.Net.HttpStatusCode.OK) { NominatimReverseAddress addressDto = JsonNet.Deserialize(await httpResult.Content.ReadAsStringAsync()); return addressDto; } return null; } catch (Exception) { return null; } } } }