[전환 아이폰] 경위도 좌표에 따라 상세한 주소(국, 성, 시, 거리, 번호 포함)를 취한다.
3836 단어 manageriPhone휴대폰buttonCLLocation
현재 휴대전화 주소를 얻고 경위도에서 상세한 주소로 전환한다(국가명-국가코드, 성, 거리명, 우편대코드 등 포함).
1:현재 핸드폰 경위도 획득
@implementation CurrentLocation
@synthesize locationManager;
@synthesize target,callBack;
#pragma mark --
#pragma mark Public
-(void) startUpdatingLocation{
[[self locationManager] startUpdatingLocation];
}
#pragma mark --
#pragma mark Memory management
-(void) dealloc{
[super dealloc];
[locationManager release];
}
#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;
}
#pragma mark --
#pragma mark CLLocationManagerDelegate methods
/*
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 {
NSLog(@" !");
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error {
NSLog(@" !");
}
@end
2: 현재 휴대전화의 경위도에 대한 상세한 주소 얻기
@implementation AddressReverseGeoder
#pragma mark --
#pragma mark Public
//
- (void)startedReverseGeoderWithLatitude:(double)latitude longitude:(double)longitude{
CLLocationCoordinate2D coordinate2D;
coordinate2D.longitude = longitude;
coordinate2D.latitude = latitude;
//
MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate2D];
geoCoder.delegate = self;
[geoCoder start];
}
#pragma mark --
#pragma mark MKReverseGeocoderDelegate methods
//
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {
NSString *address = [NSString stringWithFormat:@"%@ %@ %@ %@ %@%@",
placemark.country,
placemark.administrativeArea,
placemark.locality,
placemark.subLocality,
placemark.thoroughfare,
placemark.subThoroughfare];
NSLog(@" :%@", address);
geocoder = nil;
}
//
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error {
NSLog(@"error %@" , error);
}
#pragma mark --
#pragma mark Memory management
- (void)dealloc {
[super dealloc];
}
@end
@property (nonatomic, readonly) NSDictionary *addressDictionary;//주소 사전 @property(nonatomic,readonly) NSString*thoroughfare;//거리 이름-'코윈로'@property(nonatomic,readonly) NSString*subThoroughfare;//문패 번호 -'18번'@property(nonatomic,readonly) NSString*locality;//도시-광저우시@property(nonatomic,readonly)NSString*subLocality;//구 현-'천하구'@property(nonatomic,readonly) NSString*administrative Area;//ID - "광둥성"@property(nonatomic,readonly) NSString*subAdministrative Area;//가져오지 못했습니다. 뭔지 모르겠습니다. @property (nonatomic,readonly) NSString * postalCode;//우편번호 - 무슨 이유인지 모르겠지만 @property(nonatomic,readonly) NSString*country;//국가 - "중국"@property(nonatomic,readonly) NSString*countryCode;//국가 코드 - "CN"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NSFileManager 파일 적용텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.