2010-08-12 7 views
0

문서에서 대략적인 위치를 얻은 다음 더 세밀하고 정밀한 정밀도로 업데이트를 계속한다고합니다. 나는일회용 위치를 특정 정확도로 어떻게 얻습니까?

[locManager startUpdatingLocation]; 

을하는 버튼이 다음 나는

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

을 구현하고 somwhere 방향을 얻을 수 있습니다. 웬일인지 내가 어떤 곳까지 운전할 때 위치를 업데이트하지 않는다. 나는 이것이 "일반적인 위치"를 얻었고 정확한 읽기를 얻을 충분한 시간이 없기 때문에 이것이라고 생각할 것입니다. 나도있다

locManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; 

어떤 생각? 단지 한 번에 정확한 판독 값이 필요합니다. 엉망진창. 감사.

답변

2

빠른 해킹 솔루션 :

if (newLocation.horizontalAccuracy > 2*locManager.desiredAccuracy) { 
    return; 
} 

더 나은 솔루션 정확도가 향상 멈출 때까지 기다려야 될 수는 지난 5 업데이트 정도에 대해 평균.

+0

그래서 didUpdateLocation 메서드에 카운터를 놓고 중지하기 전에 5 번 간다고 말하고 있습니까? 일할 수도 있습니다. 시도해 볼게. – marty

+0

아니요, horizontalAccuracy 값 5 개를 비교하여 더 좋아지지 않을 때까지 기다리십시오. 좋은 GPS 수신을 제공한다면 카운터를 부착해야합니다 (그렇지 않을 수도 있고 그 다음에해야 할 일?). 그러나 5는 너무 적을 수 있습니다. –

관련 문제