为了避免foursquare 或其他本地搜索提供商之一的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
为“酒店”,它将获取并显示酒店。这同样适用于“医院”、“酒吧”等。但是,如果我尝试使用空字符串或“”、“*”或“?” 对于localSearchRequest.naturalLanguageQuery
,它不返回任何结果。
如果我使用foursquare API 并向它发送一个位置,我可以轻松地返回一个包含所有类型本地企业的场所列表。有没有办法使用 MKLocalSearch 来返回所有场地或本地商家?