I want to get the distance between my current position and a new (current) position a few moments later. I want a timer that updates my label every second with the new distance.
Example: am standing on a street with my current location and run 300 meters further. I get a new current location and a label should give 300 meters.
I am not very experienced in objected c-programming. this is what i got so far:
#import <CoreLocation/CoreLocation.h>
@interface NormalSoloViewController () <CLLocationManagerDelegate>
@property (weak, nonatomic) IBOutlet UILabel *lbDistance;
@end
@implementation NormalSoloViewController
{
CLLocationManager *locationManager;
CLLocation *firstLocation;
}
- (void)viewDidLoad
{
[super viewDidLoad];
locationManager =[[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLHeadingFilterNone;
[locationManager startUpdatingLocation];
firstLocation = locationManager.location;
}
- (void)startTimer
{
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateDistance:) userInfo:nil repeats:YES];
}
- (void)updateDistance:(NSTimer *)timer
{
double distance = 0;
distance = distance + [self calculateDistance];
self.lbDistance.text = [NSString stringWithFormat:@"%f", distance];
}
- (double) calculateDistance {
CLLocation *newFirstLocation = firstLocation;
CLLocation *secondLocation = locationManager.location;
firstLocation = secondLocation;
return [newFirstLocation distanceFromLocation:secondLocation];
}