使用GPS计算准确速度

时间:2013-08-05 14:27:14

标签: iphone ios objective-c gps core-location

我每隔0.1秒使用以下代码更新位置 -

- (void)viewDidLoad
{
    [super viewDidLoad];

    CLController = [[CoreLocationController alloc] init];
    CLController.delegate = self;


// set auto update timer
    currentTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
                                                  selector:@selector(updatestart) userInfo:nil repeats:YES];

}

-(void)updatestart
{

        [CLController.locMgr startUpdatingLocation];
}

然后我尝试使用

计算速度
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{
    [locMgr stopUpdatingLocation];

NSLog(@"%f",newLocation.speed);
}

我的速度以米/秒为单位,但经过一段时间后,过程变慢,即使我停止行驶,也会计算出速度。

我想要的是获得准确的速度并在速度超过12公里/小时时显示警报。

我可以使用其他方法找到相同的方法吗?

谢谢..

1 个答案:

答案 0 :(得分:3)

启动和停止位置管理器不是这样做的方法。您无法强制它提供更多位置更新。让它保持运行并平均随时间更新位置。要获得最佳准确度,请使用kCLLocationAccuracyBestForNavigation作为位置管理员的desiredAccuracy