iOS开发-iOS8地理位置定位

现在的App基本上都有定位功能,旅游网站根据定位推荐旅游景点,新闻App通过地理位置推荐当地新闻,社交类的App通过位置交友,iOS中实现以上功能需要一个核心的框架CoreLocation,框架提供了一些服务可以获取和定位用户当前的位置。服务会通过一种低功耗的方式通知用户地理位置的变化,iOS中三种地位方式, Wifi定位(通过查询一个Wifi路由器的地理位置的信息),蜂窝基站定位(通过移动运用商基站定位) 和GPS卫星定位(准确度最高,耗电量最大)。

1.新建一个iOS项目,在ViewController中导入核心框架(#import <CoreLocation/CoreLocation.h>);

2.定义一个CLLocationManager变量,实现CLLocationManagerDelegate协议,CLLocationManager负责具体的实现;

ViewController.h中代码:

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>

@interface ViewController : UIViewController<CLLocationManagerDelegate>
{
    CLLocationManager *mylocationManager;
}
@end

ViewDidLoad方法中代码:

    self.view.backgroundColor=[UIColor greenColor];
    if (nil == mylocationManager)
        mylocationManager = [[CLLocationManager alloc] init];

    mylocationManager.delegate = self;
    //设置定位的精度
    mylocationManager.desiredAccuracy = kCLLocationAccuracyKilometer;

    //设置定位服务更新频率
    mylocationManager.distanceFilter = 500;

    if ([[[UIDevice currentDevice] systemVersion] doubleValue]>=8.0)
    {

        [mylocationManager requestWhenInUseAuthorization];// 前台定位
        NSLog(@"当前的版本是%f",[[[UIDevice currentDevice] systemVersion] doubleValue]);

        //[mylocationManager requestAlwaysAuthorization];// 前后台同时定位
    }

    [mylocationManager startUpdatingLocation];

效果图如下:

3.如果不能弹出以上信息,你需要在Info.plist文件中设置一下,加入一个NSLocationWhenInUseUsageDescription(前台获取GPS定位),NSLocationAlwaysUsageDescription(前后台获取GPS定位),Value可以为空;

4.常用方法调用:

大多数协议中都会包含一个处理失败的方法,CoreLocationDelegate中的didFailWithError:

-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    NSLog(@"FlyElephant-http://www.cnblogs.com/xiaofeixiang");
}

 获取变化的之后地理位置didUpdateLocations,locations是按时间先后顺序的集合:

//地理定位完成之后的一个数组
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    //获取最新的位置
    CLLocation * currentLocation = [locations lastObject];
    CLLocationDegrees latitude=currentLocation.coordinate.latitude;
    CLLocationDegrees longitude=currentLocation.coordinate.longitude;

    NSLog(@"didUpdateLocations当前位置的纬度:%.2f--经度%.2f",latitude,longitude);
}

获取地理位置变化的起始点和终点,didUpdateToLocation:

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

    CLLocationDegrees latitude=newLocation.coordinate.latitude;
    CLLocationDegrees longitude=oldLocation.coordinate.longitude;
    NSLog(@"didUpdateToLocation当前位置的纬度:%.2f--经度%.2f",latitude,longitude);
}

 比较简单,关于具体的使用可以参考苹果官方文档https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW1

时间: 2024-11-02 11:09:46

iOS开发-iOS8地理位置定位的相关文章

iOS开发--地图与定位

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

iOS开发 - CoreLocation地理定位

简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆.找酒店.找银行.找电影院 在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发 Map Kit :用于地图展示 Core Location :用于地理定位 2个热门专业术语 LBS :Location Based Service SoLoMo :Social Local Mobile(索罗门) CoreLocation框架的使用 CoreLocat

iOS开发-地图篇-定位

在iOS的开发过程中,会遇到一些有关于定位,导航等开发需求.尤其是在近期,app开发中有关于地图的开发越来越多,因此针对于简单的地图开发,我们还是要进行掌握的. 首先,我们会使用苹果自带的地图功能进行相关的开发,当然在后期我们也可以用一些国内的地图,例如百度地图等等. 我个人在学习地图开发的过程中,开始感觉比较繁琐,很多类啊,框架啊,相关的库啊,都记不住.但是只要多加练习其实地图的开发也是比较简单的. 初学者开始学习地图只要掌握地图的简单应用就可以了. 首先讲一下定位,对于定位我们首先要导入一个

IOS开发Q&amp;A-IOS8定位应用定位失败及音频录制的相关参数

一. 问题描述:使用xcode6和ios8开发定位应用时,发现执行操作之后,不会调用到定位之后的delegate方法中.查看了一下手机上对应用的定位权限界面,发现我的应用的访问用户的地理位置的权限是空的,即使设置了定位权限依然不会生效.当查阅了相关资料以后,得到如下解决方案: 解决方案: step1: 在 info.plist里加入: NSLocationWhenInUseDescription,允许在前台获取GPS的描述 NSLocationAlwaysUsageDescription,允许在

HTML5开发:地理位置定位指南

地理定位是HTML5提供的最令人激动的特性之一. 用相对简单的JavaScript代码,可以创建出能确定用户地理位置详细信息的Web应用,包括经纬度以及海拔等.一些Web应用甚至能通过监控用户位置随时间的移动来提供导航功能,其中还综合了GoogleMaps API这样的地图系统. 和所有HTML5的功能一样,你还不能依赖浏览器提供支持.而在浏览器提供支持的地方,它在深度和持续性上会有变化.本质上,你需要为那些浏览器不能为HTML5提供完全支持的用户提供替代功能. 在这篇教程里,我们会了解一些创建

关于iOS开发CLLocation中定位的一些小问题

困扰了我一周的CLLocation定位问题终于解决了,网上的很多关于CLLocation的文章都是iOS 7 的,按照上面的指导,仍然不能够调出定位功能,对于iOS 8 是需要作额外的添加的,废话不多说 1.首先,需要再 infoplist文件中 添加两个键: 1 2     NSLocationWhenInUseUsageDescription  :当app在前台的时候,才可以获取到定位信息     NSLocationAlwaysUsageDescription     :app在前台.后台

iOS开发系列--地图与定位-ios8

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

ios项目开发— iOS8 定位功能API改变

iOS8 定位新增功能 一.  Core Location framework的变化主要有以下几点:         1. 在定位状态中引入Always 和WhenInUse的概念.         2. 加入Visit monitoring的特性, 这类特性特别适合旅行类别的应用,当用户到达某个指定的区域内,monitor开始作用.         3.加入室内定位技术,增加CLFloor, 在室内可以得到楼层信息. 下面针对这三种分别详细的讲一下使用方法. 二..定位的种类分为: 持续的更新

iOS开发 定位服务与地图

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