我已经查看了文档,无法找到一种使用MKLocalSearch只返回区域的方法。例如,我希望搜索世界各地的城市,城镇,村庄和县,但不返回任何企业或酒店等。这可能吗?
谢谢
D
发布于 2014-07-22 12:04:21
我认为您可以像这样使用谓词:
NSPredicate *noBusiness = [NSPredicate predicateWithFormat:@"business.uID == 0"];
NSMutableArray *itemsWithoutBusinesses = [response.mapItems mutableCopy];
[itemsWithoutBusinesses filterUsingPredicate:noBusiness]; 示例本地搜索代码也在添加,这将解决您的问题。
-(void)issueLocalSearchLookup:(NSString *)searchString {
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.location.coordinate, 30000, 30000);
self.localSearchRequest = [[MKLocalSearchRequest alloc] init];
self.localSearchRequest.region = region;
self.localSearchRequest.naturalLanguageQuery = searchString;
self.localSearch = [[MKLocalSearch alloc] initWithRequest:self.localSearchRequest];
[self.localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
if(error){
NSLog(@"LocalSearch failed with error: %@", error);
return;
} else {
for(MKMapItem *mapItem in response.mapItems){
[self.data addObject:mapItem];
}
[self.searchDisplayController.searchResultsTableView reloadData];
}
}];}
发布于 2014-07-22 12:54:08
根据您的需求更改addressDictionary的关键参数。
for(MKMapItem *mapItem in response.mapItems)
{
NSLog(@"%@",mapItem.placemark.addressDictionary[@"Street"]);
}https://stackoverflow.com/questions/24886305
复制相似问题