2013-06-08 3 views
11

Um die API-Grenzen von Foursquare oder einem anderen lokalen Suchanbieter zu umgehen, möchte ich MKLocalSearch von iOS 6.1 verwenden. Der folgende Code:Ist es möglich, MKLocalSearch zu verwenden, um alle Unternehmen in der Nähe zu finden?

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

}]; 

wird Restaurants in der Nähe des angegebenen Standorts korrekt abrufen und anzeigen. Wenn ich localSearchRequest.naturalLanguageQuery zu "Hotels" ändere, wird es Hotels holen und anzeigen. Das gleiche gilt für "Krankenhäuser", "Bars" usw. Wenn ich jedoch eine leere Zeichenfolge oder "", "*" oder "?" für localSearchRequest.naturalLanguageQuery gibt es keine Ergebnisse zurück.

Wenn ich die Foursquare-API verwende und einen Standort sende, kann ich problemlos eine Liste von Locations abrufen, die lokale Unternehmen aller Typen enthält. Gibt es eine Möglichkeit, MKLocalSearch zu verwenden, um alle Veranstaltungsorte oder lokale Unternehmen zurückzugeben?

+0

Ich bin auf der Suche nach der gleichen Antwort ... haben Sie etwas darüber gefunden? –

+0

Nein, soweit ich weiß ist das nicht möglich. Ich habe einen Fehlerbericht mit Apple eingereicht, mit der Bitte, diese Funktion hinzuzufügen und sie wurde als Duplikat von # 14152587 markiert. Ich benutze immer noch foursquare, und wir versuchen, einen Server einzurichten, um foursquare Antworten zu cachen, um mit dem Ratenlimit zu helfen. –

+0

Danke ... Ich benutze auch die FourSquares Venue Search im Moment ... also müssen wir uns jetzt daran halten. –

Antwort

0

Apple-Dokumentation besagt, dass localSearchRequest.naturalLanguageQuery als natürliche Sprachabfrage betrachtet werden kann, was bedeutet, dass Sie alles eingeben und die entsprechenden Ergebnisse zu Ihrer Abfrage abrufen können. Die Apples Maps-Datenbank gibt die Werte möglicherweise nicht wie erwartet zurück.

Verwandte Themen