Таймер регистрации истек, но клиент все еще регистрируется! - Ошибка геокодирования Google - PullRequest
1 голос
/ 15 сентября 2011

Я пытаюсь использовать эти две строки, чтобы получить широту / длинную информацию при вводе адреса.

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", theAddress];

NSString *locationString = [[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]] autorelease];

Странно, что иногда я получаю широту и длинную информацию так быстро, как за 5 секунда в других случаях приложение зависает примерно на 5 минут, а затем регистрирует ошибку, сообщающую: «Таймер регистрации истек, но клиент все еще регистрируется!»

Он также дает информацию о местоположении (то есть строка результата с лат /длинная информация) как ноль.

Я пробовал это несколько раз и не мог понять, что заставляет его работать, а что нет.

Кто-нибудь сталкивался с такой же проблемой раньше или любойсовет по этому просьбе.

Спасибо

1 Ответ

0 голосов
/ 15 сентября 2011

попробуйте ниже код его отлично работает со мной.

CLLocationCoordinate2D coord=[self gettingLatandLonFromAddress:address];

  -(CLLocationCoordinate2D ) gettingLatandLonFromAddress:(NSString *)address
    {
        CLLocationCoordinate2D currentLoc;
        NSString *urlString=[NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv",[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        NSString *locationString=[NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSASCIIStringEncoding error:nil];
        NSArray *listItems = [locationString componentsSeparatedByString:@","];
        double latitude=0.0;
        double longitude=0.0;
        if([listItems count] >=4  && [ [listItems objectAtIndex:0] isEqualToString:@"200"]){
            latitude = [[listItems objectAtIndex:2] doubleValue];
            longitude = [[listItems objectAtIndex:3] doubleValue];
        }
        else{       
            NSLog(@"Error");        
        }

        currentLoc.latitude=latitude;
        currentLoc.longitude=longitude;
        return currentLoc;
    }
...