我正在使用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