學(xué)習(xí)筆記:CLLocationManager

通過(guò)懶加載創(chuàng)建LocationManager:
// 懶加載

  • (CLLocationManager *)locationManager
    {
    if (_locationManager == nil) {
    // 創(chuàng)建
    _locationManager = [[CLLocationManager alloc] init];
    // 設(shè)置代理
    _locationManager.delegate = self;
    // 每隔多少M(fèi) 定位一次
    // _locationManager.distanceFilter = 100;

      /**
       kCLLocationAccuracyBestForNavigation // 最適合導(dǎo)航
       kCLLocationAccuracyBest; // 最好的
       kCLLocationAccuracyNearestTenMeters; // 10m
       kCLLocationAccuracyHundredMeters; // 100m
       kCLLocationAccuracyKilometer; // 1000m
       kCLLocationAccuracyThreeKilometers; // 3000m
       */
      // 精度越高越耗電
      _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
      // 當(dāng)使用的時(shí)候
      [_locationManager requestWhenInUseAuthorization];
      // 一直使用
    

// [_locationManager requestAlwaysAuthorization];

}
return _locationManager;

}

locationManager的代理方法
// 獲取地理位置

  • (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation > )locations
    {
    NSLog(@"定位到了");
    NSLog(@"%@",locations.lastObject);
    /
    • CLLocation 詳解
    • coordinate : 經(jīng)緯度
    • altitude : 海拔
    • course : 航向
    • speed ; 速度
      */
      CLLocation *location = locations.lastObject;

// CLLocation *locationNew = [CLLocation alloc] initWithLatitude: longitude:<#(CLLocationDegrees)#>
[self.geocoder reverseGeocodeLocation:locations.lastObject completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {

    CLPlacemark *placemark = placemarks.firstObject;
    NSLog(@"%@",placemark.addressDictionary);
    self.cityLabel.text = placemark.addressDictionary[@"City"];
    self.streetLabel.text = placemark.addressDictionary[@"Street"];
    self.guizhidaoLabel.text = placemark.addressDictionary[@"Name"];
}];

}
// 授權(quán)發(fā)生改變時(shí)會(huì)調(diào)用

  • (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
    {
    switch (status) {
    // 用戶(hù)還未決定
    case kCLAuthorizationStatusNotDetermined:
    {
    NSLog(@"用戶(hù)還未決定");
    break;
    }
    // 訪問(wèn)受限
    case kCLAuthorizationStatusRestricted:
    {
    NSLog(@"訪問(wèn)受限");
    break;
    }
    // 定位關(guān)閉時(shí)和對(duì)此APP授權(quán)為never時(shí)調(diào)用
    case kCLAuthorizationStatusDenied:
    {
    // 定位是否可用(是否支持定位或者定位是否開(kāi)啟)
    if([CLLocationManager locationServicesEnabled])
    {
    NSLog(@"定位開(kāi)啟蘑斧,但被拒");
    }else
    {
    NSLog(@"定位關(guān)閉竖瘾,不可用");
    }
    // NSLog(@"被拒");
    break;
    }
    // 獲取前后臺(tái)定位授權(quán)
    case kCLAuthorizationStatusAuthorizedAlways:
    // case kCLAuthorizationStatusAuthorized: // 失效花颗,不建議使用
    {
    NSLog(@"獲取前后臺(tái)定位授權(quán)");
    break;
    }
    // 獲得前臺(tái)定位授權(quán)
    case kCLAuthorizationStatusAuthorizedWhenInUse:
    {
    NSLog(@"獲得前臺(tái)定位授權(quán)");
    break;
    }
    default:
    break;
    }

}

pragma mark 根據(jù)地名確定地理坐標(biāo)

-(void)getCoordinateByAddress:(NSString *)address{
//地理編碼
[_geocoder geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
//取得第一個(gè)地標(biāo)乐横,地標(biāo)中存儲(chǔ)了詳細(xì)的地址信息今野,注意:一個(gè)地名可能搜索出多個(gè)地址
CLPlacemark *placemark=[placemarks firstObject];

    CLLocation *location=placemark.location;//位置
    CLRegion *region=placemark.region;//區(qū)域
    NSDictionary *addressDic= placemark.addressDictionary;//詳細(xì)地址信息字典,包含以下部分信息

// NSString *name=placemark.name;//地名
// NSString *thoroughfare=placemark.thoroughfare;//街道
// NSString *subThoroughfare=placemark.subThoroughfare; //街道相關(guān)信息条霜,例如門(mén)牌等
// NSString *locality=placemark.locality; // 城市
// NSString *subLocality=placemark.subLocality; // 城市相關(guān)信息宰睡,例如標(biāo)志性建筑
// NSString *administrativeArea=placemark.administrativeArea; // 州
// NSString *subAdministrativeArea=placemark.subAdministrativeArea; //其他行政區(qū)域信息
// NSString *postalCode=placemark.postalCode; //郵編
// NSString *ISOcountryCode=placemark.ISOcountryCode; //國(guó)家編碼
// NSString *country=placemark.country; //國(guó)家
// NSString *inlandWater=placemark.inlandWater; //水源拆内、湖泊
// NSString *ocean=placemark.ocean; // 海洋
// NSArray *areasOfInterest=placemark.areasOfInterest; //關(guān)聯(lián)的或利益相關(guān)的地標(biāo)
NSLog(@"位置:%@,區(qū)域:%@,詳細(xì)信息:%@",location,region,addressDic);
}];
}

pragma mark 根據(jù)坐標(biāo)取得地名

-(void)getAddressByLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude{
//反地理編碼
CLLocation *location=[[CLLocation alloc]initWithLatitude:latitude longitude:longitude];
[_geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
CLPlacemark *placemark=[placemarks firstObject];
NSLog(@"詳細(xì)信息:%@",placemark.addressDictionary);
}];
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市抹沪,隨后出現(xiàn)的幾起案子融欧,更是在濱河造成了極大的恐慌噪馏,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隅要,死亡現(xiàn)場(chǎng)離奇詭異步清,居然都是意外死亡廓啊,警方通過(guò)查閱死者的電腦和手機(jī)封豪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)吹埠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)缘琅,“玉大人,你說(shuō)我怎么就攤上這事翩隧∩胛疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蔗怠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我最住,道長(zhǎng)涨缚,這世上最難降的妖魔是什么脓魏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮珊燎,結(jié)果婚禮上悔政,老公的妹妹穿的比我還像新娘谋国。我一直安慰自己芦瘾,他們只是感情好近弟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布溺拱。 她就那樣靜靜地躺著,像睡著了一般沐扳。 火紅的嫁衣襯著肌膚如雪躯嫉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天屋吨,我揣著相機(jī)與錄音,去河邊找鬼至扰。 笑死鳍徽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的敢课。 我是一名探鬼主播阶祭,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼直秆!你這毒婦竟也來(lái)了胖翰?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤切厘,失蹤者是張志新(化名)和其女友劉穎萨咳,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體疫稿,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡培他,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了遗座。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舀凛。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖途蒋,靈堂內(nèi)的尸體忽然破棺而出猛遍,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布懊烤,位于F島的核電站梯醒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腌紧。R本人自食惡果不足惜茸习,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壁肋。 院中可真熱鬧号胚,春花似錦、人聲如沸浸遗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)跛锌。三九已至杜漠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間察净,已是汗流浹背驾茴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氢卡,地道東北人锈至。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像译秦,于是被迫代替她去往敵國(guó)和親峡捡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氯檐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一慨亲、定位介紹 現(xiàn)在很多社交、電商劫瞳、團(tuán)購(gòu)應(yīng)用都引入了地圖和定位功能阁吝,似乎地圖功能不再是地圖應(yīng)用和導(dǎo)航應(yīng)用所特有的砚婆。的...
    LHsunshine閱讀 311評(píng)論 0 0
  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 現(xiàn)在很多...
    大崔老師閱讀 3,278評(píng)論 1 2
  • CoreLocation框架 一. iOS8.0之前的定位(?????) 1. 前臺(tái)定位 導(dǎo)入CoreLocati...
    0271fb6f797c閱讀 521評(píng)論 0 1
  • CoreLocation框架 一. iOS8.0之前的定位(?????) 1. 前臺(tái)定位 導(dǎo)入CoreLocati...
    Jack__yang閱讀 218評(píng)論 0 4
  • 事實(shí)上装盯,在年少的時(shí)候,我也有過(guò)不將就的階段甲馋,每一道題都要會(huì)做埂奈,每一個(gè)不懂的知識(shí)點(diǎn)都有反復(fù)專(zhuān)研,那段時(shí)間學(xué)習(xí)生活是有...
    擬孖閱讀 187評(píng)論 0 0