Frage

Ich entwickle GPS-Anwendung. Wissen Sie, wie Geschwindigkeit des mobilen Geräts zu erkennen?

Eigentlich brauche ich die Geschwindigkeit alle 2 Sekunden zu erkennen.

Ich weiß didUpdateToLocation Methode aufgerufen wird, wenn Lage geändert.

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation

Aber ich denke, diese Methode für mein Problem nicht geeignet ist.

Also, brauche ich Geschwindigkeit von [CLLocationManager location] zu überprüfen in 2 Sekunden?

Jeder Vorschlag?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Wie über den Code, unter dem von den Delegierten Methode funktioniert. Alternativ, wenn Sie wollen Umfrage haben, dann Ihre vorherige Position halten und den Abstand von der letzten Umfrage und die manuelle Methode (auch unten gezeigt) geändert überprüfen, um die Geschwindigkeit zu berechnen.

Geschwindigkeit berechnet wird / in m vorgesehen / s so multiplizieren mit 3.6 km pro Stunde oder 2,23693629 für Meilen pro Stunde.

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
   //simply get the speed provided by the phone from newLocation
    double gpsSpeed = newLocation.speed;

    // alternative manual method
    if(oldLocation != nil)
    {
        CLLocationDistance distanceChange = [newLocation getDistanceFrom:oldLocation];
        NSTimeInterval sinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp];
        double calculatedSpeed = distanceChange / sinceLastUpdate;

    }   
}

Andere Tipps

Sie können nur dann wirklich die delegierte Methode verwenden Sie in Ihrer Frage vorgeschlagen haben.

Auch wenn Sie die [CLLocationManager Standort] zugreifen alle 2 Sekunden, werden Sie nur erhalten die Koordinate Sie zuletzt in der Delegatmethode empfangen oben.

Warum die Notwendigkeit, alle zwei Sekunden abzufragen? Das iPhone kann es die Koordinaten in kürzerer Zeit auf einigen Fällen aktualisieren.

HTH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top