public static async Task <Location> GetRevGeo(Double inlong, Double inlat) { Location retad = new Location(); Coordinate secoord = new Coordinate(); secoord.Latitude = inlat; secoord.Longitude = inlong; var request = new ReverseGeocodeRequest() { IncludeIso2 = true, IncludeNeighborhood = false, BingMapsKey = bmkey, Point = secoord }; try { var response = await request.Execute(); if (response != null && response.ResourceSets != null && response.ResourceSets.Length > 0 && response.ResourceSets[0].Resources != null && response.ResourceSets[0].Resources.Length > 0) { var qresult = response.ResourceSets[0].Resources[0] as BingMapsRESTToolkit.Location; retad = qresult; } else { retad = null; } } catch { retad = null; } return(retad); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("GetAddress"); string slat = req.Query["latitude"]; string slon = req.Query["longitude"]; if (double.TryParse(slat.Replace(',', '.'), out var lat) && double.TryParse(slon.Replace(',', '.'), out var lon)) { ReverseGeocodeRequest rq = new ReverseGeocodeRequest { Point = new Coordinate(lat, lon) }; try { var response = await rq.Execute(); if (response.StatusCode == 200) { var rss = JsonSerializer.Serialize(response.ResourceSets); log.LogInformation("ResourceSets: {0}", rss); var loc = response.ResourceSets[0].Resources[0] as Location; return(new OkObjectResult(loc.Address)); } else { return(new BadRequestObjectResult(response.StatusDescription)); } } catch (Exception) { return(new BadRequestObjectResult($"Failed to get address for coordinats {slat}, {slon}")); } } return(new BadRequestObjectResult($"Invalid coordinates {slat}, {slon}!")); }
async Task OnExecuteAsync() { ReverseGeocodeRequest rq = new ReverseGeocodeRequest { BingMapsKey = "AgKOa2W4-xmxbCSbRaMPi-6yY_9jNir8FxfuxqXhyT8yBub74AQZ2nk5kwKsn4z_" }; double lat = South ? Latitude * -1 : Latitude; double lon = West ? Longitude * -1 : Longitude; Console.WriteLine("{0}, {1} - Equipment {2}, Sequence {3}", lat, lon, Numb.HasValue ? Numb.Value.ToString() : "N/A", Sequence.HasValue ? Sequence.Value.ToString() : "N/A"); rq.Point = new Coordinate(lat, lon); var response = await rq.Execute(); if (response.StatusCode == 200) { Console.WriteLine("Success:"); var loc = response.ResourceSets[0].Resources[0] as Location; var add = new Address { addressLine = loc.Address.AddressLine, adminDistrict = loc.Address.AdminDistrict, countryRegion = loc.Address.CountryRegion, formattedAddress = loc.Address.FormattedAddress, locality = loc.Address.Locality, postalCode = loc.Address.PostalCode, latitude = lat, longitude = lon, timestamp = DateTime.Now }; var text = JsonSerializer.Serialize(add); Console.WriteLine(text); if (Numb.HasValue) { try { if (Sequence.HasValue) { var mo = new GT1701 <Celin.AIS.MoUpdateText>(Numb.Value.ToString(), Sequence.Value, text); var moResp = await E1.RequestAsync(mo.Request); Console.WriteLine(moResp.updateTextStatus); } else { var mo = new GT1701 <Celin.AIS.MoAddText>(Numb.Value.ToString(), NAME, text); var moResp = await E1.RequestAsync(mo.Request); Console.WriteLine(moResp.addTextStatus); } } catch (Exception e) { Console.WriteLine("ERROR: {0}", e.Message); } } } else { Console.WriteLine(response.StatusDescription); } }