2014-01-17 2 views
1

Привет Я пытаюсь получить имя города и штата с помощью CLGeocoder. Однако, placemark.addressDictionary возвращается мне:CLGeocoder возвращает нулевые результаты для города и штата при использовании текущих данных о местоположении

{ FormattedAddressLines = ( "Южная Атлантика" ); Название = "Южно-Атлантический океан"; Ocean = "South Atlantic Ocean"; }

и является метка: Южная Атлантика, Южная Атлантика @ < -42.60533670, -21,93128480> +/- 100.00m, область CLCircularRegion (идентификатор:»< -41,51023865, -31,60774370> радиус 4958095,65' , центр : < -41.51023865, -31.60774370>, радиус: 4958095.65m)

Кроме того, NSLog из [метки метки] и [отметки AdministrativeArea] показывает как ноль.

попытался также добавлять рамки ABAdressBookUI, ABAdressBook и получить данные, как:

NSString * addressDict = ABCreateStringWithAddressDictionary (placemark.addressDictionary, NO); который возвращает объект с пустым описанием.

или пытался: NSString * state = (NSString *) [placemark.addressDictionary objectForKey: kABPersonAddressStateKey]; который предупреждает о несовместимых типах указателей.

Если есть какое-либо возможное решение или если у меня что-то не хватает, сообщите мне.

Мой код, когда текущая кнопка местоположение сливают выглядит следующим образом:

CLLocation * LOC;

loc = [[CLLocation alloc] initWithLatitude:[KLocationManager sharedManager]._locationManager.location.coordinate.latitude longitude:[KLocationManager sharedManager]._locationManager.location.coordinate.longitude]; 

CLGeocoder* geocoder = [[CLGeocoder alloc] init]; 

[geocoder reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError *error) { 
    CLPlacemark* placemark = [placemarks objectAtIndex:0]; 
    if (placemark) { 
     NSDictionary* dic = placemark.addressDictionary; 
     NSString* locName = [NSString stringWithFormat:@"%@, %@", [dic objectForKey:@"City"],[dic objectForKey:@"State"]]; 
     CLLocation* loc = placemark.location; 

     self.returnLocationDict = @{@"name":locName, @"location":loc}; 
    } 
}]; 

Что мне здесь не хватает?

ответ

0

Один из способов тиражирования, что вы испытываете, чтобы использовать CLLocation с широтой и долготой 0,0

Я побежал ваш код, используя широту: 37,3318 долгота: -122,0312 (Infinite Loop ..) и он работал, как ожидалось.

Ваш менеджер по местоположению, вероятно, не возвращает то, что вы ожидаете.

Смежные вопросы