CLLocation的属性以及使用的解释

Posted cxchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CLLocation的属性以及使用的解释相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/u012496940/article/details/47405345  上一篇的链接(一个定位实例)

从上一篇中的实例了解所使用的一些元素:

CLLcation不仅表示一个位置点,同一时候也是表示一个当时所具有的对应的属性和对应的一切内容,我们相同能够继承然后加入对应的属性给它 。eg:我能够添加温度,在那一个点,由于山上的高度,不同温度也不同,尽管能够从高度測算,可是也是一个属性,就像 CLLocationCoordinate2D(纯粹的一个位置点) 和经纬度一样.
总结:CLLocationCoordinate2D 二维点, 多维点(点+全部的环境元素)
CLLocationCoordinate2D < CLLocaiton

*****
看到那些生僻的定义点的属性类型的时候,这里一般上都是都是double类型的别名

//海拔,高度
@property(readonly, nonatomic) CLLocationDistance altitude;

//水平的准确度(负数无效)
@property(readonly, nonatomic) CLLocationAccuracy horizontalAccuracy;

//垂直的准确度(负数无效)
@property(readonly, nonatomic) CLLocationAccuracy verticalAccuracy;

//航向 、路径  取值为:0.0 ~ 359.9 真北方向表示:0.0
@property(readonly, nonatomic) CLLocationDirection course ;

//速度 m/s
@property(readonly, nonatomic) CLLocationSpeed speed ;

//时间
@property(readonly, nonatomic, copy) NSDate *timestamp;

//显示楼层的信息。假设当地支持的话
@property(readonly, nonatomic, copy) CLFloor *floor ;

//CLFloor中的一个属性,显示低第几层楼
@property(readonly, nonatomic) NSInteger level;

//位置的描写叙述。一般的对象都是能够调用这个属性来显示字符描写叙述
@property (nonatomic, readonly, copy) NSString *description;


//设置要求的精度是多少,精度也高,所须要的时间就越小,选择合适的是非常重要。

也就是一个点覆盖了多大的范围。


//*** 这里是用来给外部的使用的常量。由于extern这个keyword。我们通常是被manager来使用
extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation //这一般用于车载导航
extern const CLLocationAccuracy kCLLocationAccuracyBest;  //
extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters;
extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters;  //徒步比較合适
extern const CLLocationAccuracy kCLLocationAccuracyKilometer;
extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers;
eg:_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
即为要求的精度为最好的。


extern const CLLocationDistance CLLocationDistanceMax   //设置最远的大小
extern const NSTimeInterval CLTimeIntervalMax   //最大的时间间隔
extern const CLLocationCoordinate2D kCLLocationCoordinate2DInvalid   //位置点可用

externkeyword表示在其它的类中已经用过定义了这个变量。

功能:
一、CLLocation 对象创建以及初始化的三个方法
1、//经度、纬度 初始化一个 位置(Cllocation)对象(经常使用)
- (instancetype)initWithLatitude:(CLLocationDegrees)latitude
    longitude:(CLLocationDegrees)longitude;
    //CLLocationDegrees 这个就是double类型的别名

2、//经度,纬度、高度、水平和垂直精准度、时间点 初始化一个Cllocation对象
- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate
    altitude:(CLLocationDistance)altitude
    horizontalAccuracy:(CLLocationAccuracy)hAccuracy
    verticalAccuracy:(CLLocationAccuracy)vAccuracy
    timestamp:(NSDate *)timestamp;
//CLLocationCoordinate2D 就是经度和纬度的结构的体
以下是这个
//结构体。,包含经度和纬度
typedef struct {
    CLLocationDegrees latitude;//纬度
    CLLocationDegrees longitude;//精度
} CLLocationCoordinate2D;
@property(readonly, nonatomic) CLLocationCoordinate2D coordinate;
//结构体
//这种方法是用来设置经纬度的结构体的
CLLocationCoordinate2D CLLocationCoordinate2DMake(CLLocationDegrees latitude, CLLocationDegrees longitude);
BOOL CLLocationCoordinate2DIsValid(CLLocationCoordinate2D coord); //用来推断对应的经纬度的结构体能否够用

3、//经度,纬度、高度、水平和垂直精准度、时间点、航向、速度初始化一个位置对象
- (instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate
    altitude:(CLLocationDistance)altitude
    horizontalAccuracy:(CLLocationAccuracy)hAccuracy
    verticalAccuracy:(CLLocationAccuracy)vAccuracy
    course:(CLLocationDirection)course
    speed:(CLLocationSpeed)speed
    timestamp:(NSDate *)timestamp

二、求距离
//用来计算距离的,新的方法,旧的能够无论了
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_3_2);


以上是关于CLLocation的属性以及使用的解释的主要内容,如果未能解决你的问题,请参考以下文章

iOS CLLocation 属性不保留值

CLLocation高度属性在飞行中的有效性

Swift 从 CLLocation 获取 CLPlacemark

带有纬度和经度的 CLLocation 对象

CLLocation 类的课程值一直为 -1。为啥?

在 CoreData 中保存 Swift CLLocation