iOS定位--CoreLocation
一:导入框架
#import <CoreLocation/CoreLocation.h>
二:设置代理及属性
<CLLocationManagerDelegate>
@property (nonatomic, strong) CLLocationManager *locMgr;
三:方法实现
- (CLLocationManager *)locMgr
{
#warning 定位服务不可用
if(![CLLocationManager locationServicesEnabled]) return nil;
if (!_locMgr) {
// 创建定位管理者
self.locMgr = [[CLLocationManager alloc] init];
// 设置代理
self.locMgr.delegate = self;
}
return _locMgr;
}
- (void)viewDidLoad {
[super viewDidLoad];
// 开始定位用户的位置
[self.locMgr startUpdatingLocation];
}
#pragma mark - CLLocationManagerDelegate
/**
* 只要定位到用户的位置,就会调用(调用频率特别高)
* @param locations : 装着CLLocation对象
*/
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
// 1.取出位置对象
CLLocation *loc = [locations firstObject];
// 2.取出经纬度
CLLocationCoordinate2D coordinate = loc.coordinate;
// 3.打印经纬度
NSLog(@"didUpdateLocations------%f %f", coordinate.latitude, coordinate.longitude);
// 停止定位(省电措施:只要不想用定位服务,就马上停止定位服务)
[manager stopUpdatingLocation];
}
/**
* 计算2个经纬度之间的直线距离
*/
- (void)countLineDistance
{
// 计算2个经纬度之间的直线距离
CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:40 longitude:116];
CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:41 longitude:116];
CLLocationDistance distance = [loc1 distanceFromLocation:loc2];
NSLog(@"%f", distance);
}
最新文章
- php 构造函数格式,具体该怎么写?应该注意什么呢?
- VC++动态链接库(DLL)编程深入浅出(zz)
- Java数组的一些基本算法
- gridview填充剩下的空间
- 好文要顶之 --- 简单粗暴地理解 JavaScript 原型链
- Android Camera拍照 压缩
- java jdbc使用配置文件连接数据库:
- 前端利器,如何使用fiddle拦截在线css进行先下调试
- hdoj 5249 KPI(treap)
- iOS tableView刷新
- windowns10安装httpd
- cocos creator主程入门教程(十)—— A*寻路
- 【小白学Lua】之Lua变长参数和unpack函数
- 使用Github生成燃尽图
- 【Wyn Enterprise BI知识库】 认识多维数据建模与分析 ZT
- 如何卸载VMware虚拟机?
- easyui——validType属性值
- mysql 高可用架构
- 9.11 h5日记
- Web压力架构