2012-02-06 3 views
2
CLLocaitonManager와 함께 재생하는 동안 정말 이상한 상황에 달렸다

... 내가 10.0 미터 반경 지역과 추적 영역을 사용하고CLLocationManager didEnterRegion 잘못 통지

manager = [[CLLocationManager alloc] init]; 
[manager setDistanceFilter:kCLDistanceFilterNone]; 
[manager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters]; 
manager.delegate = self; 

...

[manager startMonitoringForRegion:region]; 

내 정의 된 지역은 서로 아주 가깝지만 50-100 미터보다 가깝지 않습니다 ... iOS (5.0) 시뮬레이터에서 애플 리케이션을 테스트 할 때 (Apple에 위치를 설정하고 내 사용자 위치로 돌아가서) 동시에 여러 지역에 대한 알림 서로 ... 나는 또한 내가 내 현재 위치에서 200m 떨어져 예를 들면있는 지역에 대한 알림을받을 수 있음을 감지 영역의 위치와 내 현재 위치 사이의 거리 ...

-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region 
{ 
CLLocation *regionLocation = [[CLLocation alloc] initWithLatitude:region.center.latitude longitude:region.center.longitude]; 

NSLog(@"didEnterRegion: %@ %f", region.identifier, [regionLocation distanceFromLocation:mapView.userLocation.location]); 

[self notifyUserDidEnterRegion:region]; 
} 

문제입니다 확인 해요 ... 그리고 나는 거의 같은시기에 거의 통보를받지 못했습니다 ...

어떤 제안이 있습니까? 아니면 더 자세한 정보를 제공해야합니까?

답변

1

영역 모니터링은 이에 국한되지 않습니다. 유감스럽게도 미터 범위에서 정밀도를 얻을 수는 없지만 iOS5에서 약 200m의 범위에서 개선되었지만 셀 타워 삼각 측량 및 Wi-Fi 스포트를 기반으로하기 때문에 많은 요인에 따라 달라집니다. 내가 정확도를 높이기 위해 찾은 유일한 방법은 정확도를 바꾸는 반면 목표물에 가까이 다가 가면서 다시 등록 할 때 정확도를 변경하는 것입니다. GPS에 대한 멀티 태스킹을 활성화해야합니다. 그러나 알고리즘을 잘 구현한다면 그렇게 소비하지 않을 것입니다 많은 배터리. 호프가 도움이 되었으면 좋겠다. Andrea

+0

Ok ... 나는이 물건이 어떤 상황에서는 까다로울 수 있다는 것을 이해한다. 그러나 나는 아직도 app가 이미 3 개 장소에 대한 알림을받는 이유를 얻지 못한다. 나는 하나로부터 5m 떨어져 있다는 것을 알고있다. 다른 하나로부터 100m 떨어져있다. 그리고 마지막 하나로부터 200m 떨어진 곳에있다. 논리적으로 그것은 단지 이해가 가지 않는다. ... –

+0

나는 네가 그것에 대해 실망했다는 것을 이해한다. 내가 처음 발견 한 것도 사실이다. 이유는 귀하의 장소가 약 400 미터의 거리에 있기 때문일 수 있습니다. 정확도가 200m 이상이고 위치 모니터링에있는 경우 해당 범위 내의 모든 것이 트리거됩니다. 즉, 지역 모니터링을 시작할 때 제공하는 정확도가 무시됩니다. – Andrea