iOS 百度定位(擷取經緯度)

來源:互聯網
上載者:User
由於系統原因,iOS不允許使用第三方定位,因此地圖SDK中的定位方法,本質上是對原生定位的二次封裝。通過封裝,開發人員可更便捷的使用。此外,地圖SDK中還提供了相應的定位元影像層(支援定位三態效果),協助開發人員顯示當前位置資訊。

註:自iOS8起,系統定位功能進行了升級,SDK為了實現最新的適配,自v2.5.0起也做了相應的修改,開發人員在使用定位功能之前,需要在info.plist裡添加(以下二選一,兩個都添加預設使用NSLocationWhenInUseUsageDescription):

NSLocationWhenInUseUsageDescription ,允許在前台使用時擷取GPS的描述

NSLocationAlwaysUsageDescription ,允許永久使用GPS的描述

定位功能可以和地圖功能分離使用,單獨的定位功能使用方式如下:

首先添加SDK到工程中... ...   

添加標頭檔  #import <BaiduMapAPI_Location/BMKLocationService.h> 

添加代理  BMKLocationServiceDelegate

-(void)viewDidLoad  

{    

    //初始化BMKLocationService  

    _locService = [[BMKLocationService alloc]init];  

    _locService.delegate = self;  

    //啟動LocationService  

    [_locService startUserLocationService];  

}   

//實現相關delegate 處理位置資訊更新  

//處理位置座標更新(秒更新,如果只是需要擷取一次,在定位成功後停止定位或把delegate設定成nil)
//停止定位命令如下([self.locService stopUserLocationService];) 

- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation  

     //NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);  

}  

//如果只需要擷取當前的經緯度 那麼下面2條命令可忽略

//處理方向變更資訊  

- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation  

{  

    //NSLog(@"heading is %@",userLocation.heading);  

}   

展示定位資訊的功能位於“地圖和覆蓋物”這個功能模組,在使用時要注意選擇。核心代碼如下:

//以下_mapView為BMKMapView對象  

_mapView.showsUserLocation = YES;//顯示定位元影像層  

[_mapView updateLocationData:userLocation]; 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.