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

时间:2013-06-08 03:49:13

标签: ios location

为了避免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返回所有场地或本地商家?

1 个答案:

答案 0 :(得分:0)

Apple文档说localSearchRequest.naturalLanguageQuery被认为是自然语言查询,这意味着,您可以键入任何内容并获取相关结果给您的查询。但Apples Maps数据库可能无法按预期返回值。