2013-06-08 7 views
11

Aby uniknąć limitów API foursquare lub jednego z innych lokalnych dostawców wyszukiwania, chciałbym użyć MKLocalSearch z iOS 6.1. Następujący kod:Czy można znaleźć MKLocalSearch, aby znaleźć wszystkie pobliskie firmy?

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); 
    } 

}]; 

będzie poprawnie pobierać i wyświetlać restauracje w pobliżu określonej lokalizacji. Jeśli zmienię localSearchRequest.naturalLanguageQuery na "hotele", to pobierze i wyświetli hotele. To samo dotyczy "szpitali", "barów" itp. Jeśli jednak spróbuję pusty ciąg znaków, "", "*" lub "?" dla localSearchRequest.naturalLanguageQuery, nie zwraca żadnych wyników.

Jeśli użyję interfejsu API foursquare i wyślę mu lokalizację, będę mógł łatwo odzyskać listę miejsc obejmujących lokalne firmy wszystkich typów. Czy istnieje sposób użycia MKLocalSearch do zwrócenia wszystkich miejsc miejscowych?

+0

Szukam tej samej odpowiedzi ... czy znalazłeś coś na ten temat? –

+0

Nie, o ile wiem, nie jest to możliwe. Zgłosiłem zgłoszenie błędu do Apple z prośbą o dodanie tej funkcji i zostało oznaczone jako duplikat # 14152587. Nadal używam foursquare i szukamy konfiguracji serwera do buforowania odpowiedzi foursquare, aby pomóc w ograniczeniu stawki. –

+0

Dzięki ... W tej chwili używam również szukania miejsca w czterech miejscach ... więc musimy na razie trzymać się tego. –

Odpowiedz

0

Dokumentacja Apple mówi, że localSearchRequest.naturalLanguageQuery należy uznać za naturalne zapytanie językowe, co oznacza, że ​​można wpisać cokolwiek i uzyskać powiązane wyniki z zapytaniem. Jednak baza danych map jabłek może nie zwracać wartości zgodnie z oczekiwaniami.

Powiązane problemy