获取当前位置(Core Location)

原创 2015年07月10日 09:25:04

Core Location框架提供了三种用于追踪设备当前位置的服务,Core Location框架从内置的蜂窝,Wi-Fi或者GPS来获取位置

  •  

    The significant-change location 

    service 提供了低耗电的方法来获取当前位置,当前位置改变时会发出通知
  • The standard location service 提供了一种可设置的方法来获取当前位置

  • Region monitoring 监视特定地区的跨越

如果程序必须使用位置服务
在程序的info.plist中添加UIRequiredDeviceCapabilities键,它是一个包含多个字符串的数组,然后添加location-services,gps字符串


1.The Standard Location Service 

[plain]
  1. Listing 1-1  Starting the standard location service  
  2. - (void)startStandardUpdates  
  3. {  
  4.     // 创建location manager  
  5.     if (nil == locationManager)  
  6.         locationManager = [[CLLocationManager alloc] init];  
  7.    
  8.     locationManager.delegate = self; 
[plain]
  1. <span style="font-size:16px;">  // 设置获取位置的精确度,越精确越耗电</span>  
[plain]
  1. <span style="font-size:16px;">    locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;  
  2.    
  3.     // 设置距离过滤器,超过次距离就更新一次位置  
  4.     locationManager.distanceFilter = 500;  
  5.    
  6.     [locationManager startUpdatingLocation];  
  7. }</span>  
使用location manager之前一般要检查位置服务是否可用,
[plain]
  1. <span style="font-size:16px;">+ (BOOL)locationServicesEnabled</span>  

当位置信息更新时,会给location manager发送消息

2.Significant-Change Location Service

[plain]
  1. <span style="font-size:16px;">- (void)startSignificantChangeUpdates  
  2. {  
  3.     // Create the location manager if this object does not  
  4.     // already have one.  
  5.     if (nil == locationManager)  
  6.         locationManager = [[CLLocationManager alloc] init];  
  7.    
  8.     locationManager.delegate = self;  
  9.     [locationManager startMonitoringSignificantLocationChanges];  
  10. }</span>  
可以叫醒在后台的程序


3.Region monitoring Service
使用之前调用CLLocationManager的regionMonitoringAvailable and regionMonitoringEnabled

[plain]
  1. <span style="font-size:16px;">- (BOOL)registerRegionWithCircularOverlay:(MyCircle*)overlay andIdentifier:(NSString*)identifier  
  2. {  
  3.    // Do not create regions if support is unavailable or disabled.  
  4.    if ( ![CLLocationManager regionMonitoringAvailable] ||  
  5.         ![CLLocationManager regionMonitoringEnabled] )  
  6.       return NO;  
  7.   
  8.    // If the radius is too large, registration fails automatically,  
  9.    // so clamp the radius to the max value.  
  10.    CLLocationDegrees radius = overlay.radius;  
  11.    if (radius > self.locationManager.maximumRegionMonitoringDistance)  
  12.       radius = self.locationManager.maximumRegionMonitoringDistance;  
  13.   
  14.    // Create the region and start monitoring it.  
  15.    CLRegion* region = [[CLRegion alloc] initCircularRegionWithCenter:overlay.coordinate  
  16.                         radius:radius identifier:identifier];  
  17.    [self.locationManager startMonitoringForRegion:region  
  18.                     desiredAccuracy:kCLLocationAccuracyHundredMeters];  
  19.   
  20.    [region release];  
  21.    return YES;  
  22. }</span>  
版权声明:本文为博主原创文章,未经博主允许不得转载。

Swift 使用CoreLocation获取定位与位置信息

大多数情况下APP会在开启应用的时候获取当前的位置,所以我写在APPDelegate里 第一步 import CoreLocation var locationManager = CLLoc...
  • walkerwqp
  • walkerwqp
  • 2017年04月01日 17:30
  • 1715

安卓学习笔记:获取我们当前所在的位置

申请权限在AndroidManifest.xml中添加如下权限 注意:在安卓6.0以上的系统中,这个权限属于危险权限,得动态去申请。这个我们到后面再详细介绍。LocationMange...
  • zjq_1314520
  • zjq_1314520
  • 2017年03月11日 15:06
  • 453

android获取位置location为null的问题

很多人经常遇到这种问题,主要是获取到位置的信息为null,第一个主要要有权限               第二个我们调用的方法是 Location location = locationManag...
  • jonemill
  • jonemill
  • 2014年12月19日 17:38
  • 522

Android获取当前位置,location为空

通过最后一次的地理位置来获得Location对象:location = locationManager.getLastKnownLocation(provider);得出location为空。查看各种...
  • belleliang
  • belleliang
  • 2014年03月06日 15:01
  • 4018

android API——LocationManager获取位置信息

android API——LocationManager介绍
  • zxc637841323
  • zxc637841323
  • 2017年04月16日 23:29
  • 1204

android定位:获取当前位置的经纬度

Android定位主要使用的是基于位置服务(Location Based Service)技术,有了 Android 系统作为载体,我们可以利用定位出的位置进行许多丰富多彩的操作,比如定位城市,根据我...
  • u011159417
  • u011159417
  • 2015年11月16日 15:21
  • 6177

获取手机的当前位置

获取手机的当前位置 在 Visual Studio 中创建新的 Windows Phone 应用。 在“解决方案资源管理器”中,展开“属性”文件夹,然后双击 WMAppMa...
  • hanjieson
  • hanjieson
  • 2013年03月26日 11:47
  • 3796

User Location获取用户当前的位置

步骤如下: 1.AndroidManifest.xml 2.LocationManager得到和用户定位相关的服务LocationManager locationManager=(Loca...
  • Never__mind
  • Never__mind
  • 2017年07月31日 17:33
  • 149

C#学习笔记:控件的Location属性值的设置与获取

用C#语言设计界面时,常常要设置或者获取控件的位置,这就需要用到Location属性。如果在窗口设计器的属性栏中设置属性值,那么再简单不过了。可是有时候,想要在程序运行时动态设置或获取控件的Locat...
  • qq_28249373
  • qq_28249373
  • 2017年05月26日 19:33
  • 2328

Html5结合百度地图获取当前位置

这里我使用的百度地图JavaScript1.4ban
  • u011109042
  • u011109042
  • 2014年05月14日 15:41
  • 5269
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取当前位置(Core Location)
举报原因:
原因补充:

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