iOS地圖定位

一拭荤、定位。
1),iOS8以后,請求定位時候,需要在info.plist文件里加入一個字段说墨。
//NSLocationAlwaysUsageDescription(一直定位,后臺的也能定位)
//NSLocationWhenInUseUsageDescription(使用的時候定位)
2),如果需要使用定位富稻,需要導(dǎo)入CoreLocation框架筒狠。

import <CoreLocation/CoreLocation.h>

遵守代理<CLLocationManagerDelegate>
_locationManager.delegate = self;

初始化定位管理器


    _locationManager = [[CLLocationManager alloc] init];
    //在ios8以后,請求定位需要調(diào)用下面的方法
    //做版本判斷是因為低版本調(diào)用高版本的方法抛蚁,會出現(xiàn)崩潰
    if ([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0) {
        //一直定位
        [_locationManager requestAlwaysAuthorization];
        //用時定位
        [_locationManager requestWhenInUseAuthorization];
    }
    //當用戶移動50米時陈醒,會調(diào)用一次代理方法[定位一次]
    
    _locationManager.distanceFilter = 50;
    //設(shè)置定位的精確度,精確度越高瞧甩,越費電
    _locationManager.desiredAccuracy = kCLLocationAccuracyBest;

實現(xiàn)代理方法

    钉跷。
//授權(quán)結(jié)果
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
    if (status == kCLAuthorizationStatusNotDetermined) {
        NSLog(@"等待用戶授權(quán)");
    }else if(status == kCLAuthorizationStatusAuthorizedAlways ||
             status == kCLAuthorizationStatusAuthorizedWhenInUse){
        NSLog(@"授權(quán)成功");
        //開始更新用戶的位置信息,一旦調(diào)用了這個方法亲配,就會不斷地獲取用戶的位置信息
        [_locationManager startUpdatingLocation];
        
    }else{
        NSLog(@"授權(quán)失敗");
    }
}
//定位成功
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
    //數(shù)組中最后的元素是最新的定位
    //拿到用戶最新的位置信息
    //按時間排序尘应,如果想要拿到最新的位置信息,如果想要拿到最新的位置信息吼虎,直接拿到最后一個
    CLLocation *currentLocation = [locations lastObject];
    //把最新的位置信息賦值給_location
    _location = currentLocation;
    
    //比如:獲取用戶所在的城市犬钢,只需要一次
    //停止更新用戶的位置信息
//    [manager stopUpdatingLocation];
}

//定位失敗
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    
    NSLog(@"失敗");
    NSLog(@"%@",error.userInfo);
}

正向地理編碼

地址轉(zhuǎn)換為經(jīng)緯度稱為正向地理編碼

//創(chuàng)建編碼對象
 CLGeocoder *geoCoder = [[CLGeocoder alloc] init];
    //正向地理編碼
    NSString *str = @"地址字符串";
    [geoCoder geocodeAddressString:str completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        if (placemarks.count == 0) {
            return ;
        }
        CLPlacemark *placeMark = [placemarks lastObject];
       
        NSLog(@"緯度%lf",placeMark.location.coordinate.latitude);
        NSLog(@"經(jīng)度%lf",placeMark.location.coordinate.longitude);
    }];

反向地理編碼

將經(jīng)緯度轉(zhuǎn)換成詳細的地址。

//創(chuàng)建編碼對象
    CLGeocoder *geoCoder = [[CLGeocoder alloc] init];
    //反向地理變量    
//_location :一個地理位置的
    [geoCoder reverseGeocodeLocation:_location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        if (placemarks.count == 0) {
            return ;
        }
        //地標  里面封住了詳細的地址信息
        CLPlacemark *placeMark = placemarks[0];
        NSLog(@"%@",placeMark.addressDictionary);
        //addressDictionary  詳細的位置信息
    }];

通過兩個地理位置計算之間距離

CLLocation *location1 = [[CLLocation alloc] initWithLatitude:34.772108 longitude:113.675915];
    CLLocation *location2 = [[CLLocation alloc] initWithLatitude:34.772478 longitude:113.678005];
    
    //計算兩個經(jīng)緯度之間的距離 單位是米
    CLLocationDistance distance = [location1 distanceFromLocation:location2];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末思灰,一起剝皮案震驚了整個濱河市玷犹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洒疚,老刑警劉巖歹颓,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坯屿,死亡現(xiàn)場離奇詭異,居然都是意外死亡巍扛,警方通過查閱死者的電腦和手機领跛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撤奸,“玉大人吠昭,你說我怎么就攤上這事‰使希” “怎么了矢棚?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長府喳。 經(jīng)常有香客問我蒲肋,道長,這世上最難降的妖魔是什么钝满? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任兜粘,我火速辦了婚禮,結(jié)果婚禮上舱沧,老公的妹妹穿的比我還像新娘妹沙。我一直安慰自己,他們只是感情好熟吏,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布距糖。 她就那樣靜靜地躺著,像睡著了一般牵寺。 火紅的嫁衣襯著肌膚如雪悍引。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天帽氓,我揣著相機與錄音趣斤,去河邊找鬼。 笑死黎休,一個胖子當著我的面吹牛浓领,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播势腮,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼联贩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了捎拯?” 一聲冷哼從身側(cè)響起泪幌,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后祸泪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吗浩,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年没隘,在試婚紗的時候發(fā)現(xiàn)自己被綠了懂扼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡右蒲,死狀恐怖微王,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情品嚣,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布钧大,位于F島的核電站翰撑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏啊央。R本人自食惡果不足惜眶诈,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓜饥。 院中可真熱鬧逝撬,春花似錦、人聲如沸乓土。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趣苏。三九已至狡相,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間食磕,已是汗流浹背尽棕。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留彬伦,地道東北人滔悉。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像单绑,于是被迫代替她去往敵國和親回官。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

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

  • 前言 越來越多的app帶有地圖定位功能询张,本文分析CoreLocation,讓你快速上手地圖定位技術(shù)孙乖。 定位 一次定...
    codychen123閱讀 634評論 1 8
  • 定位 常用方法的介紹 CLLocationManager位置管理器,我們的有關(guān)于位置的方法和屬性都是通過它來管理設(shè)...
    Joker_King閱讀 1,272評論 0 3
  • title : IOS地圖定位導(dǎo)航category : UI 地圖定位導(dǎo)航 標簽(空格分隔): IOS 概述 I...
    袁俊亮技術(shù)博客閱讀 2,142評論 3 10
  • 出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 現(xiàn)在很多社交、...
    JJO閱讀 4,139評論 4 19
  • 簡介 在移動互聯(lián)網(wǎng)時代唯袄,移動app能解決用戶的很多生活瑣事弯屈,比如 周邊:找餐館、找KTV恋拷、找電影院等等 導(dǎo)航:根據(jù)...
    JonesCxy閱讀 1,207評論 1 1