iPhone SDK: Track Benutzer Standort mittels GPS

stimmen
2

Ich habe ein paar Fragen zu Corelocation und GPS.

Erstens, was Verfahren in Kernort wird verwendet, um die Benutzer aktuelle Koordinaten kontinuierlich zu bekommen? Und in welchem ​​Intervall sollte diese abgerufen werden?

Zweitens sollten diese Koordinaten in eine NSMutableArray jedesmal, wenn sie gedrückt empfangen werden, so daß die Anordnung von Koordinaten, welche die Benutzer Pfad darstellen?

Danke, nur wollen, um loszulegen mich, dies zu umgehen kümmern.

Veröffentlicht am 19/05/2010 um 15:15
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
11

Eine sehr gekürzte Version:

Erstens nimmt das <CLLocationManagerDelegate>Protokoll in Ihrem .h und #import <CoreLocation/CoreLocation.h>.

Dann in .m go:

- (void)viewDidLoad {
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    [locationManager startUpdatingLocation];
}


-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation
{
    CLLocationCoordinate2D here =  newLocation.coordinate;
    NSLog(@"%f  %f ", here.latitude, here.longitude);
}

Ihre -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocationMethode wird jedes Mal Kernort dir etwas zu sagen hat , bekommen pinged, die alle paar Sekunden passieren sollte. diese CLLocation Objekte enthalten Informationen über die Genauigkeit, so dass Sie für gute Punkte in diesem Verfahren durchmustern.

Achten Sie darauf , anrufen [locationManager stopUpdatingLocation]und dann [locationManager release]irgendwann!

Viel Glück zu finden, sich selbst!

Beantwortet am 19/05/2010 um 16:27
quelle vom benutzer

stimmen
1

Sie erhalten folgendes tun:

  1. Wenn das Gerät nicht das Internet zugreifen
    1. Holen Koordinaten von GPS-Gerät
    2. Senden Sie diese Koordinaten per SMS
    3. Empfangen und entschlüsseln Sie SMS-Nachricht an der SMS-Gateway konfigurieren Informationen von Gerät zu erhalten.
    4. Aktualisieren Sie die Informationen auf der Anwendungsdatenbank oder einem anderen Speicher, den Sie verwenden
    5. Aktualisieren Sie die Position auf der Karte mit den neuesten Informationen
  2. Wenn das Gerät kann die Internet-Zugang
    1. Holen Koordinaten von GPS-Gerät
    2. Eine Verbindung mit Anwendungsserver (kann einige Dienst sein) und laden Informationen
    3. Aktualisieren Sie die Informationen auf der Anwendungsdatenbank oder einem anderen Speicher, den Sie verwenden
    4. Aktualisieren Sie die Position auf der Karte mit den neuesten Informationen
Beantwortet am 30/08/2012 um 14:02
quelle vom benutzer

stimmen
1

Sie sind in der Lage zu definieren, welcher Bereich für Genauigkeit akzeptabel ist und wie oft wollen Sie automatische Updates (auf einer Entfernung von den letzten Punkt Mechanismus basiert) empfangen. Sie können auch nur den Standort-Manager ausschalten und wieder einschalten nach Belieben durch einige Verwendung eines Timers.

Wie für die Standorte Speicher einen Weg zu bauen, es ist nicht so einfach. Sie werden kontinuierlich GPS-Positionen auf dem ersten, bis die gewünschte Genauigkeit erreicht wird und für alle Punkte in der Zukunft erhalten können Sie mehr als eine, die ungenau ist, bevor Sie eine gute Lage zu bekommen. So bauen Sie eine Liste dieser Punkte werden im Grunde nur eine Liste von ihrem Weg, zusammen mit einer Menge Extra-Punkte. Sie könnten dieses Problem lösen, indem nur diejenigen Punkte speichern, die die Genauigkeit haben Sie es wünschen, aber es ist eine unvollkommene Welt in dieser Hinsicht.

Im besten Fall würde ich vorschlagen, dass Sie zwei Listen zu halten, ist der Weg und die anderes ist eine laufende Liste der Orte, an denen Sie zu vergleichen, bis Sie einen sehr genauen Standort zu erhalten, dann wird diese Liste auf dem Weg setzen. Einige der Beispielprojekte tun Dinge in diese Richtung, sie prüfe heraus.

Beantwortet am 19/05/2010 um 16:15
quelle vom benutzer

stimmen
1

Der beste Weg , um die Lese CLLocationManager Klassenreferenz , die sich auf mehrere Beispielprojekte verbindet. Die kurze Version:

  1. Stellen Sie die delegateEigenschaft zu einer Klasse , die Standortaktualisierungen erhalten.
  2. Implementieren Sie das CLLocationManagerDelegateProtokoll in den Delegaten.
  3. Rufen Sie die appopriate Methoden starten Standort aktualisieren und / oder Überschrift.
Beantwortet am 19/05/2010 um 15:24
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more