private async Task <GeoAddress[]> SearchUsingNameAsync(string searchQuery, string currentLanguage, double?pickupLatitude, double?pickupLongitude) { if (searchQuery == null) { return(null); } var filter = _appSettings.Data.GeoLoc.SearchFilter; var query = filter.HasValue() ? string.Format(filter, searchQuery) : searchQuery; var searchRadius = _appSettings.Data.GeoLoc.SearchRadius <= 0 ? 45000 : _appSettings.Data.GeoLoc.SearchRadius; #if DEBUG Console.WriteLine(string.Format("Geocoding.SearchUsingNameAsync with query: {0} radius: {1}", query, searchRadius)); #endif var addresses = await _mapApi.GeocodeAddressAsync(query, currentLanguage, pickupLatitude, pickupLongitude, searchRadius); #if DEBUG Console.WriteLine("Geocoding.SearchUsingNameAsync results"); foreach (var address in addresses) { Console.WriteLine(string.Format(" {0}", address.FullAddress)); } #endif return(FilterGeoCodingResults(addresses)); }
public Task <GeoAddress[]> GeocodeAddressAsync(string query, string currentLanguage, double?pickupLatitude, double?pickupLongitude, double searchRadiusInMeters) { var client = GetClient(PlacesAutoCompleteServiceUrl); var resource = GetPlacesAutocompleteSearchRequest(pickupLatitude, pickupLongitude, query, currentLanguage, (int)searchRadiusInMeters, "address"); #if DEBUG Console.WriteLine(PlacesAutoCompleteServiceUrl + resource); #endif return(HandleGoogleResultAsync(() => client.GetAsync <PredictionResponse>(resource), x => ConvertPredictionToAddresses(x.predictions).ToArray(), new GeoAddress[0], () => _fallbackGeocoder.GeocodeAddressAsync(query, currentLanguage, pickupLatitude, pickupLongitude, searchRadiusInMeters))); }