您的位置:首页 > 其它

CLLocation的属性以及使用的解释

2015-08-14 16:45 281 查看
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这个关键字,我们一般是被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 //位置点可用

extern关键字表示在其他的类中已经用过定义了这个变量。

功能:

一、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_***AILABLE_STARTING(__MAC_10_6,__IPHONE_3_2);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: