使用 GPS 提高测量距离的准确性
Posted
技术标签:
【中文标题】使用 GPS 提高测量距离的准确性【英文标题】:Improve accuracy of measured distance with GPS 【发布时间】:2013-06-22 14:12:32 【问题描述】:我目前正在测量用户步行/跑步/等的距离。当我将我的结果与其他应用程序的结果进行比较时,我的结果并不像其他应用程序那样准确(即 100m 是正确的,我的结果大约是 50m)。那么如何提高准确性以获得更准确的结果呢?
到目前为止,我正在做的是:
初始化 CLLocationManager:
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
locationManager.distanceFilter = 10;
和:
- (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
CLLocation *lastLocation = [locations lastObject];
NSTimeInterval age = -[lastLocation.timestamp timeIntervalSinceNow];
if (age > 30.0) return;
if (lastLocation.horizontalAccuracy < 0) return; // ignore invalid updates
if (previousLocation == nil || previousLocation.horizontalAccuracy < 0)
previousLocation = lastLocation;
return;
CLLocationDistance distance = [lastLocation distanceFromLocation:previousLocation];
if ([delegate respondsToSelector:@selector(currentDistance:)])
[delegate currentDistance:distance];
previousLocation = lastLocation;
干杯!
【问题讨论】:
【参考方案1】:根据设置和设备硬件,通常以 3 种方式进行地理定位:
蜂窝无线电 wifi 映射 全球定位系统-desiredAccuracy
属性设置应该打开这三种模式中的哪一种。另一方面,您要求最新响应的最准确度是。首先,您将获得无线电(仅适用于手机设备),如果打开 WiFI 并且打开手机数据,您将获得 WiFi 地理位置,通常在 +- 100m 左右,并且在 GPS 之后很多(如果可用)。 GPS的延迟是由于两次搜索卫星和电池优化。对于跑步,我建议您使用所需的精度kCLLocationAccuracyBestForNavigation
,一旦 GPS 发挥作用,您应该获得接近 +-10m 的值。
另一件事是将-distanceFilter
设置为 5 米,如果 CoreLocation Manager 得到一个 delta >= 5 米的新测量值,它将调用委托方法。
如果要排除水平精度大于某个值的位置,只需添加另一个逻辑条件。
我建议您也阅读这些答案link
【讨论】:
以上是关于使用 GPS 提高测量距离的准确性的主要内容,如果未能解决你的问题,请参考以下文章