2010-06-22 13 views
0

如何刪除這是由CLLocationManager以及如何發送,以增加其accuracy.Every時我啓動它給了我緩存數據和一些再寄一次更新後,它的應用已經看到幾個線程,但我緩存數據我無法得到一個具體的解決方案。任何人都可以提供我的代碼? 我使用下面的方法來獲取位置數據....CLLoacationManager類歸國緩存數據

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
     fromLocation:(CLLocation *)oldLocation 

我已經設置委託和準確性這裏.....

- (void)viewDidLoad { 
[super viewDidLoad]; 
bestEffortAtLocation = nil; 
latLocationArray = [[NSMutableArray alloc]init]; 
longLocationArray = [[NSMutableArray alloc]init]; 
locationManager =[[CLLocationManager alloc]init]; 
locationManager.delegate = self; 
locationManager.distanceFilter = kCLDistanceFilterNone; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
[locationManager startUpdatingLocation]; 

}

也可以我使用CLLocationManager來計算人的旅行距離?

回答

1

似乎有不被轉儲緩存數據的方式。文檔建議使用CLLocation對象的timestamp屬性來確定數據的最近時間,這就是我所做的。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ 
    //wait until we get a recent location, no more than 2 minutes old 
    if([newLocation.timestamp timeIntervalSinceNow] <= (60 * 2)){ 
     DLog(@"New location:\n\tLat: %f\n\tLon: %f", newLocation.coordinate.latitude, newLocation.coordinate.longitude) 
     //turn off location updates 
     [self.locManager stopUpdatingLocation]; 
     DLog(@"Stopping Location Updates"); 
     //Do stuff 
    } 
} 

在我的測試中,我沒有必要等一兩秒鐘才能得到新數據。

關於你的第二點,你可以有你加入,只要你得到一個位置更新的變量。使用CLLocationdistanceFromLocation:方法可以很容易地獲得更新之間的距離。

+0

THX paxswill ....但我仍然得到緩存值 – Siddharth 2010-06-22 13:24:30

0

相反的distanceFilter設置爲kCLDistanceFilterNone

即locationManager.distanceFilter = kCLDistanceFilterNone;

您可能會給distanceFilter一些值並檢查

例如, locationManager.distanceFilter = 0.5f;

,並計算長途旅行,你必須實現didUpdateToLocation:fromLocation:

,你必須找到新的緯度和經度

最後 CLLocationObject = newLocation;

CLLocationDistance yourdistance = [newLocation getDistanceFrom:CLLocationObject]; NSString * distance = [[NSString alloc] initWithFormat:@「%gm」,yourdistance];

的NSLog(@ 「你有旅行=%@」,距離);

+0

我已經使用distanceFilter的值= 1.0仍是在更新位置時iPhone仍然。 – Siddharth 2010-06-22 16:39:30

+0

你測試iPhone設備上的WiFi或通過任何載體 – raaz 2010-06-22 16:54:50

+0

嗨razz ............其實我已經在iPad(設備)測試應用程序.....! – Siddharth 2010-06-23 06:33:45