如何解决iPhone CLLocationManager每0.5秒更新一次
| 对于需要根据GPS进行大量计算的应用,我需要每0.5秒获取一次纬度/经度和速度,这样才能非常准确并避免延迟。 我在用:[locationManager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
- locationManager:didUpdatetoLocation:fromLocation:
函数将值存储在3个变量中:newLatitude
,newLongitude
和newSpeed
0.55ѭ对象,每0.5秒调用一次函数。
参见下面的图表,该图表由Excel生成,代表18秒内的纬度值:
我们可以清楚地看到我们每秒都有一次位置更新,而不是期望的每0.5秒更新一次。我在办公室周围进行样品采样,因此速度在0到65 MPH之间变化。因此,当我以50MPH的速度行驶时,应该每0.5s从iPhone获得不同的纬度/经度/速度值,对吗?
如果您对CLLocationManager
物体的精度有所了解,请告诉我如何每0.5秒获取一次位置更新。
谢谢!
解决方法
您无法告诉位置管理器您希望多久更新一次,而只能在它选择给您更新时作出响应。无法确定获取更新的时间,这取决于查找WiFi信号和GPS信号的难易程度。
,
[self.locationManager startUpdatingLocation];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(myTimerFunc) userInfo:nil repeats:YES];
- (void)myTimerFunc
{
CLLocation location = self.locationManager.location;
// do work here //
}
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
// do nothing here //
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。