Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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}!"));
        }
Esempio n. 3
0
            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);
                }
            }