首页 > 代码库 > 欧美斯项目签到功能,实时获取当前所在位置的经纬度

欧美斯项目签到功能,实时获取当前所在位置的经纬度

由于欧美斯项目需要签到功能,因此需要给后台传一个当前位置的经纬度,以下是获取经纬度的方法

1>导入CoreLocation.frameWork

2>引入头文件,并遵循协议

#import <CoreLocation/CoreLocation.h>

<CLLocationManagerDelegate>

3>代码

@interface YYAboutUsViewController ()<UIWebViewDelegate,CLLocationManagerDelegate>{    UIWebView *_webView;    NSString * _currentLatitude;  //当前位置的纬度    NSString * _currentLongitude; //当前位置的经度    CLLocationManager *_locManager;    }@end@implementation YYAboutUsViewController- (void)viewWillAppear:(BOOL)animated{    //实例化一个位置管理器    _locManager = [[CLLocationManager alloc] init];    _locManager.delegate = self;   // 设置定位精度    // kCLLocationAccuracyNearestTenMeters:精度10米    // kCLLocationAccuracyHundredMeters:精度100 米    // kCLLocationAccuracyKilometer:精度1000 米    // kCLLocationAccuracyThreeKilometers:精度3000米    // kCLLocationAccuracyBest:设备使用电池供电时候最高的精度    // kCLLocationAccuracyBestForNavigation:导航情况下最高精度,一般要有外接电源时才能使用    _locManager.desiredAccuracy = kCLLocationAccuracyBest;    // distanceFilter是距离过滤器,为了减少对定位装置的轮询次数,位置的改变不会每次都去通知委托,而是在移动了足够的距离时才通知委托程序    // 它的单位是米,这里设置为至少移动1000再通知委托处理更新;    _locManager.distanceFilter = 1000.0f;  // 如果设为kCLDistanceFilterNone,则每秒更新一次;        //判断手机定位是否开启    // 开启定位:设置 > 隐私 > 位置 > 定位服务    if ([CLLocationManager locationServicesEnabled]) {       // 启动位置更新        // 开启位置更新需要与服务器进行轮询所以会比较耗电,在不需要时用stopUpdatingLocation方法关闭;        [_locManager startUpdatingLocation];    }else{        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"请开启定位" message:nil delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];        [alert show];    }}- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view.        [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"guanyu_nav"] forBarMetrics:UIBarMetricsDefault];                    if (Device_Is_IPhone5) {        _webView =[[UIWebView alloc]initWithFrame:CGRectMake(0, 64, self.view.bounds.size.width, self.view.bounds.size.height - 64)];    }else{        _webView =[[UIWebView alloc]initWithFrame:CGRectMake(0, 44, self.view.bounds.size.width, self.view.bounds.size.height - 44)];    }    [self.view addSubview:_webView];}#pragma mark -CLLocationManagerDelegate// 地理位置发生改变时触发- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{    // 获取经纬度    NSLog(@"纬度:%f",newLocation.coordinate.latitude);    NSLog(@"经度:%f",newLocation.coordinate.longitude);            //加载网络数据    _webView.delegate = self;    //aboutOMS.html    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@?latitude=%f&longitude=%f",kBaseUrl,@"7.aspx",newLocation.coordinate.latitude,newLocation.coordinate.longitude]];    NSURLRequest *request=[NSURLRequest requestWithURL:url];    [_webView loadRequest:request];    // 停止位置更新    [manager stopUpdatingLocation];}#pragma mark -webView的代理方法-- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{    return YES;}- (void)webViewDidStartLoad:(UIWebView *)webView{    [MBProgressHUD showWithText:@"加载中..." toView:self.view];    }- (void)webViewDidFinishLoad:(UIWebView *)webView{    [MBProgressHUD hideHUDForView:self.view animated:YES];}@end