2012-03-24 4 views
2

Ich habe eine iPhone-App (iOS 5), die eine UISearchBar verwendet, um eine MKMapView zu suchen. Wir haben JSON-Abfragen verwendet und die fantastic answers from this question als Referenz verwendet (unser Code ist sehr ähnlich). Der Prozess selbst funktioniert jetzt einwandfrei, aber bei der Abfrage von Google erhalten wir keine Ergebnisse von Google zurück, oder wir erhalten nur sehr weit entfernte und falsche Ergebnisse. Meistens können wir sogar nach "McDonald's" oder "Subway" suchen, es werden keine Ergebnisse zurückgegeben. Im Allgemeinen gibt es selten ein gutes Ergebnis zurück, es sei denn wir sind sehr spezifisch und schließen Stadt und Staat und alles ein.Suche MKMapview mit JSON tendenziell keine Ergebnisse oder eine falsche

Gibt es noch einen besseren Weg? Wurde seit dieser Antwort etwas aktualisiert, das wir nun berücksichtigen sollten? Das Problem scheint nicht zu sein, dass der Code nicht funktioniert, sondern dass Google Anfragen einfach nicht so gut verarbeitet, wie wir es tun. Dies scheint eine ziemlich häufige Verwendung für MKMapview zu sein, daher dachte ich, dass es eine einfachere und besser funktionierende Lösung geben sollte.

Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Dies ist eine sehr nützliche Liste der Parameter, die die Google Maps API unterstützt: http://querystring.org/google-maps-query-string-parameters/

Sie haben ein paar Optionen:

1) Holen Sie den Standort des Nutzers aus der App und geben es in die Suchanfrage mit dem Parameter sll, z

diese Suche keinen Standort enthält:
https://maps.google.com/?q=starbucks

aber dieses tut (ich habe in diesem Beispiel San Francisco verwendet):
https://maps.google.com/?q=starbucks&sll=37.776414,-122.437477

Dann werden Sie erhalten Ergebnisse für der tatsächliche Standort des Benutzers. Sie müssen auch etwas Sinnvolles tun, wenn der Benutzer der App nicht erlaubt, auf ihren Standort zuzugreifen (in diesem Fall können Sie die Suche deaktivieren).

2) Wenn Ihre App für einen bestimmten Ort ist, können Sie diesen Ort einfach am Ende Ihrer Suchzeichenfolge hinzufügen. z.B. Meine Domesday App ist nur für England, also schließe ich ", England" am Ende all meiner Suchanfragen ein, und das funktioniert gut für mich.

+0

Vielen Dank für die nützlichen Links. Werde sie bald auschecken. Wir stellten fest, dass der größte Fehler, den wir gemacht hatten, darin bestand, dass wir die Geocoding-API-Anfragen korrekt eingerichtet hatten, aber der, der an die Places-API ging, war nicht richtig gemacht. Dies bedeutet, dass wir bei unseren Suchanfragen nur Straßenadressen erhalten, daher das Problem. – NeonBlueHair