Можно ли использовать MKLocalSearch для поиска всех ближайших предприятий?

Чтобы избежать ограничений API для четырехквартирных домов или одного из других локальных поставщиков поиска, я хотел бы использовать MKLocalSearch для iOS 6.1. Следующий код:

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 он не возвращает никаких результатов.

Если я использую API-интерфейс Foursquare и отправляю его в качестве местоположения, я могу легко вернуть список мест, в которые входят локальные предприятия всех типов. Есть ли способ использовать MKLocalSearch для возвращения всех мест или локальных предприятий?

Ответ 1

Документация Apple гласит, что localSearchRequest.naturalLanguageQuery считается естественным запросом языка, что означает, что вы можете ввести что угодно и получить связанные результаты с вашим запросом. Но база данных "Яблоки" может не возвращать значения, как вы ожидаете.