Wie Suche MKMapView mit UISearchBar?
Ich habe eine Anwendung, eine ähnliche Suchfunktion wie apples "Karten" - Anwendung (im Lieferumfang enthalten iPhone, iPod Touch und iPad).
Die Funktion in Frage, sollte nicht eine harte Sache zu tun, aber ich bin wirklich ahnungslos darüber, wie die Eingabe einer Adresse in die Suchleiste ein, und erhalten dann die Koordinaten für diese Adresse oder etwas, das mir helfen kann, um tatsächlich verschieben der Karte und center in diesem Ort.
Ich meine, was muss ich Abfrage, nicht von Apple bieten einen "Adress-Suche-API-Methode" ? oder muss ich die google-maps-API direkt ?
Ich würde gerne hören, wie sollte es gemacht werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies vielleicht die einfachste Methode. Es verwendet die apple-Server, die für die Geokodierung. Manchmal sind die apple-Server bieten eine bessere Antwort als die von google. Und bald (in IOS 6.1) die google maps wird komplett aus IOS. So ist es gut, wenn die app bleibt im inneren der äpfel bereitgestellten Funktionen.
placemark
Werte. Alle Dinge, die übrigen gleich, obwohl es sieht aus, um die eclipse Google Maps API-option in die ZukunftOk, beantworte meine eigene Frage:
Wie schon zuvor erwähnt, war das beste, was zu tun ist, um die Verwendung der Google Maps API,
es unterstützt eine Vielzahl von Formaten, aber für einige Gründe, warum ich wählte zu gehen mit JSON.
So, hier sind die Schritte, um eine JSON-Abfrage zu Google Maps und erhalten die Koordinaten für die Abfrage. Beachten Sie, dass nicht alle die richtigen Prüfungen durchgeführt, dies ist nur ein Proof-of-concept.
1) Laden Sie eine JSON-framework/Bibliothek-für das iPhone gibt es mehrere, die ich wählte zu gehen mit diese eine, es ist sehr gut und scheint ein aktives Projekt, sowie mehrere kommerzielle Anwendungen zu sein scheinen, es zu benutzen. So fügen Sie es zu Ihrem Projekt ( Anleitung hier ).
2) - Abfrage in Google Maps nach einer Adresse, die wir brauchen, um zum Aufbau einer Anforderungs-URL wie diese:
http://maps.google.com/maps/geo?q=Paris+Frankreich
Diese url, wird wieder ein JSON-Objekt für die Abfrage "Paris+Frankreich".
3) Code:
Nachdem wir uns mit den UISearchBar suchen, müssen wir die Anfrage an Google Maps:
Müssen wir natürlich dann mit der Reaktion der GoogleMaps-server ( Hinweis: eine Menge von Validierungen fehlen)
Schließlich die Funktion zoom meine map, die sollten jetzt eine triviale Sache.
Hoffe, dies hilft jemand da der JSON-Teil war eine echte Schmerzen, um herauszufinden,, die Bibliothek ist nicht sehr gut dokumentiert, meiner Meinung nach, immer noch ist es sehr gut.
EDIT:
Geändert, eine Methode, die den Namen "searchCoordinatesForAddress:" weil der @Leo Frage. Ich muss sagen, dass diese Methode gut als proof-of-concept, aber wenn Sie planen, herunterladen big JSON-Dateien , Sie müssen zum Anhängen an ein NSMutableData Objekt, halten alle die Abfrage an den google-server. ( denken Sie daran, dass HTTP-Anfragen kommen per Stück . )
http://maps.google.com/maps/geo?q=%@&output=csv
( Ausgabe im CSV-Modus ) zu vermeiden, Parsen von JSON. (keine Notwendigkeit, auf die Sie sich verlassen JSON-Framework)Dieser link hilft Ihnen, wenn Sie suchen eine region.
Wenn Sie möchten suchen Sie eine Straße, dies ist der korrekte link
Bemerken, dass die 2.
?
sollte&
.Swift version, angepasst für iOS 9:
basierend auf user1466453 Antwort.
Wenn jemand anderes mit dem gleichen Problem, hier der link:
https://github.com/stig/json-framework/
Blättern Sie nach unten, um Projekt umbenannt SBJson
Auch, hier ist der code für immer alle Daten, bevor Sie Ihre app verwendet. Beachten Sie die delegate-Methode 'haben Daten empfangen", wie es fügt die veränderlichen Daten-Objekt mit den heruntergeladenen Daten.
Habe ich NUR VERWENDET, HERR GANDOS searchCoodinatesMETHOD, WIE ES IST, WIE ES FUNKTIONIERT GUT
//SCHRITT EINS
//DIES IST WICHTIG, DENN ES SCHAFFT DIE VERÄNDERLICHEN DATEN-OBJEKT, SOBALD EINE ANTWORT EMPFANGEN WIRD
///SCHRITT ZWEI
//DIES IST WICHTIG, DA ES FÜGT DAS DATEN-OBJEKT MIT DEN DATEN
//SCHRITT DREI......
//JETZT HABEN SIE ALLE DATEN NUTZEN
Können Sie die Google-API-service, um get lat/long-Koordinaten aus einer textuellen Suche string. Achten Sie darauf, geben den aktuellen Standort des Benutzers, so dass die Ergebnisse relevant sind. Lesen Sie die Antworten auf diese Frage: Such-und display-Standorte auf MKMapView