我正在使用IOS locationManager来跟踪位置。总体来说,它运行良好,我以每秒1次读数的迭代方式获得距离,速度和秒数。ios位置跟踪。距离,速度,时间不一致
我注意到高层次的一件事是总时间与预期速度的总距离不匹配,总是低。例如,步行1英里可能有约7分钟的相关时间。我会更期待20-30分钟的时间。
从数据看,这些数值看起来都很合理,但长期的总和没有意义。我正在使用BestAccuracy并获取GPS信号,所以我不会想象它会有太大的改变。
有时候会出现一些闪烁的光点。就像100米距离,在5秒窗口,以每小时2英里的速度。有了这些,我假设GPS正在重新定位。但这并不一定意味着其余的100%是正确的。是否应该过滤这些极端?
我在下面的代码显示,每个单独计算,而不是彼此计算。我应该用两个来计算第三个?即时间=距离/速度或类似。
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {
for(int i = 0; i < [locations count]; i++){
CLLocation *newLocation = [locations objectAtIndex:i];
// meters will be set on every item but very first location
CLLocationDistance meters = (oldLocation != nil ? [newLocation distanceFromLocation:oldLocation] : 0);
// seconds since now
NSTimeInterval howRecent = [newLocation.timestamp timeIntervalSinceNow];
// seconds since last event, float level seconds with good precision
double eventDateMilli = [newLocation.timestamp timeIntervalSince1970];
double oldLocationMilli = [oldLocation.timestamp timeIntervalSince1970];
NSTimeInterval secondsBetween = fabs(eventDateMilli - oldLocationMilli);
currentSpeed = (newLocation.speed < 0 ? 0 : newLocation.speed);
// we now have meters, currentSpeed, secondsBetween
// ie, distance, speed, time
// save to network, etc, for analysis and summation
oldLocation = newLocation;
}
}
位置服务绝对在后台运行。我有一个数据库完整的数据,我正在看,并试图了解结果。 – Miro