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);



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM