码迷,mamicode.com
首页 > 移动开发 > 详细

iOS8 根据经纬度显示地名

时间:2014-12-09 21:35:10      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:des   style   io   ar   color   os   使用   sp   for   

我们很多时候做项目的时候都选用通过手机获取定位,然后传数据给后台,这是iOS8根据经纬度显示地名的demo

//1.导入框架

//

//  NearByViewController.m

//  nearDemo

//

//  Created by apple on 14/12/5.

//  Copyright (c) 2014 youdianshang. All rights reserved.

//

#import <CoreLocation/CoreLocation.h>

#import <MapKit/MapKit.h>

@interface NearByViewController ()<UITableViewDataSource,UITableViewDelegate,CLLocationManagerDelegate,DataRequestManagerDelegate>


{

    NSUserDefaults *defaluts;

    NSString * jingduStr;

    NSString *weiduStr;

    NSString *LocationAddress;

}

@property(nonatomic,retain)CLLocationManager *locationManager;

@property(strong,nonatomic)UILabel *positionLabel;

/*

  经纬度相关设置

 

 */


-(void)getLocationAll

{


    self.locationManager = [[CLLocationManager alloc]init];

    _locationManager.delegate = self;

    _locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    _locationManager.distanceFilter = 10;

    [_locationManager requestAlwaysAuthorization];//添加这句

    [_locationManager startUpdatingLocation];

   

}

/*

//通过经纬度得到当前地理位置

-(void)change{

    defaluts=[NSUserDefaults standardUserDefaults];


    CLLocationCoordinate2D coordinate;

    coordinate.latitude =  [[NSString stringWithFormat:@"%@",jingduStr] floatValue];

    coordinate.longitude = [[NSString stringWithFormat:@"%@",weiduStr] floatValue];


    CLLocation *newLocation=[[CLLocation alloc]initWithLatitude:coordinate.latitude longitude: coordinate.longitude];

    CLGeocoder *geocoder=[[CLGeocoder alloc] init];

    [geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray* placemarks, NSError* error)

     {

         MKPlacemark*placemark = [placemarks objectAtIndex:0];

                  LocationAddress = [NSString stringWithFormat:@"%@%@%@%@",  placemark.locality, placemark.subLocality,placemark.thoroughfare, placemark.subThoroughfare];

                  [defaluts setObject:LocationAddress forKey:@"address"];

                 NSLog(@"终极目标:1:%@2:%@3:%@4:%@",  placemark.locality, placemark.subLocality,placemark.thoroughfare,placemark.subThoroughfare);


     }];


#pragma mark--实现CLLocationManagerDelegate的代理方法,获取地理位置(镔)===========================================================================


//(1)获取到位置数据,返回的是一个CLLocation的数组,一般使用其中的一个


- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

{

    CLLocation *currLocation = [locations lastObject];

    NSLog(@"经度=%f 纬度=%f 高度=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);

    jingduStr =[NSString stringWithFormat:@"%f", currLocation.coordinate.latitude];

    weiduStr =[NSString stringWithFormat:@"%f", currLocation.coordinate.longitude];

    NSLog(@"jijijijijij:%@",jingduStr);

     [self change];


    }

//(2)获取用户位置数据失败的回调方法,在此通知用户

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

{

    if ([error code] == kCLErrorDenied)

    {

        //访问被拒绝

    }

    if ([error code] == kCLErrorLocationUnknown) {

        //无法获取位置信息

    }

}




iOS8 根据经纬度显示地名

标签:des   style   io   ar   color   os   使用   sp   for   

原文地址:http://blog.csdn.net/sammyieveo/article/details/41827873

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!