iOS开发之CoreLocation框架使用(三)

简介: iOS开发之CoreLocation框架使用

六、地标数据模型CLPlacemark


   CLPlacemark是进行GEO编码后返回的地标对象,解析如下:


//初始化方法 使用另一个placemark拷贝

- (instancetype)initWithPlacemark:(CLPlacemark *) placemark;

//位置信息

@property (nonatomic, readonly, copy, nullable) CLLocation *location;

//区域范围信息

@property (nonatomic, readonly, copy, nullable) CLRegion *region;

//时区

@property (nonatomic, readonly, copy, nullable) NSTimeZone *timeZone;

//地理信息字典

@property (nonatomic, readonly, copy, nullable) NSDictionary *addressDictionary;

//地标名字

@property (nonatomic, readonly, copy, nullable) NSString *name;

//街道名字

@property (nonatomic, readonly, copy, nullable) NSString *thoroughfare;

//子街道名字

@property (nonatomic, readonly, copy, nullable) NSString *subThoroughfare;

//城镇

@property (nonatomic, readonly, copy, nullable) NSString *locality;

//子城镇

@property (nonatomic, readonly, copy, nullable) NSString *subLocality;

//州域信息

@property (nonatomic, readonly, copy, nullable) NSString *administrativeArea;

//子州域信息

@property (nonatomic, readonly, copy, nullable) NSString *subAdministrativeArea;

//邮编

@property (nonatomic, readonly, copy, nullable) NSString *postalCode;

//ISO国家编码

@property (nonatomic, readonly, copy, nullable) NSString *ISOcountryCode;

//国家

@property (nonatomic, readonly, copy, nullable) NSString *country;

//水域名称

@property (nonatomic, readonly, copy, nullable) NSString *inlandWater;

//海洋名称

@property (nonatomic, readonly, copy, nullable) NSString *ocean;

//相关的兴趣点数组

@property (nonatomic, readonly, copy, nullable) NSArray<NSString *> *areasOfInterest;

在CLPlacemark对象中有封装region对象,这个对象封装区域信息,如下:


//通过中心点和半径创建区域

- (instancetype)initCircularRegionWithCenter:(CLLocationCoordinate2D)center

          radius:(CLLocationDistance)radius

         identifier:(NSString *)identifier;

//区域中心

@property (readonly, nonatomic) CLLocationCoordinate2D center;

//半径

@property (readonly, nonatomic) CLLocationDistance radius;

//进入区域是否发出提醒  需要开启了位置区域监听

@property (nonatomic, assign) BOOL notifyOnEntry;

//离开区域是否发出提醒  需要开启了位置区域监听

@property (nonatomic, assign) BOOL notifyOnExit;

//检查某个点是否在区域内

- (BOOL)containsCoordinate:(CLLocationCoordinate2D)coordinate;

CLRegion类还有两个子类,CLCircularRegion类用来创建圆形区域,提供了一个便捷的初始化方法,其作用和CLRegion基本一致。CLBeaconRegion专门用来支持Beacon技术,Beacon技术是室内定位技术的一种,例如商场中有很多店铺,如果有店铺部署了Beacon发射设备,则当iOS设备作为接收设备靠近时会受到通知。CLBeaconRegion除了包含基础的区域信息外,还封装了与Beacon设备相关的设备码等信息。


七、区域访问功能


   在iOS8之前,如果我们想获取用户是否在某个区域停留了一段时间是比较困难的,可能要多次定位并进行整理和分析。在iOS8后,CoreLocation框架中提供了方便的方法来处理这个问题。


   首先,用户的区域停留可以理解为用户对某个区域进行了访问,开启和关闭访问监听十分方便,如下:


@interface CLLocationManager (CLVisitExtensions)

//开启服务

- (void)startMonitoringVisits;

//关闭服务

- (void)stopMonitoringVisits;

@end

开启后,当有相关的访问信息时,会回调代理中的相应函数,并且收到CLVisit对象,这个对象信息如下:


//访问开始时间

@property (nonatomic, readonly, copy) NSDate *arrivalDate;

//访问结束时间

@property (nonatomic, readonly, copy) NSDate *departureDate;

//位置

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

//精度

@property (nonatomic, readonly) CLLocationAccuracy horizontalAccuracy;

目录
相关文章
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
88 3
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2
|
3月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
39 0
|
8天前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
【4月更文挑战第18天】**Cocoa Touch** 是iOS和Mac OS X应用的核心框架,包含面向对象库、运行时系统和触摸优化工具。它提供Mac验证的开发模式,强调触控接口和性能,涵盖3D图形、音频、网络及设备访问API,如相机和GPS。是构建高效iOS应用的基础,对开发者至关重要。
12 0
|
23天前
|
开发工具 Swift iOS开发
利用SwiftUI构建动态用户界面:iOS开发新范式
【4月更文挑战第3天】 随着苹果不断推进其软件开发工具的边界,SwiftUI作为一种新兴的编程框架,已经逐渐成为iOS开发者的新宠。不同于传统的UIKit,SwiftUI通过声明式语法和强大的功能组合,为创建动态且响应式的用户界面提供了一种更加简洁高效的方式。本文将深入探讨如何利用SwiftUI技术构建具有高度自定义能力和响应性的用户界面,并展示其在现代iOS应用开发中的优势和潜力。
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
199 2
|
3月前
|
数据可视化 iOS开发
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
40 4
|
3月前
|
iOS开发
iOS开发解释 App 生命周期,包括各个阶段的调用顺序。
iOS开发解释 App 生命周期,包括各个阶段的调用顺序。
28 1
|
3月前
|
存储 安全 数据安全/隐私保护
IOS开发数据存储:解释一下 iOS 中的 Keychain,它的作用是什么?
IOS开发数据存储:解释一下 iOS 中的 Keychain,它的作用是什么?
90 4
|
3月前
|
存储 数据库 iOS开发
IOS开发数据存储:什么是 CoreData?如何在应用中使用它?
IOS开发数据存储:什么是 CoreData?如何在应用中使用它?
37 0