2012-12-21 34 views
0

我正在做一個應用程序。在那我使用CLLOcationmanager像下面。cllocationmanger類位置更新

[self performSelectorOnMainThread:@selector(findlocation:) withObject:nil waitUntilDone:NO]; 

-(void)findlocation:(id)sender 
{ 
//NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init]; 
locationManager=[[CLLocationManager alloc]init]; 
locationManager.delegate=self; 
locationManager.distanceFilter=0.3f; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
[locationManager startUpdatingLocation]; 

} 

    - (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
     fromLocation:(CLLocation *)oldLocation 
{ 
    [email protected]"%@",newlocation.timestamp]; 
} 

我想更新每0.3米的位置。但是這個委託方法並沒有爲那個距離被解僱。我的剩餘流程正在運作,並在[self performSelectorOnMainThread:@selector(findlocation:) withObject:nil waitUntilDone:NO];之後。

+0

你能澄清什麼是你的問題嗎?如果是更新每一個30CM,我想你回答吧你自己 - 沒有辦法獲得這樣的細粒度位置數據。 –

+0

我的問題是,位置沒有更新每30釐米。 –

回答

0

我認爲這可能對你有所幫助。您需要使用經度和緯度調整距離

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation { 
    MKCoordinateRegion region = { { 0.0f, 0.0f }, { 0.0f, 0.0f } }; 
    region.center = newLocation.coordinate; 
    region.span.longitudeDelta = 0.15f; 
    region.span.latitudeDelta = 0.15f; 
    [self.mapView setRegion:region animated:YES]; 
} 

上面的代碼使用0.15度(0.15 * 111公里)。

或嘗試用你distanceFilter」。採用distanceFilter可以篩選出那種外來的運動。