2009-12-14 25 views
1

我使用CLLoction管理器來獲取location.but當我開始我的位置,然後它給了我oldLocation這是以前存儲在設備中。我想重置這個我第一次啓動使用標誌的位置應用程序我使用newlocation並調用stopupdateinglocation和startupdatinglocation方法。但oldlocation沒有改變它顯示舊的位置。CLLocation manager給我舊的位置

回答

6

每個CLLocation都有一個timestamp屬性,您可以使用它來過濾所有位置更新,這些位置更新對於您的使用來說太舊了。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    NSTimeInterval age = [newLocation.timestamp timeIntervalSinceNow]; 
    if(age < SOME_CONSTANT_IN_SECONDS) 
    { 
     //Use location 
    } 
} 
+0

我無法在上述方法的swift代碼中獲取舊位置。有什麼方法可以獲得舊的位置嗎? –

0

你不能清除舊的位置,但你可以檢查horizo​​ntalAccuracy,知道這是一個很好的位置(當前)還是舊的和不相關的。

+0

oldlocation意思是說,如果我開始我的應用程序和GPS獲取協調和步行5KM後,我再次開始我的應用程序,GPS舊位置是以前的位置。我計算距離我的應用程序顯示5KM移動,但我開始我的應用程序,並沒有移動。 – user226284

+1

使用時間戳。 – 2009-12-14 08:27:45