是否可以使用MKLocalSearch查找所有附近的商家?

为了避免foursquare或其他本地search提供者的API限制,我想使用iOS 6.1中的MKLocalSearch。 以下代码:

MKLocalSearchRequest *localSearchRequest = [[MKLocalSearchRequest alloc] init]; MKCoordinateRegion localSearchRegion = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake([theLocationChange.latitude floatValue], [theLocationChange.longitude floatValue]), 500.0f, 500.0f); localSearchRequest.naturalLanguageQuery = @"restaurants"; localSearchRequest.region = localSearchRegion; MKLocalSearch *localSearch = [[MKLocalSearch alloc] initWithRequest:localSearchRequest]; [localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) { if (error) { NSLog([error localizedDescription]); } for (MKMapItem* mapItem in response.mapItems) { NSLog(@"mapitem name is: %@",mapItem.name); } }]; 

将在指定位置附近正确提取并显示餐馆。 如果我将localSearchRequest.naturalLanguageQuery更改为“hotels”,它将获取并显示酒店。 这同样适用于“医院”,“酒吧”等。但是,如果我尝试一个空string或“”,“*”或“?” 对于localSearchRequest.naturalLanguageQuery ,它不返回任何结果。

如果我使用foursquare API并发送一个位置,我可以轻松找回包含各种本地业务的场地列表。 有没有一种方法可以使用MKLocalSearch来返回所有地点或本地业务?

苹果的文档说localSearchRequest.naturalLanguageQuery被认为是自然的语言查询,这意味着,你可以input任何东西,并获得相关的结果到您的查询。 但是,苹果地图数据库可能不会像您期望的那样返回值。