從上一篇中的實例了解所使用的一些元素:
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);
一
