2011-01-13 7 views
0

내 app의지도에 currentLocation의 horizontalAccuracy를 표시해야합니다. 이렇게하려면 viewDidLoad()에 코드 줄을 넣으십시오. (_currentLocation는 CLLocationManager의 위치입니다.)Iphone CLLocationManager horizontalAccuracy 업데이트. 언제? 어떻게 알 수 있습니까?

label4Accuracy.text = [NSString stringWithFormat:@"Accuracy: %.fm", _currentLocation.horizontalAccuracy]; 

그리고 디스플레이의 정확성.

문제는 정확도가 변하지 않는다는 것입니다. horizontalAccuracy는 우리가 충분히 기다릴 때 정확도를 변경합니다 (항상 그래도되는 것은 아닙니다).

내 앱이 정확성을 변경하고지도에 실시간으로 표시한다는 점을 앱에 허용하고 싶습니다.

나는 CLLocationManager 근처의 어딘가에 메소드가있을 것으로 예상했다. - (CLLocationAccuracy *) horizontalAccuracyUpdated() :

하지만 없습니다. 그래서 내 질문에 어디에 실제 장치의 현재 정확도에 따라 변경 currentLocation horizontalAccuracy 표시하려면 위의 코드 줄을 넣어야합니까?

답변

0

자신의 CLLocationManager 인스턴스를 사용하고 있는지 또는 MKMapView에서 현재 위치를 가져오고 있는지 여부는 궁금합니다.

당신은 단지 MKMapView를 사용하는 경우,지도보기 방법 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation는 사용자의 위치를 ​​업데이트 할 때마다에 위임 호출을 만들려고하고 통과 userLocation 변수가 정확성을 제공하는 .horizontalAccuracy 매개 변수가됩니다 미터 단위.

그래서보기 컨트롤러를지도보기의 위임자로 설정하고 해당 방법을 구현하고 업데이트가 있는지 관찰하십시오.

실제로 CLLocationManager를 사용하는 경우 대리자 메서드가 - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 인 경우를 제외하고는 마찬가지입니다.

+0

감사합니다. 사용자가 이동하지 않으면 어떻게됩니까? (저는 CLLocationManager를 가지고 있습니다. .h, CLLocationManager * _locationManager, 그리고 .m, _currentLocation = _locationManager.location;) – bicbac

+0

아, 실제로 저는 위임 메소드를 보려고하고있었습니다. 여전히 '사용자가 움직이지 않는다면 어떨까요?'라는 질문을해야합니다. 그것은 여전히 ​​정확도를 업데이트합니까? – bicbac

+0

didUpdateToLocation 메서드는 내가 필요한 것을 정확하게 처리합니다. 감사. – bicbac

관련 문제