控制位置管理器更新间隔

时间:2011-07-23 21:26:56

标签: location cllocationmanager

有没有办法控制位置管理器的更新间隔?我使用了最近的10米设置来确保准确性,但似乎我的应用程序每秒都会获得一次更新,我认为这种情况经常发生。我想要的是准确度,但不是频率。

感谢。

1 个答案:

答案 0 :(得分:0)

我是用计时器做的:

标题中的

添加:

ServerInterface *serverInterface;
<。>文件中的

- (void)viewDidLoad
{
...
[frequentLocationUpdateTimer invalidate];
frequentLocationUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:30 target:self selector:
               @selector(reEnableLocationTick:) userInfo:nil repeats:YES];
...
}
- (void)reEnableLocationTick:(NSTimer *)theTimer
{
    [locationGetter startUpdates]; //Maybe you have to change this line according to your code
} 

并在你的位置管理员......:

- (void)locationManager:(CLLocationManager *)manage didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    ...

        if (newLocation.horizontalAccuracy < 100)
    {
        [locationManager stopUpdatingLocation];  
    } 
    ...

    // let our delegate know we're done
    [delegate newPhysicalLocation:newLocation];
}

代码在达到最小精度100米后停止更新位置。然后,每隔30秒,一个计时器再次重新启用位置管理器。