iOS開(kāi)發(fā)高級(jí)進(jìn)階(#12-13)位置、搖一搖睹酌、通知

地理位置信息

啟用CoreLocation

1.在Info.plist中寫(xiě)明對(duì)設(shè)備的要求

1

2.在Info.plist中選擇提示用戶授權(quán)的信息
可以設(shè)定When或者Always

2-1
2-2

3.在viewDidLoad中添加

    self.locationManager = [CLLocationManager new];
    [self.locationManager requestWhenInUseAuthorization];
    //or
    //[self.locationManager requestAlwaysInUseAuthorization];

4.確認(rèn)是否獲得用戶允許

    [CLLocationManager authorizationStatus];

5.每次啟動(dòng)時(shí)可以先判斷用戶是否曾經(jīng)允許過(guò)

    [CLLocationManager locationServicesEnabled];

使用CoreLocation(地址信息)

//delegate:
 @interface ViewController () <CLLocationManagerDelegate, MKMapViewDelegate>

 @property (strong, nonatomic) CLLocationManager * locationManager;

 if ( !self.locationManager ){
      self.locationManager = [CLLocationManager new];
}

self.locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;//精度
self.locationManager.distanceFilter = kCLDistanceFilterNone; // 任何
self.locationManager.delegate = self;
[self.locationManager requestWhenInUseAuthorization];

 //精確    
 [self.locationManager startUpdatingLocation];


 //500米以上變化邓尤,每5分鐘不超過(guò)一次通知
//[self.locationManager startMonitoringSignificantLocationChanges];

//區(qū)域模式  
//[self.locationManage startMonitoringForRegion:<#(nonnull CLRegion *)#>];

//Visit 模式(略)

位置變動(dòng)后的處理

//位置變動(dòng)后的處理
-(void)locationManager:(CLLocationManager *)manager 
    didUpdateLocations:(nonnull NSArray<CLLocation *> *)locations {
        CLLocation * location = locations[0];//當(dāng)前位置

        self.locationLabel.text = [NSString stringWithFormat:@"Location: {%lf , %lf} ^%lf) Direction=%lf degree, Floor=%d",
                         location.coordinate.longitude,//經(jīng)度
                         location.coordinate.latitude,//緯度
                         location.altitude,//海拔
                         location.course,//方向
                         (int)location.floor.level//樓層
                         ];
        }

地圖顯示

實(shí)現(xiàn)

1.打開(kāi)功能(TARGETS)


打開(kāi)功能

2.把MKMapView放到界面

地圖坐標(biāo)系理論知識(shí)

iOS里有3個(gè)坐標(biāo)系

  • 地理坐標(biāo)

  • Mercator投影坐標(biāo)

  • UIView的視圖坐標(biāo)系

      //經(jīng)緯度坐標(biāo)系和Mercator投影坐標(biāo)系換算
      MKMapPointForCoordinate(<#CLLocationCoordinate2D coordinate#>)
      MKCoordinateForMapPoint(<#MKMapPoint mapPoint#>)
    
MKMapView類型
MKMapView類型
MKMapView 用法
  • 基本用法同一般的UIView

    • 配置:顯示區(qū)域

      //經(jīng)緯度
      .region:顯示區(qū)域
      .centerCoordinate:不改變區(qū)域大小
      
       //Mercator地圖坐標(biāo)
      .visibleMapRect,edgePaddings
      
    • 顯示用戶位置

        .showsUserLocation
      
    • 委托.delegate

MKMapView 標(biāo)注
  • MKPoinAnnotation

    .coordinate//放哪里
    .title/.subtitle//默認(rèn)選中信息
    [MKMapView addAnnotation:];//加載
    
  • MKAnnotationView:怎么展示
    content:image or subclass , .canShowCallout
    mapView.delegate

  • 供應(yīng):mapView:viewForAnnotation:
    標(biāo)準(zhǔn)視圖 MKPinAnnotationView
    通知: mapView:didAddAnnotationView

MKMapView -更多

      self.locationManager = [CLLocationManager new];
      [self.locationManager requestWhenInUseAuthorization];

      self.mapView.delegate = self;
      self.mapView.mapType = MKMapTypeHybridFlyover;
      self.mapView.showsUserLocation = YES;
      //self.mapView.visibleMapRect = MKMapRectMake(0, 0, 200000, 200000);
      self.mapView.region = MKCoordinateRegionMake(self.mapView.centerCoordinate,     MKCoordinateSpanMake(1, 1));
      if (!self.mapView.userLocationVisible) {
        self.mapView.centerCoordinate = self.mapView.userLocation.coordinate;//移動(dòng)地圖位置
        MKCircle * circle = [MKCircle circleWithCenterCoordinate:self.mapView.centerCoordinate radius:1000];
        [self.mapView addOverlay:circle];
      }

    MKCircle * circle = [MKCircle circleWithCenterCoordinate:location.coordinate radius:200];
    [self.mapView addOverlay:circle];
    [UIView animateWithDuration:1.0 animations:^{
    self.mapView.centerCoordinate = location.coordinate;
    }];

    MKPointAnnotation * point = [[MKPointAnnotation alloc] init];
    point.coordinate = location.coordinate;
    point.title = @"You are here!";
    [self.mapView addAnnotation:point];

    [self.locationManager stopUpdatingLocation];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拍鲤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汞扎,更是在濱河造成了極大的恐慌季稳,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澈魄,死亡現(xiàn)場(chǎng)離奇詭異景鼠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)痹扇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)铛漓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人鲫构,你說(shuō)我怎么就攤上這事浓恶。” “怎么了结笨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵包晰,是天一觀的道長(zhǎng)湿镀。 經(jīng)常有香客問(wèn)我,道長(zhǎng)伐憾,這世上最難降的妖魔是什么勉痴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮树肃,結(jié)果婚禮上蒸矛,老公的妹妹穿的比我還像新娘。我一直安慰自己胸嘴,他們只是感情好雏掠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著筛谚,像睡著了一般磁玉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驾讲,一...
    開(kāi)封第一講書(shū)人閱讀 50,084評(píng)論 1 291
  • 那天蚊伞,我揣著相機(jī)與錄音,去河邊找鬼吮铭。 笑死时迫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谓晌。 我是一名探鬼主播掠拳,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼纸肉!你這毒婦竟也來(lái)了溺欧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柏肪,失蹤者是張志新(化名)和其女友劉穎姐刁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體烦味,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡聂使,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谬俄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柏靶。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖溃论,靈堂內(nèi)的尸體忽然破棺而出屎蜓,到底是詐尸還是另有隱情,我是刑警寧澤钥勋,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布梆靖,位于F島的核電站控汉,受9級(jí)特大地震影響笔诵,放射性物質(zhì)發(fā)生泄漏返吻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一乎婿、第九天 我趴在偏房一處隱蔽的房頂上張望测僵。 院中可真熱鬧,春花似錦谢翎、人聲如沸捍靠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)榨婆。三九已至,卻和暖如春褒侧,著一層夾襖步出監(jiān)牢的瞬間良风,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工闷供, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烟央,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓歪脏,卻偏偏與公主長(zhǎng)得像疑俭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子婿失,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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