iOS8,根据经纬度显示地名|什么软件在输入地名后可测出经纬度

我们很多时候做项目的时候都选用通过手机获取定位,然后传数据给后台,这是iOS8根据经纬度显示地名的demo

//1.导入框架

//

// NearByViewController.m

// nearDemo

//

// Created by apple on 14/12/5.

// Copyright (c) 2014年 youdianshang. All rights reserved.

//

#import

#import

@interface NearByViewController ()

{

NSUserDefaults *defaluts;

NSString * jingduStr;

NSString *weiduStr;

NSString *LocationAddress;

}

@property(nonatomic,retain)CLLocationManager *locationManager;

@property(strong,nonatomic)UILabel *positionLabel;

/*

经纬度相关设置

*/

-(void)getLocationAll

{

self.locationManager = [[CLLocationManageralloc]init];

_locationManager.delegate =self;

_locationManager.desiredAccuracy =kCLLocationAccuracyBest;

_locationManager.distanceFilter =10;

[_locationManagerrequestAlwaysAuthorization];//添加这句

[_locationManagerstartUpdatingLocation];

}

/*

//通过经纬度得到当前地理位置

-(void)change{

defaluts=[NSUserDefaultsstandardUserDefaults];

CLLocationCoordinate2D coordinate;

titude = [[NSStringstringWithFormat:@"%@",jingduStr]floatValue];

coordinate.longitude = [[NSStringstringWithFormat:@"%@",weiduStr]floatValue];

CLLocation *newLocation=[[CLLocationalloc]initWithLatitude:titudelongitude: coordinate.longitude];

CLGeocoder *geocoder=[[CLGeocoderalloc] init];

[geocoder reverseGeocodeLocation:newLocationcompletionHandler:^(NSArray* placemarks,NSError* error)

{

MKPlacemark*placemark = [placemarks objectAtIndex:0];

LocationAddress = [NSStringstringWithFormat:@"%@%@%@%@", placemark.locality, placemark.subLocality,placemark.thoroughfare, placemark.subThoroughfare];

[defaluts setObject:LocationAddress forKey:@"address"];

NSLog(@"终极目标:1:%@2:%@3:%@4:%@", placemark.locality, placemark.subLocality,placemark.thoroughfare,placemark.subThoroughfare);

}];

#pragma mark--实现CLLocationManagerDelegate的代理方法,获取地理位置(镔)===========================================================================

//(1)获取到位置数据,返回的是一个CLLocation的数组,一般使用其中的一个

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

{

CLLocation *currLocation = [locations lastObject];

NSLog(@"经度=%f纬度=%f高度=%f", titude, currLocation.coordinate.longitude, currLocation.altitude);

jingduStr =[NSStringstringWithFormat:@"%f", titude];

weiduStr =[NSStringstringWithFormat:@"%f", currLocation.coordinate.longitude];

NSLog(@"jijijijijij:%@",jingduStr);

[self change];

}

//(2)获取用户位置数据失败的回调方法,在此通知用户

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

{

if ([error code] ==kCLErrorDenied)

{

//访问被拒绝

}

if ([errorcode] == kCLErrorLocationUnknown) {

//无法获取位置信息

}

}