2013-08-05 4 views
1

나는 매 0.1 초 후 위치를 업데이트하는 코드를 다음 사용하고 -계산 정확한 속도 사용하여 GPS

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CLController = [[CoreLocationController alloc] init]; 
    CLController.delegate = self; 


// set auto update timer 
    currentTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self 
                selector:@selector(updatestart) userInfo:nil repeats:YES]; 

} 

-(void)updatestart 
{ 

     [CLController.locMgr startUpdatingLocation]; 
} 

그리고 내가 사용 내가 미터에 속도를 얻고있다

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    [locMgr stopUpdatingLocation]; 

NSLog(@"%f",newLocation.speed); 
} 

을 속도를 계산하기 위해 노력하고 있어요/초이지만 시간이 지나면 프로세스가 느려지고 여행을 멈추더라도 속도가 계산됩니다.

내가 원하는 것은 정확한 속도를 얻고 속도가 12km/hr 이상이면 경고를 표시하는 것입니다.

동일한 방법을 찾을 수있는 다른 방법이 있습니까?

감사합니다.

+0

측정을 계속하지 않으면 어떻게 움직 였는지, 다시 시작했는지 어떻게 알 수 있습니까? 0m/s는 12m/s만큼이나 유효한 속도 측정입니다. – Caleb

답변

3

이렇게 위치 관리자를 시작하고 중지하는 것은 방법이 아닙니다. 더 많은 위치 정보를 제공하도록 강요 할 수는 없습니다. 계속 실행하고 시간 경과에 따라 위치 업데이트를 평균화하십시오. 최상의 정확성을 얻으려면 위치 관리자의 desiredAccuracykCLLocationAccuracyBestForNavigation을 사용하십시오.

+0

강제로 시작하여 위치 업데이트를 중지하지 않으면 업데이트 된 위치가 5 번만 표시되고 이후에는 중지됩니다. – Rohan

+0

지금 큰 일을하고 있습니다. 하지만 내가 직면하고있는 문제는 2-3 초의 지연 후에 내 속도를 업데이트한다는 것입니다. 또한 나는 위치를 가져 오기 위해 GPS를 사용하고 있다고 언급하고 싶다. 내가 완벽하게 할 수있는 일이 있니? – Rohan

+0

당신은'location'의'speed' 속성을 사용해 볼 수도 있습니다. 그러나 그것이 더 정확할 지 확신 할 수 없습니다. 정확하게 측정하기 전에 GPS가 수정 될 때까지 기다려야합니다. –