地图相关

#import "ViewController.h"

#import 《CoreLocation/CoreLocation.h》

@interfaceViewController()

/**位置管理者*/

@property(nonatomic,strong)CLLocationManager*locationM;

@end

@implementationViewController

#pragma mark -懒加载

-(CLLocationManager*)locationM

{

if(!_locationM) {

//1创建位置管理者

_locationM= [[CLLocationManageralloc]init];

// 1.1告诉外界位置的方案:代理, block通知

_locationM.delegate=self;

//设置每隔多远定位一次(1次111km/100m)

//最新的位置距离上一次位置之间的距离大于100m,才会通过代理告诉外界

//_locationM.distanceFilter = 100;

//kCLLocationAccuracyBestForNavigation //最适合导航

//kCLLocationAccuracyBest; //最好的

//kCLLocationAccuracyNearestTenMeters; //附近10米

//kCLLocationAccuracyHundredMeters; // 100米

//kCLLocationAccuracyKilometer; // 1000米

//kCLLocationAccuracyThreeKilometers; // 3000米

//定位精确度

//定位精确度越高,越耗电,而且,定位时间越长

_locationM.desiredAccuracy=kCLLocationAccuracyBest;

}

return_locationM;

}

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event

{

// 2.使用位置管理者,开始获取用户位置

//开发经验: start开始某个服务stop停止某个服务

//一旦调用了这个方法,那么就会不断的获取用户位置信息,然后告诉外界

//默认情况,只能在前台获取用户位置信息,如果我们想要在后台获取位置,必须勾选后台模式location updates

//标准定位服务(基于gps/wifi/基站)

[self.locationMstartUpdatingLocation];

//监听重大位置的改变(基于基站进行定位,要求,设备必须有电话模块)

[self.locationMstartMonitoringSignificantLocationChanges];

}

#pragma mark -CLLocationManagerDelegate

//当获取到用户位置信息时调用

// manager :位置管理者

// locations:位置数组

-(void)locationManager:(CLLocationManager*)manager didUpdateLocations:(NSArray*)locations

{

NSLog(@"定位到了");

//一般我们开发中,获取到用户位置信息之后,做一些业务逻辑操作

//针对于定位一次的情况,可以在定位到之后停止获取用户位置

//[manager stopUpdatingLocation];

}

@end

你可能感兴趣的:(地图相关)