標籤:
兩個主要架構
map kit 用於地圖展示
core foundation 用於地理定位
LBS Location based service (基於定位的服務)
SoLoMo social local mobile
1.CLLocationManager
CLLocationManager的常用操作和屬性
開始使用者定位- (void)startUpdatingLocation;
停止使用者定位- (void) stopUpdatingLocation;
說明:當調用了startUpdatingLocation方法後,就開始不斷地定位使用者的位置,中途會頻繁地調用代理的下面方法
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
每隔多少米定位一次
@property(assign, nonatomic) CLLocationDistance distanceFilter;
2.CLLocation
CLLocation用來表示某個位置的地理資訊,比如經緯度、海拔等等
(1)經緯度
@property(readonly, nonatomic) CLLocationCoordinate2D coordinate;
(2)海拔
@property(readonly, nonatomic) CLLocationDistance altitude;
(3)路線,航向(取值範圍是0.0° ~ 359.9°,0.0°代表真北方向)
@property(readonly, nonatomic) CLLocationDirection course;
(4)行走速度(單位是m/s)
@property(readonly, nonatomic) CLLocationSpeed speed;
(5)計算2個位置之間的距離
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location方法
定位精確度(越精確就越耗電)
@property(assign, nonatomic) CLLocationAccuracy desiredAccuracy;
3.CLLocationCoordinate2D
CLLocationCoordinate2D是一個用來表示經緯度的結構體,定義如下
typedef struct {
CLLocationDegrees latitude; // 緯度
CLLocationDegrees longitude; // 經度
} CLLocationCoordinate2D;
一般用CLLocationCoordinate2DMake函數來建立CLLocationCoordinate2D
if ([CLLocationManager locationServicesEnabled]) {
[self.locMgr startUpdatingLocation];
self.locMgr.distanceFilter = kCLDistanceFilterNone;
self.locMgr.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
}
代理
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
iOS學習筆記8-地圖開發