public GeocodingResponse Geocode(GeocodingRequest request)
        {
            var query = new List <string>();

            query.AddParameter("address", request.Address);
            query.AddParameter("components", request.Components);
            query.AddParameter("bounds", request.Bounds);
            query.AddParameter("region", request.Region);
            query.AddParameter("language", request.Language);
            if (request.NewForwardGeocoder)
            {
                query.AddParameter("new_forward_geocoder", "true");
            }

            var uri = new Uri("https://maps.googleapis.com/maps/api/geocode/json?" + String.Join("&", query));

            uri = uri.AddCredentials(credentials);

            var client = new WebClient();

            client.Encoding = System.Text.Encoding.UTF8;
            var json = client.DownloadString(uri);

            using (var stringReader = new StringReader(json))
            {
                var reader     = new JsonTextReader(stringReader);
                var serializer = new JsonSerializer();
                serializer.Converters.Add(new JsonEnumTypeConverter());
                return(serializer.Deserialize <GeocodingResponse>(reader));
            }
        }
Exemplo n.º 2
0
        public void ApiKey_Only_Works()
        {
            var uri = new Uri("https://dummy.com");

            uri = uri.AddCredentials(new Credentials {
                ApiKey = "foo"
            });

            Assert.IsTrue(uri.ToString().EndsWith("key=foo"));
        }
Exemplo n.º 3
0
        public void ClientId_And_PrivateKey_Works()
        {
            var uri = new Uri("https://dummy.com");

            uri = uri.AddCredentials(new Credentials {
                ClientId = "foo", PrivateKey = "YmFyCg=="
            });

            Assert.IsTrue(uri.ToString().Contains("client=foo"));
            Assert.IsTrue(uri.ToString().Contains("signature="));
        }
Exemplo n.º 4
0
        public void PrivateKey_Only_Fails()
        {
            var uri = new Uri("https://dummy.com");

            Assert.Throws <GoogleMapsException>(() =>
            {
                uri.AddCredentials(new Credentials {
                    PrivateKey = "foo"
                });
            });
        }
Exemplo n.º 5
0
        public void ApiKey_And_ClientId_Fails()
        {
            var uri = new Uri("https://dummy.com");

            Assert.Throws <GoogleMapsException>(() =>
            {
                uri.AddCredentials(new Credentials {
                    ApiKey = "foo", ClientId = "bar"
                });
            });
        }