首页 技术 正文
技术 2022年11月14日
0 收藏 521 点赞 3,691 浏览 1855 个字

iOS 获取当前地理坐标

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

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

2、在info.plist里加入两行

NSLocationWhenInUseUsageDescription  当应用需要时候定位

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

iOS 简单获取当前地理坐标

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,里面都头很详细的说明,和简单的方法调用!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,086
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,561
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,410
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,183
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,820
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,903