Öffnen Sie die Google Maps App über den Code - Wo / Wie finde ich den "aktuellen Standort"?

7

Ich öffne die Google Maps App, um die Wegbeschreibung vom aktuellen Standort des Benutzers zu einer Zielkoordinate aus meinem Code anzuzeigen. Ich verwende den folgenden Code, um die Google Maps App zu öffnen. Ich rufe diesen Code an, wenn eine Taste gedrückt wird. getCurrentLocation ist eine Methode, die den zuletzt aktualisierten Speicherort zurückgibt.

%Vor%

Hier [self getCurrentLocation] in LINE 1 verwendet CLLocationManager , um den aktuellen Standort zu ermitteln, und gibt den Wert zurück.

Hinweis : Ich habe den Code noch nicht in LINE1 implementiert. Ich habe gerade geplant, es so zu machen.

Meine Fragen sind:

  1. Ist es empfehlenswert, den aktuellen Standort zum Zeitpunkt des Aufrufs der Google Maps App zu berechnen?
  2. Wird [self getCurrentLocation ] den aktuellen Standort zurückgeben, bevor openURL aufgerufen wird?
  3. Muss ich den aktuellen Standort ermitteln, bevor ich die Google Maps App öffne?

Ich bin etwas verwirrt über diese Dinge. Bitte führe mich. Danke.

    
EmptyStack 04.01.2011, 05:42
quelle

4 Antworten

11

Sie müssen den aktuellen Standort des Nutzers nicht selbst bestimmen, die Google Maps App kümmert sich darum.

Anstatt ein Breiten- / Längengradpaar zu übergeben, können Sie Current%%20Location übergeben und Maps bestimmt den aktuellen Standort des Benutzers.

%20 ist ein url-codiertes Leerzeichen, und das zusätzliche % entkommt dem tatsächlichen % , so dass es nicht als Format-Ersetzung interpretiert wird.

Danke an @Carlos P , um in der ursprünglichen Antwort auf meinen Fluch in Flucht zu verweisen.

    
Matthew Frederick 04.01.2011, 06:02
quelle
7

Die Verwendung von "Aktueller Standort" als saddr funktioniert nur, wenn der Benutzer die Systemsprache auf Englisch eingestellt hat. Die beste Option ist es, die aktuelle Position von Core Location zu beziehen und diese als saddr zu verwenden.

    
pazustep 08.02.2011 14:41
quelle
5

Wie bereits erwähnt, funktioniert "Current Location" nur für Englisch. Im Italienischen zum Beispiel ist die korrekte Zeichenfolge "Posizione attuale".

Schnüffeln in der iPhone-Firmware Ich habe alle "Current Location" -Übersetzungen erkannt und eine Klasse geschrieben, die die richtige Zeichenfolge für jede (derzeit) unterstützte Sprache enthält.

Es gibt einen Post darüber (Quellcode enthalten) in meinem Blog: Ссылка .

    
martip 04.05.2011 12:22
quelle
2

Sie können die neue MKMapItem -Klasse für iOS 6 verwenden. Siehe die Apple API-Dokumentation hier

Grundsätzlich werden Sie so etwas verwenden, wenn Sie zum Ziel Koordinaten ( destCoordinate ):

verlegen %Vor%

Um sowohl iOS 6+ als auch Pre iOS 6 im selben Code zu unterstützen, würde ich empfehlen, etwas wie diesen Code zu verwenden, den Apple auf der MKMapItem API-Doc-Seite hat:

%Vor%

Dies würde voraussetzen, dass Ihr Xcode Base SDK iOS 6 (oder Latest iOS ) ist.

In dieser anderen Antwort biete ich eine robuste Technik für iOS 5.1 und niedriger an

    
Nate 22.09.2012 06:56
quelle