天天看點

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這個關鍵字,我們一般是被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_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_3_2);