Après avoir étudié la documentation de l'Api de Foursquare.
J'ai trouvé le moyen d'obtenir la liste des lieux à proximité de l'emplacement actuel, sans avoir besoin d'utiliser la méthode pré-construite de la bibliothèque Foursquare (comme je l'ai montré dans ma question). Pour cela, nous devons faire une demande HTTP, par laquelle nous obtenons JSON comme réponse. J'ai écrit le code comme ci-dessous.
-(void)getVenuesList{
NSDate *currDate = [NSDate date];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc]init] autorelease];
[dateFormatter setDateFormat:@"YYYYMMdd"];
NSString *dateString = [dateFormatter stringFromDate:currDate];
//dateString it;s used for being UpTodate for API request
NSString* rediusMtr=@"2000";//distance under the comes
NSString *acess_Token=@"OAuth_Token ";
//acess_TokenOuth Token got from Foursqaure after registarting the App.
CGFloat latitude=245425435.564;//latitude & longitude coordinate
CGFloat longitude=245443435.564;
NSString *latitudeStr=[NSString stringWithFormat:@"%f,",latitude];
NSString *longitudeStr=[NSString stringWithFormat:@"%f",longitude];
NSMutableString*latitudeLongitudeString =[[NSMutableString alloc]initWithString:latitudeStr];
[latitudeLongitudeString appendString:longitudeStr];
NSString *query=@"airport";//Venuse to be searched.
NSString *resultLimit=@"50";//number of result to be returned.
NSString *URLString=[NSString stringWithFormat:@"https://api.foursquare.com/v2/venues/search?ll=%@&query=%@&limit=%@&radius=%@&oauth_token=%@&v=%@",latitudeLongitudeString,query,resultLimit,rediusMtr,acess_Token,dateString];
URLString =[URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URLString]];
//Perform request and get JSON back as a NSData object
NSError *error = nil;
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
if(error != nil) {
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Done"otherButtonTitles:nil] autorelease];
[alert show];
}
else {
NSString *jsonString = [[[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"%@",jsonString);
SBJSON *parser = [[[SBJSON alloc] init] autorelease];
NSDictionary *jsonResponse = (NSDictionary*)[parser objectWithString:jsonString error:nil];
NSDictionary *responseData = [[jsonResponse objectForKey:@"response"] objectForKey:@"venues"] ;
NSArray *resultsArray= [responseData valueForKey:@"name"] ;
NSArray*distanceArray=[[responseData valueForKey:@"location"] valueForKey:@"distance"];
//Now we can use above resultsArray,distanceArray data.
}
Pour plus d'informations sur l'API de Foursquare, cliquez sur ce lien.