iOS獲取經緯度


在ios8.0以上獲取經緯度時,需要申請授權,否則不能定位
 
第一步:
在 HomeViewController.m
@interfaceHomeViewController ()<CLLocationManagerDelegate>
{   
    //定位
    CLLocationManager *_locationManager;//用於獲取位置
    CLLocation *_checkLocation;//用於保存位置信息
    
    double _latitude;//經度
    double _longitude;//維度
   
}
 
 
第二步:
//設置定位
-(void)setupLocationManager{
    _latitude = LATITUDE_DEFAULT;//設置默認的值
    _longitude =LONGITUDE_DEFAULT;
    _locationManager = [[CLLocationManageralloc]init];
    
    if ([CLLocationManagerlocationServicesEnabled]) {
        NSLog(@"開始定位");
        _locationManager.delegate = self;
        // distanceFilter是距離過濾器,為了減少對定位裝置的輪詢次數,位置的改變不會每次都去通知委托,而是在移動了足夠的距離時才通知委托程序
        //它的單位是米,這里設置為至少移動1000再通知委托處理更新;
        _locationManager.distanceFilter = 200.0;
        // kCLLocationAccuracyBest:設備使用電池供電時候最高的精度
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        
        
        //ios8+以上要授權,並且在plist文件中添加NSLocationWhenInUseUsageDescription,NSLocationAlwaysUsageDescription,值可以為空
        if (IOS_VERSION >=8.0) {//ios8+,不加這個則不會彈框
            [_locationManagerrequestWhenInUseAuthorization];//使用中授權
            [_locationManagerrequestAlwaysAuthorization];
        }
        [_locationManagerstartUpdatingLocation];
    }else{
        NSLog(@"定位失敗,請確定是否開啟定位功能");
    }
}
 
 
 
第三步
#pragma mark - CLLocationManagerDelegate
//ios 6.0sdk以上
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray*)locations{
    NSLog(@"didUpdateToLocation+++");
    //此處locations存儲了持續更新的位置坐標值,取最后一個值為最新位置,如果不想讓其持續更新位置,則在此方法中獲取到一個值之后讓locationManager stopUpdatingLocation
    CLLocation *cl = [locationslastObject];
    _latitude = cl.coordinate.latitude;
    _longitude = cl.coordinate.longitude;
    NSLog(@"緯度--%f",_latitude);
    NSLog(@"經度--%f",_longitude);
}

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

這時運行程序,發現還是沒有打印出經緯度信息,這是因為還需要在plist文件中添加NSLocationWhenInUseUsageDescription,NSLocationAlwaysUsageDescription,值可以為空

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM