【问题标题】:CLLocation manager Gives me old positionCLLocation 经理给我旧职位
【发布时间】:2009-12-14 07:54:47
【问题描述】:

我使用 CLLoction 管理器来获取位置。但是当我启动我的位置时,它会为我提供以前存储在设备中的旧位置。我想为此重置位置,我在第一次启动应用程序时使用了标志,我使用了新位置和调用 stopupdateinglocation 和 startupdatinglocation 方法。但是 oldlocation 没有改变它显示旧位置。

【问题讨论】:

    标签: iphone cllocationmanager


    【解决方案1】:

    每个CLLocation 都有一个timestamp 属性,您可以使用它来过滤所有对于您的使用而言太旧的位置更新。

    - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
    {
        NSTimeInterval age = [newLocation.timestamp timeIntervalSinceNow];
        if(age < SOME_CONSTANT_IN_SECONDS)
        {
            //Use location
        }
    }
    

    【讨论】:

    • 我无法在上述方法的快速代码中获取旧位置。有什么方法可以获取旧位置吗?
    【解决方案2】:

    您无法清除旧位置,但您可以检查 Horizo​​ntalAccuracy 以了解这是一个好的位置(当前)还是旧的和不相关的位置。

    【讨论】:

    • oldlocation 意味着如果我启动我的应用程序并且 GPS 获得协调,并且在步行 5 公里后我再次启动我的应用程序并且 GPS oldlocation 是以前的位置。我在我的应用程序中计算距离,它显示 5KM 移动,但我启动我的应用程序并没有移动。
    猜你喜欢
    • 2018-11-23
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多