IOS开发实例-获取用户当前地理坐标

法一:在使用高德地图时,有个代理方法:

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

在这方法内写

double gps_lat = userLocation.coordinate.latitude;

double gps_lng = userLocation.coordinate.longitude;


法二:转自http://www.2cto.com/kf/201402/279078.html

1.导入CoreLocation.frameWork

2.通过CLLocationManager类获取位置信息

# import "TestViewController.h"
 
@implementation TestViewController
 
#pragma mark - view life cycle
- ( void )viewDidLoad
{
     [ super viewDidLoad];

     // 实例化一个位置管理器
     self.locationManager = [[CLLocationManager alloc] init];
     self.locationManager.delegate = self;
     
     // 设置定位精度
     // kCLLocationAccuracyNearestTenMeters:精度10米
     // kCLLocationAccuracyHundredMeters:精度100 米
     // kCLLocationAccuracyKilometer:精度1000 米
     // kCLLocationAccuracyThreeKilometers:精度3000米
     // kCLLocationAccuracyBest:设备使用电池供电时候最高的精度
     // kCLLocationAccuracyBestForNavigation:导航情况下最高精度,一般要有外接电源时才能使用
     self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
     
     // distanceFilter是距离过滤器,为了减少对定位装置的轮询次数,位置的改变不会每次都去通知委托,而是在移动了足够的距离时才通知委托程序
     // 它的单位是米,这里设置为至少移动1000再通知委托处理更新;
     self.locationManager.distanceFilter = 1000 .0f; // 如果设为kCLDistanceFilterNone,则每秒更新一次;
     
}
#pragma mark - Actions
- (IBAction)buttonClicked:(id)sender
{
     // 判断的手机的定位功能是否开启
     // 开启定位:设置 > 隐私 > 位置 > 定位服务
     if ([CLLocationManager locationServicesEnabled]) {
         // 启动位置更新
         // 开启位置更新需要与服务器进行轮询所以会比较耗电,在不需要时用stopUpdatingLocation方法关闭;
         [self.locationManager startUpdatingLocation];
     }
     else {
         NSLog(@ "请开启定位功能!" );
     }

    }

// 地理位置发生改变时触发代理方法

- ( void )locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
     // 获取经纬度
     NSLog(@ "纬度:%f" ,newLocation.coordinate.latitude);
     NSLog(@ "经度:%f" ,newLocation.coordinate.longitude);
     // 停止位置更新
     [manager stopUpdatingLocation];
}
// 定位失误时触发
- ( void )locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
     NSLog(@ "error:%@" ,error);
}

你可能感兴趣的:(ios获得所在经纬度)