Dachmt
Dachmt

Reputation: 2099

iPhone CLLocationManager updates every 0.5 seconds

For an app that does lots of calculation from the GPS, I need to get the latitude/longitude and speed every 0.5 second to be very accurate and avoid delay.

I am using:

See below a graph generated by Excel representing the latitude values during 18 seconds:

Latitude values during 18 seconds

We can clearly see that we have location updates every second, and not every 0.5 second as wished. I do samples driving around my office, so my speeds vary between 0 and 65 MPH. So when I am driving 50MPH, I should get different values for lat/lon/speed from the iPhone every 0.5s right?

Please tell me how I can get those location updates every 0.5s if you know anything about the accuracy with the CLLocationManager object.

Thanks!

Upvotes: 2

Views: 1895

Answers (2)

MrJoeHimself
MrJoeHimself

Reputation: 3

[self.locationManager startUpdatingLocation];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self     selector:@selector(myTimerFunc) userInfo:nil repeats:YES];

- (void)myTimerFunc
{
    CLLocation location = self.locationManager.location;
    // do work here //
}

 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    // do nothing here //
}

Upvotes: 0

nevan king
nevan king

Reputation: 113747

You can't tell the location manager how often you want updates, but only respond when it chooses to give you updates. The timing of getting updates can't be counted on, it depends on the ease of finding WiFi signals and GPS signals.

Upvotes: 5

Related Questions