2012-06-22 2 views
0

у меня есть этот код обратного геокодирования и работатьIOS: обратный geocodign провинции

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark 
{ 
    MKPlacemark * myPlacemark = placemark; 
    // with the placemark you can now retrieve the city name 
    NSString *region = [myPlacemark.addressDictionary objectForKey:(NSString*) kABPersonAddressStateKey]; 
    NSString *city = [myPlacemark.addressDictionary objectForKey:(NSString*) kABPersonAddressCityKey]; 
    NSString *address = [myPlacemark.addressDictionary objectForKey:(NSString*) kABPersonAddressStreetKey]; 
    NSLog(@"region:%@", region); 
    NSLog(@"city:%@", city); 
    NSLog(@"address:%@", address); 

} 

Он отлично работает, но я не могу иметь «провинцию» ... что способ получить провинцию?

ответ

0

Это все ключи для адреса словаря:

const ABPropertyID kABPersonAddressProperty; 
const CFStringRef kABPersonAddressStreetKey; 
const CFStringRef kABPersonAddressCityKey; 
const CFStringRef kABPersonAddressStateKey; 
const CFStringRef kABPersonAddressZIPKey; 
const CFStringRef kABPersonAddressCountryKey; 
const CFStringRef kABPersonAddressCountryCodeKey; 

Константы
kABPersonAddressProperty
Идентификатор адреса многозначного свойства.
Доступен в iOS 2.0 и более поздних версиях.
Объявление в ABPerson.h.

kABPersonAddressStreetKey
Улица.
Доступен в iOS 2.0 и более поздних версиях.
Объявлено в ABPerson.h.

kABPersonAddressCityKey Город.
Доступен в iOS 2.0 и более поздних версиях.
Объявлено в ABPerson.h.

kABPersonAddressStateKey
Состояние.
Доступен в iOS 2.0 и более поздних версиях.
Объявлено в ABPerson.h.

kABPersonAddressZIPKey
Почтовый индекс.
Доступен в iOS 2.0 и более поздних версиях.
Объявлено в ABPerson.h.

kABPersonAddressCountryKey
Страна.
Доступен в iOS 2.0 и более поздних версиях.
Объявлено в ABPerson.h.

kABPersonAddressCountryCodeKey
Код страны. Поддерживаемые значения перечислены в «Кодах стран».
Доступно в iOS 2.0 и позже.
Объявлено в ABPerson.h.

К сожалению, для провинции нет ни одного.

+0

и нет способа получить провинцию? – CrazyDev

+0

Наверное, нет. Я думаю, что провинция является специфической для конкретной страны территорией только для некоторых стран, и поэтому она не включена, но ее можно было бы вытащить из государства, но я не уверен, что она там заполняется, дайте ей попробовать ... – graver

0

В моем коде у меня есть следующие способы получить адреса и имена мест. провинция является государство или administrativeArea

[geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { 
     if(placemarks.count){ 

     NSDictionary *dictionary = [[placemarks objectAtIndex:0] addressDictionary]; 
     addressLabel.Text = [dictionary valueForKey:@"Street"]; 
     cityLabel.Text = [dictionary valueForKey:@"City"]; 
     stateLabel.Text = [dictionary valueForKey:@"State"]; 
     zipCodeLabel.Text = [dictionary valueForKey:@"ZIP"]; 
     countryLabel.text = [dictionary valueForKey:@"Country"]; 
     countryCodeLabel.text = [dictionary valueForKey:@"CountryCode"]; 


     placeNameLabel.text = [placemarks[0] name]; 
     addressNumberLabel.text = [placemarks[0] subThoroughfare]; 
     addressLabel.text = [placemarks[0] thoroughfare]; 
     neighborhoodLabel.text = [placemarks[0] subLocality]; 
     cityLabel.text = [placemarks[0] locality]; 
     countyLabel.text = [placemarks[0] subAdministrativeArea]; 
     stateLabel.text = [placemarks[0] administrativeArea]; 
     zipCodeLabel.text = [placemarks[0] postalCode]; 
     countryLabel.text = [placemarks[0] country]; 
     countryCodeLabel.text = [placemarks[0] ISOcountryCode]; 
     inlandWaterLabel.text = [placemarks[0] inlandWater]; 
     oceanLabel.text = [placemarks[0] ocean]; 
    } 
}]; 

Вы можете попробовать мой проект с открытым исходным кодом. Легко получить метки места. Device-Detailshttps://github.com/robert-yi-jones/Device-Details

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