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菜鸟-使用MapKit和CoreLocation实现简单的导航画线

初次写博客,如有错误欢迎各路大神赐教,对于写博客有建议的也欢迎各位提点。 本文简单地实现了对于地图上的两个地理位置,可以画出它们之间的路线。最终效果如下图所示: 首先,加入MapKit...

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

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

iOS开发—01CoreLocation简单介绍

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

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

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

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

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

iOS CoreLocation定位 使用方法

iOS开发之定位-CoreLocation 使用方法:最新swift3 Xcode8.3代码,简单明了教程

如何在iOS 8中使用CoreLocation定位

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

iOS 使用CoreLocation定位

CoreLocation框架(CoreLocation.framework)可用于定位设备当前经纬度,通过框架应用程序可用过附近的蜂窝基站、wifi信号或者GPS等信息计算用户围着。 iOS ...

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

在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆、找酒店、找银行、找电影院在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这2大功能,必须...
  • TenMios
  • TenMios
  • 2016年04月02日 16:27
  • 178

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

这里主要介绍CoreLocation的使用: 导入框架 导入主头文件 #import 当然导入头文件框架会自动导入 CoreLocation框架中所有数据类型的前缀都是CL CoreLocat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS--CoreLocation的简单使用
举报原因:
原因补充:

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