gpt4 book ai didi

iphone - 使用 CoreLocation 防止零星坐标

转载 作者:行者123 更新时间:2023-11-29 13:39:03 26 4
gpt4 key购买 nike

基本上我正在制作一个应用程序,该应用程序应该记录某人旅行的路径和数据。我在准确性和确定不准确的报告方面遇到了一些麻烦。这是我的 iPhone 记录的路径图像。红线是记录的路径,粉红色是我实际走的路(为巨大的屏幕截图道歉):

Path

我用于记录数据的委托(delegate)如下所示:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (newLocation.horizontalAccuracy < 0) return;
NSTimeInterval locationAge = -[newLocation.timestamp timeIntervalSinceNow];
// The "> 50.0f" is to hopefully throw out inaccurate points
if (locationAge > 5.0 || [newLocation distanceFromLocation:oldLocation] > 50.0f) return;
[[self locationPoints] addObject:newLocation];
[self updateView];
}

我看到的一些建议是使用过滤器来检查数据是否适合投影路径。这是最好的方法吗?

最佳答案

您可以添加对 newLocation.horizo​​ntalAccuracy 的检查:

if ((newLocation.horizontalAccuracy > 0.0) && (newLocation.horizontalAccuracy < 10.0))

或者,对于您的情况:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    if (newLocation.horizontalAccuracy < 0) return;
    NSTimeInterval locationAge = -[newLocation.timestamp timeIntervalSinceNow];
   
    if ((locationAge > 5.0)||(newLocation.horizontalAccuracy < 0.0)||(newLocation.horizontalAccuracy > 10.0)) return;
    [[self locationPoints] addObject:newLocation];
    [self updateView];
}

这个 (locationAge > 5.0) 条件看起来很奇怪。你真的想要吗?如果您将其保留在您的应用程序中,则当设备失去适当的 GPS 信号 >5.0s 时,您的应用程序将停止更新。

还有一件事:您是否记得设置您的 locationManager:

locationManager.desiredAccuracy=kCLLocationAccuracyBest;

您还应该知道这会消耗大量电池电量,但用于测试...

关于iphone - 使用 CoreLocation 防止零星坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9707638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com