IOS:反向地理编码省

时间:2012-06-22 09:05:27

标签: ios xcode reverse-geocoding

我有这个代码来反转地理编码并且它可以正常工作

- (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);

}

工作正常,但我无法拥有“省”......获得省份的方式是什么?

2 个答案:

答案 0 :(得分: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中声明。

不幸的是省内没有一个。

答案 1 :(得分:0)

在我的代码中,我有以下方法来获取地址和地名。 省是州或行政区域

[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-Details https://github.com/robert-yi-jones/Device-Details