Iphone GPS дает неправильное местоположение - PullRequest
0 голосов
/ 06 июля 2011

Я хочу показать текущее местоположение пользователя с помощью функции iphone gps, но проблема в том, что он дает неправильное местоположение. Когда я опускаю булавку на карту, тогда она сбрасывает булавку в точном положении, но когда я пытаюсь увидеть местоположение в тексте, тогда это дает неточное местоположение с погрешностью приблизительно от 500 до 800 метров. Я использовал обратное геокодирование и Google API, но все они дают одно и то же местоположение , Пожалуйста, скажите мне, почему это происходит, и как я могу показать точное местоположение пользователя? Мой код:

cllocationmanager *locationManager = [[CLLocationManager alloc] init];
        locationManager.delegate = self;
        locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
        locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 100 m
        [locationManager startUpdatingLocation];


    }

    }



- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation

{


 CLLocationCoordinate2D here =  newLocation.coordinate;
    NSLog(@"%f  %f ", here.latitude, here.longitude);


    MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc] initWithCoordinate:here];
    [geocoder setDelegate:self];
    [geocoder start];

        }



- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{



}



- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
    NSLog(@"The geocoder has returned: %@", [placemark addressDictionary]);



    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"%@",[placemark addressDictionary]] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alertView show];
    [alertView release];


}

1 Ответ

2 голосов
/ 06 июля 2011

Быстрое предположение: вы проверяли горизонтальную точность CLLocation?Довольно часто первый ответ, который я получаю, является очень неточным, а затем улучшаются последующие вызовы.

Редактировать: @pankaj Прежде всего, вы можете подтвердить, что это проблема точности.Если это проблема, которую я предлагаю, то горизонтальная точность CLLocation будет большой.Если нет, то вы можете игнорировать мой ответ и эти комментарии.Однако, если горизонтальная точность является большой ошибкой, вам придется подождать лучшей блокировки.Есть два способа сделать это:

  1. Подождите некоторое время (секунду или две) и посмотрите, получите ли вы лучшую блокировку.
  2. Начните запрашивать местоположение намного раньшенапример, когда приложение запускается или когда запускается UIViewController, для которого требуется местоположение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...