我有一个现在很好用的 GPS 追踪器,除非 iPhone 失去 GPS 连接。当连接丢失时,轨道会在随机位置生成一个或多个点,如下图所示:
(来源:alluneed.it)
我可以通过哪种方式丢弃这些不良值?我考虑过这样做:在保存数据之前,我可以对当前经纬度的整数值求和,并与旧经纬度的整数值进行比较;如果差异大于某个值,我会丢弃我的数据。
这会是一件好事吗?还有其他一些不错的技巧可以做到这一点吗?
我有一个现在很好用的 GPS 追踪器,除非 iPhone 失去 GPS 连接。当连接丢失时,轨道会在随机位置生成一个或多个点,如下图所示:
(来源:alluneed.it)
我可以通过哪种方式丢弃这些不良值?我考虑过这样做:在保存数据之前,我可以对当前经纬度的整数值求和,并与旧经纬度的整数值进行比较;如果差异大于某个值,我会丢弃我的数据。
这会是一件好事吗?还有其他一些不错的技巧可以做到这一点吗?
也许我发现了我的错:
在
locationManager:didFailWithError:
当我收到 kCLErrorNetwork 或除 kCLErrorDenied 之外的任何其他错误时,我会执行 stopupdatinglocation 和 startupdatinglocation。
现在该应用程序运行良好,我明天进行其他测试并在此处发布结果。
尝试在 GPS 没有信号时检查位置更新的时间(如果我没记错的话,时间在位置参数中提供)。
也许时间是恒定的,这样你就可以检查当前时间与定位时间之间的差异是否大于某个值,以了解该位置是否真实。
您可以在使用前检查点。如果准确度水平突然上升然后又下降,你可以扔掉那一点。如果时间戳显示用户在计算与任何先前点的时间距离后突然以超音速移动以到达新位置,则该点可能是虚假的。等等