使用 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 来获取位置。我能做些什么来让它变得完美吗? 您可以尝试使用locationspeed 属性,但我不确定它是否会更准确。您只需等待 GPS 得到修复,然后才能准确测量。

以上是关于使用 GPS 计算准确速度的主要内容,如果未能解决你的问题,请参考以下文章

智能手机GPS定位算法研究

Android GPS定位速度不可靠

iPhone GPS速度计算问题

GeolocationCoordinates.speed API 的准确性和可靠性如何?

距离,Google Maps v2 上的 gps 不准确

使用 GPS 坐标计算最短距离