美文网首页
iOS自带定位功能(转载http://www.jianshu.c

iOS自带定位功能(转载http://www.jianshu.c

作者: 红酒佳坊 | 来源:发表于2016-09-05 12:22 被阅读79次

由于公司的项目中只需要一个定位的功能,于是想到了苹果自带定位功能。废话不多说,直接上代码。

实现、

1、导入头文件,并且遵循CLLocationManagerDelegate协议#import

2、声明一个全局的定位管理者变量

@property (nonatomic,strong) CLLocationManager *manager;

3、实例化对象,设置代理,请求授权(不经过授权不能适应定位)

// 实例化对象

_manager = [[CLLocationManager alloc] init];

_manager.delegate = self;

// 请求授权,记得修改的infoplist,NSLocationAlwaysUsageDescription(描述)

[_manager requestAlwaysAuthorization];

4、实现其代理方法

#pragma mark - 代理方法,当授权改变时调用

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {

// 获取授权后,通过

if (status == kCLAuthorizationStatusAuthorizedAlways) {

//开始定位(具体位置要通过代理获得)

[_manager startUpdatingLocation];

//设置精确度

_manager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

//设置过滤距离

_manager.distanceFilter = 1000;

//开始定位方向

[_manager startUpdatingHeading];

}

}

#pragma mark - 方向

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {

//输出方向

//地理方向

NSLog(@"true = %f ",newHeading.trueHeading);

// 磁极方向

NSLog(@"mag = %f",newHeading.magneticHeading);

}

#pragma mark - 定位代理

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

//    NSLog(@"%@",locations);

//获取当前位置

CLLocation *location = manager.location;

//获取坐标

CLLocationCoordinate2D corrdinate = location.coordinate;

//打印地址

NSLog(@"latitude = %f longtude = %f",corrdinate.latitude,corrdinate.longitude);

// 地址的编码通过经纬度得到具体的地址

CLGeocoder *gecoder = [[CLGeocoder alloc] init];

[gecoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {

CLPlacemark *placemark = [placemarks firstObject];

//打印地址

NSLog(@"%@",placemark.name);

}];

// 通过具体地址去获得经纬度

CLGeocoder *coder = [[CLGeocoder alloc] init];

[coder geocodeAddressString:@"天河城" completionHandler:^(NSArray *placemarks, NSError *error) {

NSLog(@"_________________________反编码");

CLPlacemark *placeMark = [placemarks firstObject];

NSLog(@"%@ lati = %f long = %f",placeMark.name,placeMark.location.coordinate.latitude,placeMark.location.coordinate.longitude);

}];

//停止定位

[_manager stopUpdatingLocation];

}

相关文章

  • iOS自带定位功能(转载http://www.jianshu.c

    由于公司的项目中只需要一个定位的功能,于是想到了苹果自带定位功能。废话不多说,直接上代码。 实现、 1、导入头文件...

  • iOS自带定位功能实现

    定位功能介绍 关于定位开发一般用两种方法实现,一种使用高德百度的第三方SDK,另一种使用苹果自带的CoreLoca...

  • 百度地图之定位

    iOS中三种定位方式 ioS开发之CoreLocation(GPS定位) iOS自带的GPS 定位 iOS开发 C...

  • iOS使用苹果自带定位功能

    由于公司的项目中只需要一个定位的功能,于是想到了苹果自带定位功能。废话不多说,直接上代码。 实现、 1、导入头文件...

  • 地图定位的不显示

    苹果自带地图定位功能 地图定位 今天要做苹果自带地图定位功能,基于mapkit框架的。怎么也没有找到定位自己的位置...

  • 百度地图初体验

    基本功能 地图百度地图的基本使用和苹果自带的Mapkit差不多,很多方法都是类似的 定位iOS9之后定位权限只有系...

  • 02-IOS11开发新增功能大全

    iOS11开发新增功能大全转载请标注出处:http://blog.csdn.net/u013263917/arti...

  • 定位

    定位 1.实现定位功能 在iOS中使用定位功能,需要导入CoreLocation.h文件,其实现定位功能的步骤如下...

  • CLLocationManager定位和ibeacon的检测

    一.iOS自带的定位 iOS通过自带的CoreLocation 框架可以获取用户的当前位置,城市,经纬度等信息。 ...

  • iOS定位工具类--block传值

    在iOS开发中,经常会碰到定位到当前城市的需求,系统自带的定位功能就能实现,于是封装了一个类方便使用,整理一下发出...

网友评论

      本文标题:iOS自带定位功能(转载http://www.jianshu.c

      本文链接:https://www.haomeiwen.com/subject/bcsbsttx.html