iPhone SDK - Schnelltipp Starten von Maps In-App

Die iPhone Maps-Anwendung ist ein revolutionäres Programm, das die Leistung von GPS und Google Maps mit einer unglaublich benutzerfreundlichen Oberfläche kombiniert. In diesem Quick Tip erfahren Sie, wie Sie diese Funktion nutzen können, indem Sie die Maps-App in Ihrem iPhone SDK-Projekt starten und konfigurieren.

Schritt 1. Machen Sie eine Reise nach Paris

Das Starten der Google Maps-Anwendung in Ihrer eigenen App ist mit den folgenden zwei Codezeilen möglich:

 UIApplication * app = [UIApplication sharedApplication]; [app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?q=Paris"]]; 

In Zeile eins fordern wir einen Verweis auf die aktuell ausgeführte Anwendungsinstanz von der UIApplication-Klasse an.

In Zeile zwei teilen wir der Anwendung mit, dass sie die angegebene URL, in diesem Fall eine gültige Google Maps-URL, öffnen soll. Anstatt die Karte in Mobile Safari zu öffnen, wie Sie vielleicht erwarten, ist die Anwendungsinstanz intelligent genug, um zu erkennen, dass diese Anforderung von der Maps-App besser verarbeitet wird und stattdessen sie startet.

Hinweis: Leider öffnet der iPhone-Simulator die Anwendung "Karten" nicht mit dem oben genannten Code (der Simulator verfügt nicht über die Karten-App). Sie müssen dieses Snippet auf einem iPhone-Gerät ausführen, um es zu testen. Wenn Sie diesen Code im iPhone Simulator ausführen, wird Google Maps in Mobile Safari gestartet.

Voila! Willkommen in Frankreich.

Schritt 2. Konfigurieren Sie zusätzliche Parameter

Nachdem wir nun die Grundlagen verstanden haben, wollen wir uns ein wenig mit der Funktionalität der Google Maps API beschäftigen.

Die oben angegebene URL wird als HTTP-GET-Post für die Google Maps-Anwendung formatiert. Sie übergibt den Parameter "q" auf den Wert "Paris". Das "q" steht für Abfrage und es ist der allgemeinste Anforderungstyp, den wir erstellen können. Einige andere häufig verwendete Parameter sind:

  • ll =: Steht für "latittude / longitude" und ermöglicht dem Benutzer eine wesentlich höhere Genauigkeit beim Hochziehen von Karten. Dieser Parameter wird häufig in Verbindung mit dem GPS an Bord verwendet, um die Anzeige eines "You are Here" -Punkts zu zeichnen. Der Wert für diesen Parameter muss im Dezimalformat angegeben und durch Kommas getrennt werden.
  • saddr =: Die Startadresse (Quelle), die beim Erstellen von Wegbeschreibungen verwendet werden soll.
  • daddr =: Die Endadresse (Zieladresse), die beim Erstellen von Wegbeschreibungen verwendet werden soll.
  • t =: Der Kartentyp, der angezeigt wird.
  • z =: Die Zoomstufe der Karte, die angezeigt wird.

Wie Sie sich vielleicht schon gedacht haben, können Sie mehrere Parameter in einer GET-Anfrage kombinieren. Dies geschieht, indem Sie sie mit dem Symbol "&" verbinden.

Detaillierte Informationen zu den unterstützten Parametern (mit Beispielen) finden Sie hier in der offiziellen Dokumentation von Apple Inc..

Schritt 3. Senden Sie Ihren Benutzer an den Eiffelturm

Lassen Sie uns mit einem Beispiel abschließen, wie Sie einige der oben genannten benutzerdefinierten Parameter kombinieren und unsere Benutzer zu einer Satellitenansicht des Eiffelturms schicken.

Der Eiffelturm befindet sich bei 48 ° 51 '32' nördlicher Breite und 002 ° 17 '45' östlicher Länge. Diese Informationen sind jedoch im aktuellen Format für uns wenig hilfreich. Wir müssen das Degree / Minute / Second-Format in das für Google Maps erforderliche Dezimalformat konvertieren ll = Parameter.

Es gibt viele Tools, mit denen Sie dies schnell online erledigen können. Bei der Arbeit mit Google Maps verwende ich jedoch gerne einen einfachen Trick, um aus der Karte ein Breiten- / Längengrad-Paar zu generieren. Nachdem Sie den gewünschten Standort auf dem Bildschirm zentriert haben, fügen Sie den folgenden Code-Ausschnitt (von hier aus genommen) in die Adressleiste Ihres Browsers ein und drücken Sie die Eingabetaste:

 Javascript: void (Eingabeaufforderung (", gApplication.getMap (). getCenter ())); 

Wir haben das dezimale Format von 48.85812229675187 und 2.294490337371826 übrig.

Nun, um unseren Benutzer direkt an den Eiffelturm zu senden, könnten wir Folgendes einfügen:

 [App openURL: [NSURL-URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826"]]; 

Standardmäßig wird dieser mit dem grafischen Kartentyp gestartet. Dies ist bei weitem nicht so beeindruckend wie das Sehen der Realität. Ändern Sie also den Kartentyp in satellit, indem Sie '& t = k' an unsere Abfragezeichenfolge anhängen:

 [App openURL: [NSURL-URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k"]]; 

Das funktioniert, aber unser Blick von oben ist etwas zu nahe. Lassen Sie uns ein wenig aussteigen, indem Sie die Zoomstufe der Karte mit '& z = 19' einstellen:

 [App openURL: [NSURL-URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k&z=19"]]; 

Perfekt. La Tour Eiffel in unserer Handfläche.