ios如何根据经纬度坐标取详细地址
2015-02-03来源:易贤网

以当前手机为例:

获取当前手机地址,再从经纬度转换成详细地址(包括:国家名-国家代码,省,市,街道名,邮政代代码等)。

1:获取当前手机经纬度

reverse geoder class

1:- (void)startedreversegeoderwithlatitude:(double)latitude longitude:(double)longitude{ cllocationcoordinate2d coordinate2d; coordinate2d.longitude = longitude; coordinate2d.latitude = latitude; // if (self.locationinfo == nil) { self.locationinfo = [[[location alloc] init] autorelease]; } self.locationinfo.latitude = latitude; self.locationinfo.longitude = longitude; // mkreversegeocoder *geocoder = [[mkreversegeocoder alloc] initwithcoordinate:coordinate2d]; geocoder.delegate = self; [geocoder start];}#pragma mark -#pragma mark mkreversegeocoderdelegate methods- (void)reversegeocoder:(mkreversegeocoder *)geocoder didfindplacemark:(mkplacemark *)placemark { nslog(@reverse finished...); nslog(@country:%@,placemark.country); nslog(@countrycode:%@,placemark.countrycode); nslog(@locality:%@,placemark.locality); nslog(@sublocality:%@,placemark.sublocality); nslog(@postalcode:%@,placemark.postalcode); nslog(@subthoroughfare:%@,placemark.subthoroughfare); nslog(@thoroughfare:%@,placemark.thoroughfare); nslog(@administrativearea:%@,placemark.administrativearea); self.locationinfo.locationname = [nsstring stringwithformat:@%@ @ @, placemark.country, placemark.administrativearea, placemark.locality, placemark.sublocality, placemark.thoroughfare]; nslog(@administrativearea:%@,self.locationinfo.locationname); [self.target performselector:self.callback withobject:@0]; geocoder = nil;}- (void)reversegeocoder:(mkreversegeocoder *)geocoder didfailwitherror:(nserror *)error { nslog(@error %@ , error); [self.target performselector:self.callback withobject:@1];}

2:获取当前手机经纬度的, 详细地址。

current location class

-(void) startupdatinglocation{ // start the location manager. [[selflocationmanager] startupdatinglocation]; }#pragma mark -#pragma mark location manager/** return a location manager -- create one if necessary. */- (cllocationmanager *)locationmanager { if (locationmanager != nil) { return locationmanager; } locationmanager = [[cllocationmanager alloc] init]; [locationmanager setdesiredaccuracy:kcllocationaccuracynearesttenmeters]; [locationmanager setdelegate:self]; return locationmanager;}/** conditionally enable the add button: if the location manager is generating updates, then enable the button; if the location manager is failing, then disable the button. */- (void)locationmanager:(cllocationmanager *)manager didupdatetolocation:(cllocation *)newlocation fromlocation:(cllocation *)oldlocation { [self.target performselector:self.callback withobject:@0];}- (void)locationmanager:(cllocationmanager *)manager didfailwitherror:(nserror *)error { [self.target performselector:self.callback withobject:@1];}

更多信息请查看IT技术专栏

推荐信息