IOS Core位置管理器在一个短计时器上

时间:2013-06-12 12:08:52

标签: iphone ios

在我的ios应用程序中,我在计时器上使用核心位置管理器来获取当前位置。该应用程序是可配置的,所以我允许用户将其设置为低至1分钟。因此,即使应用程序在后台,也会每1分钟报告一次gps位置。

我不想对核心位置管理器使用重大更改,而是希望继续使用计时器,因为准确性会更好。

将定时器设置为低至5秒是否有任何可预见的问题?我这样做的原因是获取位置,将其保存在变量中,然后在5秒内再次获取它并将其与距离变量进行比较,然后确定用户是否移动得足够远并报告它是否如此。

2 个答案:

答案 0 :(得分:0)

获取位置取决于查找WiFi信号和GPS信号的难易程度。如果没有信号,你可以设置1分钟或1秒。请在评论Here

中查看

答案 1 :(得分:0)

您正在遵循错误的方法来执行此操作。您需要使用Apple提供的Delegates来实现它。 你正在做什么,是完全错误的,为什么你想在5秒后检查位置,如果它没有从最后一个位置改变。

解决问题的方法:

您需要根据您的要求设置准确度:

kCLLocationAccuracyBestForNavigation
kCLLocationAccuracyBest
kCLLocationAccuracyNearestTenMeters
kCLLocationAccuracyHundredMeters
kCLLocationAccuracyKilometer
kCLLocationAccuracyThreeKilometers

只要位置发生特定变化,您就会获得委托方法的调用:

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

它可以节省电池并提高性能,因为它可以节省不必要的电话,一次又一次地获取位置。