Ejemplo n.º 1
0
 public async Task <PlaceDetailsResponse> PlaceDetails(PlaceDetailsRequest request, ApiKey apiKey = null, HttpClient httpClient = null)
 {
     using (var api = new GetAddesssApi(apiKey ?? ApiKey, HttpClient ?? httpClient))
     {
         return(await api.Address.PlaceDetails(request));
     }
 }
        /// <summary>
        /// Obtains all the details of a specific place
        /// </summary>
        /// <param name="pPlaceId">Place id given by Google Maps API</param>
        /// <returns></returns>
        public dynamic PlaceDetails(string pPlaceId)
        {
            PlaceDetailsRequest request = new PlaceDetailsRequest();

            request.PlaceID = pPlaceId;

            var response = new PlaceDetailsService().GetResponse(request);

            dynamic place = new ExpandoObject();

            if (response.Status == ServiceResponseStatus.Ok)
            {
                PlaceDetailsResult result = response.Result;
                place.name      = result.Name;
                place.latitude  = result.Geometry.Location.Latitude;
                place.longitude = result.Geometry.Location.Longitude;
                place.address   = result.FormattedAddress;
                place.phone     = result.InternationalPhoneNumber;
                place.rating    = result.Rating;
                place.schedule  = GetOpeningHours(result);
                place.website   = result.Website;
                place.photo     = "";
                //place.photo = RequestPlacePhoto(result.Photos[0].PhotoReference);
                return(place);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        public async Task <IPlaceDetailsResponse> GetPlaceDetails(long placeId)
        {
            var request = new PlaceDetailsRequest();

            request.Lang       = _culture;
            request.PlaceId    = placeId;
            request.TextFormat = TextFormatEnum.Plain;
            request.Expand     = PlaceListRequest.ExpandNames.IMAGES;

            var res = await request.ExecuteAsync();

            return(res);
        }
Ejemplo n.º 4
0
        public void PlacesDetailsTest(string placeID, string placeName)
        {
            PlaceDetailsRequest request = new PlaceDetailsRequest()
            {
                PlaceID = placeID
            };
            var response = new PlaceDetailsService().GetResponse(request);

            Assert.AreEqual(ServiceResponseStatus.Ok, response.Status);
            Assert.IsNotNull(response.Result.URL);
            Assert.AreEqual(placeID, response.Result.PlaceID);
            Assert.AreEqual(placeName, response.Result.Name);
        }
Ejemplo n.º 5
0
 private void searchBox_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
 {
     if (addressToId.ContainsKey(searchBox.Text))
     {
         PlaceDetailsRequest placeDetailsRequest = new PlaceDetailsRequest();
         placeDetailsRequest.PlaceID = addressToId[searchBox.Text];
         PlaceDetailsResponse placeDetailsResponse = placeDetailsService.GetResponse(placeDetailsRequest);
         if (placeDetailsResponse.Status == Google.Maps.ServiceResponseStatus.Ok)
         {
             reverseGeocode = false;
             map.Center     = new Geopoint(new BasicGeoposition()
             {
                 Latitude  = placeDetailsResponse.Result.Geometry.Location.Latitude,
                 Longitude = placeDetailsResponse.Result.Geometry.Location.Longitude
             });
         }
     }
 }
        public async Task should_get_place()
        {
            var request = new PlaceListRequest();

            request.Lang = "ru";

            var res = await request.ExecuteAsync();

            Assert.IsNotNull(res);
            Assert.IsTrue(res.Count > 0);

            var first          = res.Results.First();
            var detailsRequest = new PlaceDetailsRequest();

            detailsRequest.PlaceId = first.Id;

            var detailsResponse = await detailsRequest.ExecuteAsync();

            Assert.IsNotNull(detailsResponse);
        }
Ejemplo n.º 7
0
        public async static Task <PlaceDetailsResponse> PlaceDetails(GetAddesssApi api, string path, ApiKey apiKey, PlaceDetailsRequest request)
        {
            if (api == null)
            {
                throw new ArgumentNullException(nameof(api));
            }
            if (path == null)
            {
                throw new ArgumentNullException(nameof(path));
            }
            if (apiKey == null)
            {
                throw new ArgumentNullException(nameof(apiKey));
            }
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var fullPath = $"{path}{request.PlaceId.Value}/?google-api-key={request.GoogleApiKey.Value}";

            api.SetAuthorizationKey(apiKey);

            var response = await api.Get(fullPath);

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

            if (response.IsSuccessStatusCode)
            {
                var addressBody = GetSingleExpandedAddressFromBody(json);

                double latitude  = addressBody.Item1;
                double longitude = addressBody.Item2;
                var    address   = addressBody.Item4;
                var    postcode  = addressBody.Item3;

                return(new PlaceDetailsResponse.Success((int)response.StatusCode, response.ReasonPhrase, json, latitude, longitude, postcode, address));
            }

            return(new PlaceDetailsResponse.Failed((int)response.StatusCode, response.ReasonPhrase, json));
        }
Ejemplo n.º 8
0
        public async Task <PlaceDetailsResponse> PlaceDetails(PlaceDetailsRequest request)
        {
            var path = "google/place-details/";

            return(await PlaceDetails(Api, path, this.ApiKey, request));
        }