博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 简单获取当前地理坐标
阅读量:5321 次
发布时间:2019-06-14

本文共 2090 字,大约阅读时间需要 6 分钟。

 

  iOS 获取当前地理坐标

       iOS获取当前地理坐标,很简单几句代码,但是如果刚开始不懂,做起来也会也会出现一些问题。

 

1、导入定位需要用到的库:CoreLocation.framwork 。如果要显示地图,就要导入 MapKit.framwork 。

 

2、在info.plist里加入两行 

            NSLocationWhenInUseUsageDescription  当应用需要时候定位 

            NSLocationAlwaysUsageDescription   始终使用地位(这行如果不加,那么启动的时候就不会弹出允许使用定位提示框,只能手动设置允许)。

              

 

3、导入类库  #import <CoreLocation/CoreLocation.h>, 添加代理 CLLocationManagerDelegate 。基本设置好了就可以直接代码实现了。

 

4、定义一个对象,做一些设置。

self.locationManager = [[CLLocationManager alloc] init];    // 设置定位精度,十米,百米,最好    self.locationManager.desiredAccuracy=kCLLocationAccuracyBest;    //每隔多少米定位一次(这里的设置为任何的移动)    self.locationManager.distanceFilter = kCLDistanceFilterNone;    self.locationManager.delegate = self; //代理设置        // 开始时时定位    if ([CLLocationManager locationServicesEnabled])    {        // 开启位置更新需要与服务器进行轮询所以会比较耗电,在不需要时用stopUpdatingLocation方法关闭;        [self.locationManager startUpdatingLocation];    }else    {        NSLog(@"请开启定位功能");    }

 

5、代理方法实现

//开启定位后会先调用此方法,判断有没有权限-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{    if ([CLLocationManager authorizationStatus]==kCLAuthorizationStatusNotDetermined)    {

       //判断ios8 权限

        if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])

        {

            [self.locationManager requestAlwaysAuthorization]; // 永久授权

            [self.locationManager requestWhenInUseAuthorization]; //使用中授权

        }

}else if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusAuthorizedWhenInUse)    {        [self.locationManager startUpdatingLocation];    }}

 

 

6、获取定位坐标

//成功获取到经纬度- (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");}

 

 完成:

      这就是一个简单的地理坐标获取,如果要使用更多功能、路线、距离、大头针、地理编码换算等可以下载使用高德或百度的SDK,里面都头很详细的说明,和简单的方法调用!

 

转载于:https://www.cnblogs.com/qq95230/p/4960003.html

你可能感兴趣的文章
JavaScript的extend函数
查看>>
用easy_install時出現unknown url type: https问题
查看>>
无重复字符的最长子串
查看>>
A Famous Music Composer
查看>>
Jquery实现图片瀑布流思路-简单版
查看>>
【病因】 深入剖析强迫症的病因
查看>>
sysfs 文件系统的建立
查看>>
Arria10中的IOPLL与fPLL
查看>>
Delphi 停靠技术的应用
查看>>
C++中的异常处理(二)
查看>>
【转】MySql数据库--mysql_real_escape_string()函数
查看>>
关于Android线程的几点说明
查看>>
TIA WinCC Professional入门经典
查看>>
HDU 5652 India and China Origins(二分 + DFS)
查看>>
百度之星资格赛 2016 Problem 1002
查看>>
Codeforces 722C(并查集 + 思维)
查看>>
利用EF和C#泛型实现通用分页查询
查看>>
基于supervisor秒级Laravel定时任务
查看>>
python操作mysql数据库练习
查看>>
【luogu2678】【niop2015】跳石头 [二分]
查看>>