コード例 #1
0
        public GeocoderLocationGetRes GetLocationLatLonByType(string address, string types)
        {
            var res = new GeocoderLocationGetRes();

            try
            {
                //string URL = "https://maps.googleapis.com/maps/api/geocode/xml?sensor=false&key=GoogleAPIKey&address=" + HttpUtility.UrlEncode(query);
                string URL    = _configuration.GetValue <string>("URLGeoCodeByType");
                string APIKey = _configuration.GetValue <string>("GoogleAPIKey");

                URL = URL + "?key=" + APIKey;
                URL = URL + "&inputtype=textquery";
                URL = URL + "&input=" + HttpUtility.UrlEncode(address);
                URL = URL + "&types=" + types;
                URL = URL + "&fields=formatted_address,name,geometry,place_id";

                WebRequest request = WebRequest.Create(URL);

                request.Proxy             = WebRequest.DefaultWebProxy;
                request.Credentials       = CredentialCache.DefaultCredentials;
                request.Proxy.Credentials = CredentialCache.DefaultCredentials;

                using (WebResponse response = request.GetResponse())
                {
                    using (Stream stream = response.GetResponseStream())
                    {
                        XDocument document = XDocument.Load(new StreamReader(stream));

                        XElement longitudeElement = document.Descendants("lng").FirstOrDefault();
                        XElement latitudeElement  = document.Descendants("lat").FirstOrDefault();

                        if (longitudeElement != null && latitudeElement != null)
                        {
                            res.GeocoderLocation = new GeocoderLocation
                            {
                                Longitude = Double.Parse(longitudeElement.Value, CultureInfo.InvariantCulture),
                                Latitude  = Double.Parse(latitudeElement.Value, CultureInfo.InvariantCulture)
                            };
                            res.ResponseStatus.Status = "Success";
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
                res.ResponseStatus.Status       = "Failure";
                res.ResponseStatus.ErrorMessage = ex.Message;
            }
            return(res);
        }
コード例 #2
0
        public async Task <GeocoderLocationGetRes> GetLatLogByAddressAndType([FromBody] GeocoderLocationGetReq request)
        {
            var response = new GeocoderLocationGetRes();

            try
            {
                if (!string.IsNullOrEmpty(request.Address))
                {
                    response = _genericRepository.GetLocationLatLonByType(request.Address, request.Type);
                }
                else
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Address can not be blank.";
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An Error Occurs :- " + ex.Message;
            }
            return(response);
        }