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);

}

时间: 2024-10-27 12:11:00

iOS定位--CoreLocation的相关文章

iOS定位--CoreLocation框架

CoreLocation框架的使用 // 首先导入头文件 #import <CoreLocation/CoreLocation.h> CoreLocation框架中所有数据类型的前缀都是CL CoreLocation中使用CLLocationManager对象来做用户定位 1.CLLocationManager的使用 CLLocationManager的常用操作 /** * 定位管理者,全局变量强引用,防止销毁 */ @property (nonatomic ,strong) CLLocati

iOS定位开发之CoreLocation

有时候我们并不需要查看地图,而仅仅需要自己的当前位置就可以,这时候就没有必要去使用MapKit可,直接使用定位服务就好了 苹果提供了CoreLocation框架来做定位功能 首先要想项目中导入CoreLocation框架 定位服务开启之前最好查看一下定位服务是否可用,有可能用户已经拒绝或者用户手机定位模块有问题,无法定位 定位服务是由CLLocationManager来管理的 定位成功等信息也是通过代理发送给对象的,另外定位中经常需要用到地理位置的解码和反解码(其实就是经纬度和地名之间的转换)

iOS定位服务与地图开发(1)---获取经纬度

定位服务是通过GPS等方式查找定位自己的位置的,再通过地图标注出来. 在iOS中定位服务和地图开发是使用两套API分别完成的. 1.定位服务: iOS系统提供3种不同定位途径: 1>WiFi定位:通过查询一个WiFi路由器的地理位置信息,iPhone.iPod Touch.iPad都可以采用. 2>蜂窝式移动电话基站定位:通过移动运营商基站定位 3>GPS卫星定位:通过3~4颗GPS卫星位置定位,最为准确,但是耗电量大 iOS不像Android系统在定位服务编程时可以指定采用哪种途径进行

iOS定位服务编程详解

现在的移动设备很多都提供定位服务,使用iOS系统的iPhone.iPod Touch和iPad都可以提供位置服务,iOS设备能提供3种不同途径进行定位:Wifi, 蜂窝式移动电话基站, GPS卫星 iOS 不像Android系统在定位服务编程时,可以指定采用哪种途径进行定位.iOS的API把底层这些细节屏蔽掉了,开发人员和用户并不知道现在设备是采用 哪种方式进行定位的,iOS系统会根据设备的情况和周围的环境,采用一套最佳的解决方案.这个方案是这样的,如果能够接收GPS信息,那么设备优先采用 GP

iOS定位和地图

iOS定位和地图功能要用到两个框架:mapkitcoreLocation 两个专门术语:lbs(Location Based Service)基于定位服务的APP和solomo(Social Local Mobile)社交+本地+手机. CoreLocation 1.导入框架,导入头文件. 2.创建CALocationManager对象. 3.设置代理. 4.实现方法 - (void)locationManager:(CLLocationManager *)manager didUpdateLo

ios-CoreLocation

ios原生定位CoreLocation 1.使用定位 #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController ()<CLLocationManagerDelegate> /** 定位管理者 */ @property (nonatomic, strong) CLLocationManager *locationManger; @end @i

ios 定位

ios 定位新功能----在程序中实现定位功能 Core Location是iOS SDK中一个提供设备位置的框架.可以使用三种技术来获取位置:GPS.蜂窝或WiFi.在这些技术中,GPS最为精准,如果有GPS硬件,Core Location将优先使用它.如果设备没有GPS硬件(如WiFi iPad)或使用GPS获取当前位置时失败,Core Location将退而求其次,选择使用蜂窝或WiFi. Core Location的大多数功能是由位置管理器(CLLocationManager)提供的,可

IOS 定位 单例

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + (SCLocationController *)sharedController {      static SCLocationController *sharedController = nil;     

iOS定位服务与地图开发(4)---显示地图

iOS 6之前,苹果使用的是谷歌地图,iOS 6之后,苹果使用了自己的地图(国内好像用的是高德地图),但是API编程接口与iOS 5相比没有太大变化. iOS 应用程序中使用Map Kit API开发地图应用程序,使用MKMapView类作为地图显示视图,其委托协议是MKMapViewDelegate. 1.显示地图: .h文件中代码 #import <MapKit/MapKit.h> @interface YXCViewController <MKMapViewDelegate>