ios - 通过 GPS 提高测量距离的准确性

标签 ios gps core-location distance cllocationmanager

我目前正在测量用户行走/运行/等的距离。当我将我的结果与其他应用程序的结果进行比较时,我的结果不如其他应用程序那么准确(即 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;  

}

干杯!

最佳答案

通常,根据设置和设备硬件,可以通过 3 种方式进行地理定位:

  • 蜂窝 radio
  • 无线网络映射
  • 全局定位系统

-desiredAccuracy 属性设置应打开这三种模式中的哪一种。另一方面,您需要最新响应的最准确度是。首先,您将获得 radio (仅适用于蜂窝设备),如果 WiFI 已打开并且蜂窝数据也已打开,您将获得 WiFi 地理定位,通常在 +- 100m 左右,并且在 GPS 之后很多(如果可用)。 GPS的延迟是由于卫星搜索和电池优化两个原因造成的。对于运行,我建议您根据需要使用kCLLocationAccuracyBestForNavigation,一旦 GPS 发挥作用,您应该会获得接近 +-10m 的值。
另一件事是将 -distanceFilter 设置为 5 米,如果 CoreLocation Manager 获得增量 >= 5 米的新测量值,它将调用委托(delegate)方法。
如果您想排除水平精度大于某个值的位置,只需添加另一个逻辑条件即可。
我建议您也阅读这些答案 link

关于ios - 通过 GPS 提高测量距离的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17251657/

相关文章:

ios - 无法让 MapView 放大当前位置 - SWIFT

ios - 我可以安全地从 iOS 7 调用 iOS 8 选择器吗?

objective-c - 如何对包含嵌套 JSON 字符串的 NSSArray 进行排序?

javascript - 如何知道用户的地理位置是否接近某个位置?

ios - 如果托管的iOS应用没有位置权限,WebView页面能否获取位置?

html - Web Worker 中的传感器读取

安卓- eclipse : display google maps using coordinates obtained using gps

ios - plist的最大存储容量是多少?

ios - 在 iTunesConnect 上的何处提交 Apple Watch 应用程序

iPhone sdk工具提示