iOS-定位當(dāng)前城市

1.導(dǎo)入框架

<pre>

import <CoreLocation/CoreLocation.h>

</pre>

2.定義對(duì)象

<pre>
@property(nonatomic,strong)CLLocationManager *locationManager;
</pre>

3.開始定位

<pre>
//定位服務(wù)
-(void)LocationService
{

if ([CLLocationManager locationServicesEnabled]) {
    // 初始化定位管理器
    self.locationManager=[[CLLocationManager alloc]init];
    self.locationManager.delegate=self;
    // 設(shè)置定位精確度到千米
    self.locationManager.desiredAccuracy=kCLLocationAccuracyKilometer;
    // 設(shè)置過濾器為無
    self.locationManager.distanceFilter=kCLDistanceFilterNone;
    //這句話ios8以上版本使用
    [ self.locationManager requestAlwaysAuthorization];
    //開始定位
    [ self.locationManager startUpdatingLocation];
} else {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"無法定位" message:@"請(qǐng)檢查你的設(shè)備是否開啟定位功能" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
    [alert show];
}

}
</pre>

4.代理方法

<pre>

pragma mark--定位代理

  • (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
    {

    // 獲取當(dāng)前所在的城市名
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    //根據(jù)經(jīng)緯度反向地理編譯出地址信息
    [geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray*array, NSError *error){
    if (array.count > 0){
    CLPlacemark *placemark = [array objectAtIndex:0];

          //獲取城市
          NSString \*city = placemark.locality;
          if (!city) {
              //四大直轄市的城市信息無法通過locality獲得,只能通過獲取省份的方法來獲得(如果city為空,則可知為直轄市)
              city = placemark.administrativeArea;
          }
          NSLog(@"city = %@", city);
          self.cityLabel.text=city;
    

//
}
else if (error == nil && [array count] == 0)
{
NSLog(@"No results were returned.");
}
else if (error != nil)
{
NSLog(@"An error occurred = %@", error);
}
}];
//系統(tǒng)會(huì)一直更新數(shù)據(jù),直到選擇停止更新,因?yàn)槲覀冎恍枰@得一次經(jīng)緯度即可,所以獲取之后就停止更新
[manager stopUpdatingLocation];
}
</pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、首先在plist表里邊添加Privacy - Location Usage Description和NSLoc...
    綰青絲1219閱讀 871評(píng)論 0 3
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 以前對(duì)杰倫的歌的喜愛程度還沒那么深,聽到別人空間或說說更新顯示了喜愛的歌曲和正在聽的音樂的杰倫其他自身沒聽過的歌,...
    君一閱讀 179評(píng)論 0 0
  • 介紹了在Android Studio中配置NDK的開發(fā)環(huán)境:Android Studio NDK開發(fā)-環(huán)境配置,N...
    0xSen閱讀 624評(píng)論 0 2

友情鏈接更多精彩內(nèi)容