iOS--CoreLocation的简单使用

原创 2015年11月18日 21:12:54

CoreLocation功能强大,实际运用中常与地图结合使用,以达到地图显示与定位的功能。

(1)在info.plist文件中加入以下字段
<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>始终允许</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>需要使用您的定位功能</string>

(2)导入CoreLocation框架

(3)实现代码
#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>
@interface ViewController ()<CLLocationManagerDelegate>
@property (nonatomic,strong) CLLocationManager *locationManager;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //检测定位功能是否开启
    if ([CLLocationManager locationServicesEnabled]) {
        if (!_locationManager) {
            self.locationManager = [[CLLocationManager alloc]init];
            if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
                [self.locationManager requestWhenInUseAuthorization];
                [self.locationManager requestAlwaysAuthorization];
            }
            //设置代理
            self.locationManager.delegate = self;
            //设置定位精度
            [self.locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
            //设置筛选距离
            [self.locationManager setDistanceFilter:100];
            //开始定位
            [self.locationManager startUpdatingLocation];
            //设置开始识别方向
            [self.locationManager startUpdatingHeading];
        }
    }else {
    //iOS9以后的UIAlertView
        UIAlertController *aletController = [UIAlertController alertControllerWithTitle:@"您没有开启定位功能" message:nil preferredStyle:UIAlertControllerStyleAlert];
        [aletController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        }]];
        [self presentViewController:aletController animated:YES completion:nil];
    }
}

#pragma mark --CLLocationManagerDelegate--
//定位成功以后调用
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
    [self.locationManager stopUpdatingLocation];
    CLLocation* location = locations.lastObject;
    [self reverseGeocoder:location];
}

#pragma mark --Geocoder-
//反地理编码
- (void)reverseGeocoder:(CLLocation *)currentLocation {
    CLGeocoder *geocoder = [[CLGeocoder alloc]init];
    [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        if (error || placemarks.count == 0) {
            NSLog(@"error %@",error);
        }else {
            CLPlacemark *placemark = placemarks.firstObject;
            NSLog(@"placemark:%@",[[placemark addressDictionary] objectForKey:@"City"]);
            UIAlertController *aletController = [UIAlertController alertControllerWithTitle:@"你的位置" message:[[placemark addressDictionary] objectForKey:@"City"] preferredStyle:UIAlertControllerStyleAlert];
            [aletController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {   

            }]];
            [self presentViewController:aletController animated:YES completion:nil];
        }
    }];
}
@end

实际效果图

版权声明:

相关文章推荐

iOS开发拓展篇—CoreLocation简单介绍

iOS开发拓展篇—CoreLocation简单介绍 一、简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如 (1)导航:去任意陌生的地方 (2)周边:找餐馆、...

iOS开发拓展篇—CoreLocation简单介绍

一、简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如 (1)导航:去任意陌生的地方 (2)周边:找餐馆、找酒店、找银行、找电影院   2.在上述应用中...

iOS开发—01CoreLocation简单介绍

一、简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如 (1)导航:去任意陌生的地方 (2)周边:找餐馆、找酒店、找银行、找电影院   2.在上述应用中,都用到了地图和定位功能,在i...

iOS CoreLocation 实现简单定位(现实城市)

我们可能常常使用CoreLocation来实现很复杂的功能,包括地图显示、定位等等。但是在实际的项目开发中,我们可能有这样的需求,只要获取当前所在城市的名称即可,然后使用这个城市名称来开发其他的功能实...

关于CoreLocation定位服务的简单使用

在我们发微博,发表空间内容,以及在朋友圈发表动态的时候,会发现有一个位置信息的控件。iOS中是如何定位我们的位置信息的呢?基于此写一个小Demo,供大家参考使用。 在iOS中,用于定位时需要我们导入以...

iPhone获取当前位置(CoreLocation的一些简单使用)

获取用户位置 Core Location框架提供了三种用于追踪设备当前位置的服务,Core Location框架从内置的蜂窝,Wi-Fi或者GPS来获取位置 The significant...

iOS LBS CoreLocation定位,旋转角度,区域检测,地理编码,框架INTULocationManager使用

这里主要介绍CoreLocation的使用: 导入框架 导入主头文件 #import 当然导入头文件框架会自动导入 CoreLocation框架中所有数据类型的前缀都是CL CoreLocat...

iOS8中使用CoreLocation定位

今天做一个定位功能,发现用不了。去网上查了半天,找到了这个解决方案,我转过来以留后用,也给大家分享一下

如何在iOS 8中使用CoreLocation定位

在iOS 8中,苹果已经强制开发者在请求定位服务时获得用户的授权,此外iOS状态栏中还有指示图标,提示用户当前应用是否正在使用定位服务。另外在iOS 8中,苹果进一步改善了定位服务,让开发者请求定位服...

IOS学习之——CoreLocation定位的使用

在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆、找酒店、找银行、找电影院在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这2大功能,必须...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)