ios 使用CoreLocation框架确定他的物理位置

一.基本知识

iPhone可以使用CoreLocation框架确定他的物理位置,可以利用三种技术来实现该功能:GPS,WiFi定位和蜂窝基站三角网定位。但在程序中我们只需设定我们希望的精度级别,由CoreLocation决定采用哪种技术可以更好的满足我们的请求。



二.

    //

    clLocationManager= [[CLLocationManageralloc] init];

    clLocationManager.delegate= self;  //设置代理

    

    /*

     精确度级别:

     kCLLocationAccuracyBestForNavigation

     kCLLocationAccuracyBest                //使用当前可用精确度最高的方法

     kCLLocationAccuracyNearestTenMeters    //10米

     kCLLocationAccuracyHundredMeters       //100米

     kCLLocationAccuracyKilometer           //1000米

     kCLLocationAccuracyThreeKilometers     //3000米

     double类型,可以自定义

     */

    clLocationManager.desiredAccuracy= kCLLocationAccuracyBest;  //指定请求精确度级别-10米 

    

    

    

    /*

      距离筛选器

      kCLDistanceFilterNone

      double类型,可以自定义

     */

    clLocationManager.distanceFilter  = 10.0f;  //距离筛选器-仅当位置更改超过特定的数量时才通知你

    

    [clLocationManagerstartUpdatingLocation];  //启动位置管理器

//    [clLocationManager stopUpdatingLocation];   //停止位置管理器



三.CLLocationManagerDelegate协议

#pragma mark CLLocationManagerDelegate

//获取位置更新

- (void) locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation

{


//    newLocation.coordinate.latitude; //经度

//    newLocation.coordinate.longitude;//纬度

//    newLocation.horizontalAccuracy; //已coordinate作为中心的一个圆的半径-值越大说明CoreLocation所确定的位置越不准确。为负值,则表示因为某些原因,不确定

//    newLocation.altitude;   //在海平面以上还是以下多少米

//    newLocation.verticalAccuracy;//表示CoreLocation在其精确度的还把方面的精确度。如果为负值,则表示无法确定有效的海拔

//    newLocation.timestamp;  //告知位置管理器确定为位置的时间

//    CLLocationDistance tmpDistance = [oldLocation getDistanceFrom:newLocation];

    

}


//无法确定你当前位置

- (void) locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error

{

    //最有可能的错误原因是用户拒绝方位。因为:位置管理器的使用必须由用户进行授权,因此应用程序在第一次确定位置的时候,会在屏幕上弹出一个警告:询问用户是否确定让当前程序访问你的位置。

    NSString*errorType = (error.code== kCLErrorDenied)?@"Access Denied": @"Unknow Error";

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值