ps:這是個(gè)人學(xué)習(xí)筆記,如果路過(guò)的大神可指教幾句,茂茂不勝感激!
如果就地圖定位而言,只需要設(shè)置三個(gè)步驟:(當(dāng)然導(dǎo)入CLLocation框架頭文件那是必須的):
1.創(chuàng)建CLLocationManager對(duì)象
2.成為CLLocationManager的代理
3.開(kāi)始監(jiān)聽(tīng)即可
——————以上對(duì)iOS8之前的系統(tǒng)有效—————
對(duì)于最新的iOS8及以后,Apple加強(qiáng)了隱私訪問(wèn)權(quán)限的控制,必須調(diào)用新的方法來(lái)獲取用戶的允許:
1.調(diào)用 [self.manager requestAlwaysAuthorization]; 申請(qǐng)用戶授權(quán)
2.需要在info.plist文件中增加:
?NSLocationWhenInUseUsageDescription? BOOL YES ? ? ? ? ? ? ? ? ?NSLocationAlwaysUsageDescription? ? ? ? string “提示描述”
ps:“提示描述”會(huì)出現(xiàn)在請(qǐng)求用戶授權(quán)時(shí)候的界面上
通過(guò)以上設(shè)置之后,就可以正常使用地圖定位了,可以在代理方法:(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray*)locations得到最新的位置信息
=====================主要代碼=======================
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
[self.manager requestAlwaysAuthorization];? //調(diào)用了這句,就會(huì)彈出允許框了.
}
self.manager.delegate = self;
//設(shè)置多久獲取一次位置信息,如果不設(shè)置,默認(rèn)一直獲取信息,這一點(diǎn)非常重要,會(huì)默認(rèn)一直獲取地理位置信息,耗電會(huì)非???/p>
self.manager.distanceFilter = 100; //控制更新位置頻率,單位“米”
/**
*
kCLLocationAccuracyBestForNavigation//最佳導(dǎo)航
kCLLocationAccuracyBest;//最精準(zhǔn)
kCLLocationAccuracyNearestTenMeters //十米
kCLLocationAccuracyHundredMeters; //百米
kCLLocationAccuracyKilometer; //千米
kCLLocationAccuracyThreeKilometers;? //3公里
*/
//控制定位精度越高 耗電量越大。
self.manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[self.manager startUpdatingLocation];