使用 GPS 计算准确速度
Posted
技术标签:
【中文标题】使用 GPS 计算准确速度【英文标题】:Calculate Accurate Speed Using GPS 【发布时间】:2013-08-05 14:27:14 【问题描述】:我使用以下代码每 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 公里/小时时显示警报。
还有其他方法可以用来找到相同的吗?
谢谢..
【问题讨论】:
如果你不继续测量,你怎么知道你已经停止了运动,或者你又开始了? 0m/s 与 12m/s 一样是有效的速度测量值。 【参考方案1】:像这样启动和停止位置管理器不是这样做的方法。您不能强迫它提供更多位置更新。让它运行并随着时间的推移平均位置更新。要获得最佳准确度,请使用kCLLocationAccuracyBestForNavigation
作为位置经理的desiredAccuracy
。
【讨论】:
如果我不强制启动和停止更新位置,那么它只会向我显示更新的位置五次,然后停止。 现在运行良好。但我面临的问题是它会在延迟 2-3 秒后更新我的速度。我还想提一下,我正在使用 GPS 来获取位置。我能做些什么来让它变得完美吗? 您可以尝试使用location
的speed
属性,但我不确定它是否会更准确。您只需等待 GPS 得到修复,然后才能准确测量。以上是关于使用 GPS 计算准确速度的主要内容,如果未能解决你的问题,请参考以下文章