IOS中CoreLocation框架地理定位
1.CoreLocation框架使用前提:
#import <CoreLocation/CoreLocation.h>
CoreLocation框架中所有數據類型的前綴都是CL ,CoreLocation中使用CLLocationManager對象來做用戶定位
2.CLLocationManager的常用操作:
開始用戶定位 - (void)startUpdatingLocation;
停止用戶定位 - (void) stopUpdatingLocation;
當調用了startUpdatingLocation方法后,就開始不斷地定位用戶的位置,中途會頻繁地調用代理的下面方法
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
locations參數里面裝著CLLocation對象
3.
CLLocation用來表示某個位置的地理信息,比如經緯度、海拔等等
@property(readonly, nonatomic) CLLocationCoordinate2D coordinate; 經緯度
@property(readonly, nonatomic) CLLocationDistance altitude; 海拔
@property(readonly, nonatomic) CLLocationDirection course; 路線,航向(取值范圍是0.0° ~ 359.9°,0.0°代表真北方向)
@property(readonly, nonatomic) CLLocationSpeed speed; 行走速度(單位是m/s)
用- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location方法可以計算2個位置之間的距離
@property(assign, nonatomic) CLLocationDistance distanceFilter; 每隔多少米定位一次
@property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 定位精確度(越精確就越耗電)
CLLocationCoordinate2D是一個用來表示經緯度的結構體,定義如下
typedef struct { CLLocationDegrees latitude; // 緯度 CLLocationDegrees longitude; // 經度 } CLLocationCoordinate2D;
一般用CLLocationCoordinate2DMake函數來創建CLLocationCoordinate2D
4.
如果是模擬器,需要設置模擬位置(經緯度) 天朝帝都的經緯度是:北緯40°,東經116°
5.
使用CLGeocoder可以完成“地理編碼”和“反地理編碼” 地理編碼:根據給定的地名,獲得具體的位置信息(比如經緯度、地址的全稱等)
反地理編碼:根據給定的經緯度,獲得具體的位置信息 地理編碼方法
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
反地理編碼方法
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;
當地理\反地理編碼完成時,就會調用CLGeocodeCompletionHandler typedef void (^CLGeocodeCompletionHandler)(NSArray *placemarks, NSError *error);
這個block傳遞2個參數 error :當編碼出錯時(比如編碼不出具體的信息)有值 placemarks :里面裝著CLPlacemark對象
CLPlacemark的字面意思是地標,封裝詳細的地址位置信息
@property (nonatomic, readonly) CLLocation *location; 地理位置
@property (nonatomic, readonly) CLRegion *region; 區域
@property (nonatomic, readonly) NSDictionary *addressDictionary;詳細的地址信息
@property (nonatomic, readonly) NSString *name; 地址名稱
@property (nonatomic, readonly) NSString *locality; 城市
?
轉載于:https://www.cnblogs.com/transcendent/p/4804001.html
總結
以上是生活随笔為你收集整理的IOS中CoreLocation框架地理定位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一克钻石多少钱啊?
- 下一篇: 古力娜扎QQ号是多少?