IOS学习之——定位服务2 实现基本定位

1 定位,主要是干啥呢?

1 获取位置相关数据

2 获取位置相关信息

由此,我想到了当年玩反恐精英里面用瞄准镜的瞄准的感觉:

2 那……怎样定位呢?

1首先你得瞄准吧

    locationManager=[[CLLocationManager alloc]init]; // 定义locationManage对象  打开瞄准镜
     locationManager.delegate=self;                  // 实现代理  自己打枪
    [locationManager requestAlwaysAuthorization ];   // 请求永久授权  你可以持枪多久?
    locationManager.desiredAccuracy=kCLLocationAccuracyBest;  //设置定位精度  调节面准镜远近
    //authorization 授权,认可

    locationManager.distanceFilter=1000.0f;                   //设置获得移动信息最小距离  目标走多远我需要调整?

这里解释一下:请求获取授权有两种情况:

1 requestAlwaysAuthorization  获取永久授权

2 requestWhenInUseAuthorization  当使用的时候授权

设置精度有六种选择:

1 kCLLocationAccuracyBestForNavigation 导航的最高精度,一般车载导航用(需外接电源)

2 kCLLocationAccuracyBest; 电池使用时候最高精度

3 kCLLocationAccuracyNearestTenMeters; 精确到10米

4 kCLLocationAccuracyHundredMeters; 精确到100米

5 kCLLocationAccuracyKilometer;精确到1000米

6 kCLLocationAccuracyThreeKilometers; 精确到3千米

2 你要把子弹上膛吧,打完了子弹得卸下来吧?

-(void)viewDidAppear:(BOOL)animated
{
     [locationManager startUpdatingLocation];// 开始更新位置信息 子弹上膛
}

-(void)viewDidDisappear:(BOOL)animated
{
    [locationManager stopUpdatingLocation]; //  结束更新位置信息 卸下子弹
}

3 接下来可以打枪了吧(实现委托方法)

/*---------------------------locationmanagerdelegate的方法----------------------------------*/

// 小译:-()位置管理员:某位置管理员 已经更新的位置信息:某位置信息
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation *currentLocation=[locations lastObject];
    longtitudeTextField.text=[NSString stringWithFormat:@"%3.5f",currentLocation.coordinate.longitude];
    latitudeTextField.text=[NSString stringWithFormat:@"%3.5f",currentLocation.coordinate.latitude];
    highTextField.text=[NSString stringWithFormat:@"%3.5f",currentLocation.altitude];
}

4 这万一,没打中呢?(协议方法)

// 调用失败
// 小译:-()位置管理员:某管理员 已经失败的错误信息:某错误信息
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    // 小译:deny拒绝
    if(error.code==kCLErrorDenied)
    {
        NSLog(@"拒绝访问");
    }else if (error.code==kCLErrorLocationUnknown)
    {
        NSLog(@"位置信息未知");
    }
}

3 但是,这定位你想定就可以吗?(小心人家不让)

1要在info.list里面添加两个键哦

NSLocationAlwaysUsageDescription

NSLocationWhenInUseUsageDescription

2记得右键选择下面的选项

3 效果呢?(设置里面出现选项)

4 运行结果

5 源代码

https://git.oschina.net/zhengaoxing/location1selflocation

时间: 2024-10-06 00:30:43

IOS学习之——定位服务2 实现基本定位的相关文章

iOS开发 定位服务与地图

概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的地方想要查找附近的酒店.超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品.总之,目前地图和定位功能已经大量引入到应用开发中.今天就和大家一起看一下iOS如何进行地图和定位开发. 定位 地图 定位 要实现地图.导航功能,往往需要先熟悉定位功能,在iO

iOS开发拓展篇—CoreLocation定位服务

一.简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUpdatingLocation; 停止用户定位- (void) stopUpdatingLocation; 说明:当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法 - (void)locationManager:(CLLocationManager *)manager didUpdat

iOS学习笔记19-地图(一)定位CoreLocation

一.定位介绍 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.要实现地图.导航功能,往往需要先熟悉定位功能. 在iOS中通过CoreLocation框架进行定位操作. CoreLocation自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图开发要配合定位框架使用. CoreLocation可以实现的功能: 定位功能 地理编码与逆地理编码 二.定

在iOS8下使用CLLocationManager定位服务需要系统授权

最近在ios8.0使用CLLocationManager定位服务,发现老不能定位,查看设置菜单中的项也是处于未知状态.想起之前都有一个弹出框提示用户是否允许定位,这次一直没有出现了.原来ios8.0下的定位服务需要申请授权了. 具体代码如下: 1 if ([CLLocationManager locationServicesEnabled]) { 2 3 self.locationManager = [[CLLocationManager alloc] init]; 4 5 _locationM

定位服务

前言: 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的地方想要查找附近的酒店.超市等就可以打开软件搜索周边:类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品.总之,目前地图和定位功能已经大量引入到应用开发中.在产品研发中有两个专业术语需要大家知道:一是LBS(Location Based Service)基于定位的服务,二是So

Android 定位服务(Location-Based Services)

Android定位服务融合了GPS定位.移动通信.导航等多种技术,提供与空间位置相关的综合应用服务.近些年来,基于位置的服务发展更为迅速,涉及商务.医疗.工作和生活的各个方面,为用户提供定位.追踪和敏感区域警告等一系列服务. Android平台支持提供位置服务的API,在开发过程中主要使用LocationManager和LocationProviders对象. - LocationManager: 用来获取当前位置,追踪设备的移动路线,或设定敏感区域,在进入或离开敏感区域时设备会发出特定警报.

Android网络定位服务定制简述

Android 添加高德或百度网络定位服务 Android的网络定位服务以第三方的APK方式提供服务,由于在国内Android原生自带的com.google.android.gms服务几乎处于不可用状态,因此对于第三方OEM厂商经常需要与高德或百度合作,使用这两个服务提供商提供的网络位置定位服务.现将在Android平台集成第三方网络定位服务的步骤简述如下: 1.向高德或百度获取网络定位服务apk,并集成至system/app目录下,有时需要同步获取其运行时需要的库,并集成与指定目录,一般是sy

简易的IOS位置定位服务

有时一些小的需求.事实上仅仅是须要得知当前IOS APP使用的地点.有些仅仅是想精确到城市级别,并不须要不论什么地图. 有了下面的简易实现: @interface MainViewController ()<CLLocationManagerDelegate> .... @end @implementation MainViewController - (void)InitLocation { //初始化定位服务管理对象 self.locationManager = [[CLLocationM

iOS学习之Map,定位,标记位置的使用

iOS上使用地图比Android要方便,只需要新建一个MKMapView,addSubView即可.这次要实现的效果如下: 有标注(大头针),定位,地图. 1.添加地图 1.1 新一个Single View app ,选择默认项,创建后,在ViewController.h [cpp] view plaincopy #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocati