Привет, я пытаюсь получить название города и штата с помощью CLGeocoder. Однако placemark.addressDictionary возвращает мне:
{FormattedAddressLines = ("Южный Атлантический океан"); Name = "Южный Атлантический океан"; Ocean = "Южный Атлантический океан"; }
и метка: южная часть Атлантического океана, южная часть Атлантического океана @ ‹-42.60533670, -21.93128480> +/- 100,00 м, регион CLCircularRegion (идентификатор: '‹ - 41.51023865, -31.60774370> радиус 4958095.65', центр: ‹- 41.51023865, -31.60774370 >, радиус: 4958095.65м)
Кроме того, в NSLog [местонахождение метки] и [административная область метки] оба значения равны нулю.
Также попытался добавить 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};
}
}];
Что мне здесь не хватает?