Нахождение лат и долгое возвращение 0,0 - PullRequest
1 голос
/ 20 декабря 2011

Я использую Google, чтобы взять адрес, чтобы получить его lat и long.Я пробегаю около 60-65 адресов.Каждый раз, хотя я буду случайным образом получать 5 или 6, которые возвращают 0,0 координатную пару.

Каждый раз, когда индексы, которые терпят неудачу, отличаются, поэтому я уверен, что это не проблема адреса.

Вот код, который я использую для возврата значений lat и long

Возможно ли, что я вызываю этот метод из цикла for?Может быть, такой быстрый и быстрый вызов иногда может привести к скачку?

-(CLLocationCoordinate2D)addressLocation:(NSString*)_address city:(NSString*)_city state:(NSString*)_state {
    NSString *temp = [NSString stringWithFormat:@"%@, %@, %@", _address, _city, _state];
    NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", [temp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    NSError* error = nil;
    NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString ] encoding:NSASCIIStringEncoding error:&error];

    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: %@", [error description]);;
    }

    CLLocationCoordinate2D location;
    location.latitude = latitude;
    location.longitude = longitude;

    return location;
}

РЕДАКТИРОВАТЬ

Я нашел способ обойтимомент, если кто-то еще, если возникли проблемы с этим.

Я просматриваю свой список, когда нахожу широту и длину каждого адреса.

Если из запроса Google возвращается ошибка, я добавляю этот адрес в массив хранения. Это означает, что я прошел ограничение скорости, указанное Firoze.

После того, как начальный прогон завершен, я прохожу через массив хранения и нахожу местоположения каждого адреса.

Я уверен, что есть намного более чистая реализация этого, но для любого, кто не в состоянии получить бизнес-лицензию, это взломанный способ.

Надеюсь, это поможет, Кори

1 Ответ

2 голосов
/ 20 декабря 2011

Вы должны проверить, если locationString равен нулю. И если так, посмотрите на ошибку. Я предполагаю, что ваши звонки ограничены по тарифам.

Возможно, вам следует ознакомиться с условиями предоставления услуг Google для этой службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...