【问题标题】:Location Manager update frequency, iphone位置管理器更新频率,iphone
【发布时间】:2011-11-15 03:40:28
【问题描述】:

我有一个名为“myLocation”的 CLLocation 管理器。

myLocation = [[CLLocationManager alloc] init];
    myLocation.desiredAccuracy = kCLLocationAccuracyBestForNavigation ;
    myLocation.distanceFilter = 10 ;
    myLocation.delegate=self;



    locationEnabledBool = [CLLocationManager locationServicesEnabled];



    if (locationEnabledBool ==NO || ( [CLLocationManager  authorizationStatus] == kCLAuthorizationStatusDenied)) {

    //  LocationText.text = @"Location Service Disabled ";
        UIAlertView *locationAlert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled" 
                                                        message:@"To re-enable, please go to Settings and turn on Location Service for this app." 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK" 
                                              otherButtonTitles:nil];
        [locationAlert show];
        [locationAlert release];

    }

        [myLocation startUpdatingLocation];

和位置更新功能是

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

NSLog(@"old location is %f, %f ", oldLocation.coordinate.latitude, oldLocation.coordinate.longitude);
NSLog(@"new location is %f,%f",newLocation.coordinate.latitude, newLocation.coordinate.longitude );
}

有没有办法找到位置管理器更新的频率,是否可以增加或减少?

【问题讨论】:

  • 位置管理器中没有这样的选项....只要检测到位置变化,就会调用代理。但是你可以改变精度......也就是说每十米变化或100米或1公里......等等是否应该改变......
  • 但如果设备静止,位置更新也会发生。
  • 您的意思是即使设备静止,您也可以获取该位置的坐标....?
  • 是的。当位置更新发生且设备静止时,当前位置更改的坐标确实会发生变化。这个变化很小(只有小数点后 5 位变化)
  • 它多久改变一次?你能显示一些你的代码吗?

标签: iphone cllocationmanager


【解决方案1】:

为了检测最轻微的动作,您需要设置

myLocation.distanceFilter = kCLDistanceFilterNone ; 

但是,请记住,让位置管理器生成更新,即使是最轻微的动作也会导致大量电池消耗。

【讨论】:

  • distanceFilter 是米值,可以保持 myLocation.distanceFilter = 1000;
【解决方案2】:

您的位置更新仅在您调用方法[locationManager startUpdatingLocation] 时开始。

您可以使用NSTimer 控制更新频率。每当您需要位置更新时,定期调用startUpdatingLocation 方法,然后立即调用stopUpdatingLocation 方法。下次您将仅按照您在NSTimer 中设置的时间间隔获取位置更新。

【讨论】:

  • 感谢您的耐心帮助我。你的回答肯定有帮助。下次我会更清楚地问问题。
  • @amol-subhedar 我需要你的帮助......你能帮帮我吗? :)
  • 当然......你需要什么帮助?
  • 我的场景是这样的....我需要 gps 坐标来不断变化....即使是静止的...它应该检测到房间内最轻微的运动变化..你怎么样能够实现 tat...我尝试了您的代码..但它对我来说并没有改变....希望你能得到我......与你问的完全相反...... :)跨度>
  • booleanBoy - 使用加速度计发现诸如此类的细微变化
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多