2011-09-15 31 views
1

使用核心位置iphone api來獲取一些位置。cllocationmanager - cllocation響應對象時間戳總是少於一秒鐘,爲什麼?

它工作正常,但有一件事困擾我。那些我回來,我計算出它們的「年齡」使用下面的代碼:

NSDate *eventDate = newLocation.timestamp; 
NSTimeInterval locationAge = -[eventDate timeIntervalSinceNow]; 

我然後使用打印年齡:

NSLog(@"didupdateToLocation! lat: %f, lon: %f, accuracy: %f, age: %f", newLocation.coordinate.latitude, newLocation.coordinate.longitude, newLocation.horizontalAccuracy, locationAge); 

在我的輸出,年齡永遠小於一秒。日誌示例:

2011-09-15 14:31:40.417 Nuba[1393:707] didupdateToLocation! lat: 59.340484, lon: 18.052089, accuracy: 816.373281, age: 0.055586 
2011-09-15 14:31:40.495 Nuba[1393:707] didupdateToLocation! lat: 59.340484, lon: 18.052089, accuracy: 816.373281, age: 0.125578 
2011-09-15 14:31:40.565 Nuba[1393:707] didupdateToLocation! lat: 59.340477, lon: 18.051996, accuracy: 999.848989, age: 0.019127 

這是爲什麼?無疑,這是第一次,手機不僅僅是「發生」,每次都有不到一秒鐘的舊位置?

我在計算年齡時做錯了什麼?

回答

1

看起來你正在計算正確。如果位置服務已被後臺應用程序使用,或者您擁有移動服務,那麼當您啓動應用程序時,您可以輕鬆獲得位置信息。

您不顯示準確度,因此可能(有可能)您的第一個位置的準確度低(即:> 1000m水平誤差)位置,該位置通過蜂窩塔三角測量計算得出,該位置在手機處於蜂窩網絡時始終可用。

+0

我只是覺得奇怪的是,年齡總是*那個短的年齡。我現在有幾百個樣本大小,幾乎從不超過一秒。在Android上,您會收到大量較舊的響應。是的,我打印精確度也有點下降:)有時候它會變得更好,斯德哥爾摩的三角塔通常精度爲600-900米。但除非gps掛鉤或我在wifi上,否則三角測量通常不會變好。 – Mathias

相關問題