【发布时间】:2013-06-04 10:52:41
【问题描述】:
为了避免 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 更改为“hotels”,它将获取并显示酒店。这同样适用于“医院”、“酒吧”等。但是,如果我尝试使用空字符串,或者“”、“*”或“?”对于localSearchRequest.naturalLanguageQuery,它不返回任何结果。
如果我使用foursquare API 并向它发送一个位置,我可以轻松地返回一个包含所有类型本地企业的场所 列表。有没有办法使用 MKLocalSearch 来返回所有场所或本地企业?
【问题讨论】:
-
我也在寻找同样的答案……你找到什么了吗?
-
不,据我所知这是不可能的。我向 Apple 提交了一份错误报告,要求他们添加此功能,并且它被标记为 #14152587 的副本。我仍在使用foursquare,我们正在考虑设置一个服务器来缓存foursquare响应以帮助解决速率限制。
-
谢谢...我现在也在使用foursquares场地搜索...所以我们现在需要坚持下去。