Exemplo n.º 1
0
        /// <summary>
        /// Gets the place.
        /// </summary>
        /// <returns>The place.</returns>
        /// <param name="placeID">Place identifier.</param>
        /// <param name="apiKey">API key.</param>
        /// <param name="fields">The fields to query (see https://developers.google.com/places/web-service/details#fields )</param>
        public static async Task <Place> GetPlace(string placeID, string apiKey, PlacesFieldList fields = null)
        {
            fields = fields ?? PlacesFieldList.ALL;             // default = ALL fields

            try
            {
                var requestURI = CreateDetailsRequestUri(placeID, apiKey, fields);
                var client     = new HttpClient();
                var request    = new HttpRequestMessage(HttpMethod.Get, requestURI);
                var response   = await client.SendAsync(request);

                if (!response.IsSuccessStatusCode)
                {
                    Debug.WriteLine("PlacesBar HTTP request denied.");
                    return(null);
                }

                var result = await response.Content.ReadAsStringAsync();

                if (result == "ERROR")
                {
                    Debug.WriteLine("PlacesSearchBar Google Places API returned ERROR");
                    return(null);
                }

                return(new Place(JObject.Parse(result)));
            }
            catch (Exception ex)
            {
                Debug.WriteLine("PlacesBar HTTP issue: {0} {1}", ex.Message, ex);
                return(null);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates the details request URI.
        /// </summary>
        /// <returns>The details request URI.</returns>
        /// <param name="place_id">Place identifier.</param>
        /// <param name="apiKey">API key.</param>
        /// <param name="fields">The fields to query (see https://developers.google.com/places/web-service/details#fields )</param>
        private static string CreateDetailsRequestUri(string place_id, string apiKey, PlacesFieldList fields)
        {
            var url = "https://maps.googleapis.com/maps/api/place/details/json";

            url += $"?placeid={Uri.EscapeUriString(place_id)}";
            url += $"&key={apiKey}";
            if (!fields.IsEmpty())
            {
                url += $"&fields={fields}";
            }
            return(url);
        }