我想要搜索结果,例如Google搜索。
如果我搜索'tokyo',那么它会给我四个包含'tokyo'的结果。 我想用Foursquare API做同样的功能。目前,我能够从当前位置或给定位置找到附近的地方。
答案 0 :(得分:1)
您需要使用https://api.foursquare.com/v2/venues/search端点并使用查询参数,以便根据您的关键字返回匹配项。由于您使用的是iOS,因此您可以使用UITableView将结果显示为搜索建议或其他符合您要求的库。由于它类似于自动完成/自动提示搜索,我建议您尝试在文本字段的更改事件上调用端点并延迟。
使用AFNetworking iOS库的示例:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:FOURSQUARE_CLIENTID forKey:@"client_id"];
[params setObject:FOURSQUARE_CLIENTSECRET forKey:@"client_secret"];
[params setObject:searchTextField.text forKey:@"query"];
[params setObject:LatLong forKey:@"ll"];
[params setObject:FOURSQUARE_VERSION forKey:@"v"];
[manager GET:@"https://api.foursquare.com/v2/venues/search" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
//Process the JSON response here and output each venue name as search suggestion
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
我建议您阅读FourSquare documentation上的更多内容以及如何处理JSON结果,如果您还不知道如何将其显示到UITableView。
另请注意,您仍需提供您的" ll"作为参数,因为您只能使用端点查询附近的地点。
对于全球搜索而不使用" ll"或"附近"参数。您可以尝试使用根据文档的全局意图:
找到最全球相关的搜索场所,独立于 地点。忽略查询和限制以外的所有其他参数。