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?
Szukam tej samej odpowiedzi ... czy znalazłeś coś na ten temat? –
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. –
Dzięki ... W tej chwili używam również szukania miejsca w czterech miejscach ... więc musimy na razie trzymać się tego. –