2014-04-29 6 views
0

위도/경도 좌표를 저장하기 위해 코어 위치를 사용하고 있습니다. viewDidLoad에 다음 코드가 있습니다.LocationManager 일치하지 않음

self.locationManager = [[CLLocationManager alloc] init]; 
    self.locationManager.delegate = self; 
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    self.locationManager.distanceFilter = kCLDistanceFilterNone; 
    self.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; 
    [self.locationManager startUpdatingLocation]; 

여기 내 위임 방법입니다.

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { 
    [self.locationManager stopUpdatingLocation]; 
    CLLocation* loc = [locations lastObject]; // locations is guaranteed to have at least one object 
    float latitude = loc.coordinate.latitude; 
    float longitude = loc.coordinate.longitude; 
    self.lat = [NSString stringWithFormat:@"%.8f",latitude]; 
    self.longString = [NSString stringWithFormat:@"%.8f",longitude]; 
} 

나는 GPS를 사용하여 이러한 좌표를 추적하고 있으며 일관성이없는 것처럼 보입니다. 앱을 실행하면 위치 서비스 아이콘이 자주 표시되지 않습니다. 그러나 내 Wi-Fi를 전환하면 작동 할 것입니다. 또는지도 앱을 열고 현재 위치를 얻으라는 메시지를 표시 한 다음 내 앱으로 전환하면 작동합니다. 가끔은 상관없이 작동합니다. 위치 서비스 아이콘이 표시되지 않으면 위도/경도 값이 null입니다. 어떤 아이디어? 미리 감사드립니다!

답변

2

첫 번째 업데이트가 도착하면 위치 업데이트가 즉시 중지됩니다. 이것은 전등 스위치를 너무 빠르게 켜고 끄는 것과 같습니다. 전구가 빛나기 시작할 시간이 없습니다. 모든 센서가 워밍업되고 적절한 픽스, 특히 GPS를 얻는 데는 시간과 업데이트가 필요합니다. 실제로 위치가있을 때까지 도착할 수 있도록 충분한 업데이트를 허용해야합니다. 정확성을 확인하여 정확한 위치인지 확인해야합니다.

+1

좋은 위치 값을 얻기에 충분히 오래 있거나 다른 적절한 시간이 지나면 시간 제한을 유지하는 방법을 보여주는 코드는 다음과 같습니다. https://github.com/mattneub/Programming-iOS-Book-Examples /blob/master/bk2ch22p773location/ch35p1032location/ViewController.m – matt

+0

음 ... 그 코드를 구현 한 후에도 여전히 동일한 문제가 있습니다. 또한, "이것은 너무 오래 걸립니다"NSlog가 나타나지 않아 대표자에게 전달되는지 확실하지 않습니다. 거의 마치 IMAP을 통해 GPS를 작동시켜야 작동하는 것처럼 보입니다. – user2402616

+1

내 예제는 다운로드가 가능하며 완전한 작업 프로젝트입니다. 그대로 사용해보십시오. – matt