【问题标题】:Is it possible to use MKLocalSearch to find all nearby businesses?是否可以使用 MKLocalSearch 查找附近的所有商家?
【发布时间】: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场地搜索...所以我们现在需要坚持下去。

标签: ios location


【解决方案1】:

Apple 文档说 localSearchRequest.naturalLanguageQuery 被视为自然语言查询,这意味着您可以输入任何内容并获得与查询相关的结果。但是 Apples Maps 数据库可能不会像您期望的那样返回值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多