iOS <CoreLocation>定位框架的理解与运用

1.对iOS定位功能的初步了解:

现在的移动设备很多都提供定位服务,使用iOS系统的iPhone、iPod Touch和iPad都可以提供位置服务,iOS设备能提供3种不同途径进行定位:Wifi, 蜂窝式移动电话基站, GPS卫星

iOS 不像Android系统在定位服务编程时,可以指定采用哪种途径进行定位。iOS的API把底层这些细节屏蔽掉了,开发人员和用户并不知道现在设备是采用 哪种方式进行定位的,iOS系统会根据设备的情况和周围的环境,采用一套最佳的解决方案。这个方案是这样的,如果能够接收GPS信息,那么设备优先采用 GPS定位,否则采用Wifi或蜂窝基站定位,在Wifi和蜂窝基站之间优先使用Wifi,如果无法连接Wifi才使用蜂窝基站定位。

总体来说GPS定位优点是准确、覆盖面广阔,缺点是不能被遮挡(例如:在建筑物里面收不到GPS卫星信号)、GPS开启后比较费电。蜂窝基站不仅误差比较大,而且会耗费用户流量费。而Wifi定位是最经济实惠的。


2.CLLocationManager定位使用的类;CLLocationManager *manager = [[CLLocationManager alloc]init];

 iOS8使用定位需在pilst里面添加NSLocationWhenInUseUsageDescriptio            NSLocationAlwaysUsageDescription获取用户的授权。

使用定位启动时要与InfoPlist里面设置的Key一致,例:[manager requestWhenInUseAuthorization];

让系统自动帮助管理定位服务的开关,从而节约电量;[manager pausesLocationUpdatesAtuomatically];



3.CLLocationManagerDelegate方法

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

  (NSArray *)locations 这个数组里面有设备的当前定位的具体位置信息,可以通过[location lastObject]获取最新的地理位置。

   可以根据获取的地理位置信息通过反地理编码获得具体位置的地名:

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

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

        

        CLPlacemark *mark = [placemarks lastObject];

        addressLabel.text = mark.locality;城市名

   

}

{


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值