2 votes

Comment obtenir la liste des lieux en utilisant l'Api de FourSquare ?

Je veux obtenir la liste des lieux de spectacle à proximité de l'emplacement actuel. J'ai trouvé une méthode de forsquare Api.

+(void)searchVenuesNearByLatitude:(NSString*)lat
                longitude:(NSString*)lon
               accuracyLL:(NSString*)accuracyLL
                 altitude:(NSString*)altitude
              accuracyAlt:(NSString*)accuracyAlt
                    query:(NSString*)query
                    limit:(NSString*)limit
                   intent:(NSString*)intent
                 callback:(Foursquare2Callback)callback;

Mais je ne sais pas comment utiliser cette méthode. Toute aide serait appréciable.

3voto

Kamarshad Points 4454

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X