iOS 定位于地理反编码

- (void)viewDidLoad {

[self startLocation];
}

//开始定位
-(void)startLocation{
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;

    [self.locationManager requestWhenInUseAuthorization];
    if ([[[UIDevice currentDevice]systemVersion]doubleValue]>=8.0) {

        [self.locationManager requestWhenInUseAuthorization];
        [self.locationManager requestAlwaysAuthorization];

    }
    [self.locationManager startUpdatingLocation];

    if ([CLLocationManager locationServicesEnabled]) {
        self.locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
        self.locationManager.distanceFilter = kCLDistanceFilterNone;
    }else
    {
        NSLog(@"open fail");
    }

}
#pragma mark - CoreLocation 代理
#pragma mark 跟踪定位代理方法,每次位置发生变化即会执行(只要定位到相应位置)
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation *location=[locations lastObject];
    CLLocationCoordinate2D coordinate=location.coordinate;
    NSLog(@"经度:%f,纬度:%f",coordinate.longitude,coordinate.latitude);
    self.longitude=coordinate.longitude;
    self.latitude=coordinate.latitude;
    //如果不需要实时定位,使用完即使关闭定位服务
    [self.locationManager stopUpdatingLocation];
    [self weiZhi];
}
-(void)weiZhi
{
    self.geocoder=[[CLGeocoder alloc]init];
    CLLocation *rr=[[CLLocation alloc]initWithLatitude:self.latitude longitude:self.longitude];
    [self.geocoder reverseGeocodeLocation:rr completionHandler:^(NSArray *placemarks, NSError *error) {

        CLPlacemark *mark=[placemarks objectAtIndex:0];
        UILabel *currentLocation=[[UILabel alloc]initWithFrame:CGRectMake(220, 15, 100, 20)];
        currentLocation.text=[NSString stringWithFormat:@"%@",mark.subLocality];

        [self.locationView addSubview:currentLocation];
    }];

}
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
     switch (status) {
         case kCLAuthorizationStatusNotDetermined:
         if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
         {
             [self.locationManager requestWhenInUseAuthorization];
         }
         break;
         default:
         break;
     }

}
//当定位出现错误时就会调用这个方法。
- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error
{
    NSLog(@"error-%@",error);

}

定位当前的位置。对于 CLPlacemark 还有许多属性,不仅仅可以给出当前位置,还可以给出其他信息,后续研究。。。。

时间: 2024-11-11 08:25:01

iOS 定位于地理反编码的相关文章

objective-c开发——地图定位之地理编码和地理反编码

我们平时做地图定位,主要是靠经纬度来准确定位某个位置. 但是,我们是人啊,我们不是卫星啊. 用户在地图上查一个地方,我们总不能告诉他,这个地方是东经多少度,北纬多少度吧. 咱们好歹得告诉人家个地名不是? 这就是我们今天说的地理编码和地理反编码. 地理编码:你说个地名,比如“西湖”,我们给你返回它的经纬度,然后你通过查出来的这个经纬度去定位 反地理编码:我告诉你一个经纬度,你通过经度纬度返回地名.最好在插个大头针在地图上就更好了,啥叫大头针,咱们以后再说. 首先,我的界面是这个样纸的,就是两个按钮

地理反编码的实现

一:效果 输入经纬度,可以得到相应的地名 二:思路 跟地里编码差不多 1.获取用户输入的经纬度 2.根据用户输入的经纬度创建CLLocation对象 3.根据CLLocation对象获取对应的地标信息 三:代码 <code class="hljs objectivec has-numbering"><span class="hljs-preprocessor">#import <span class="hljs-title&q

地理编码和地理反编码

#import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> @interface ViewController : UIViewController<CLLocationManagerDelegate> { CLLocationManager *_locationManager; CLGeocoder *_geocoder; } @property (strong, nonatomic) IBOutlet

猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 输入经纬度,能够得到相应的地名 二:思路 跟地里编码差点儿相同 1.获取用户输入的经纬度 2.依据用户输入的经纬度创建CLLocation对象 3.依据CLLocation对象获取相应的地标信息 三:代码 #import "ViewController.h" #import <CoreLocation/CoreLocation.h>

iOS地理反地理编码--CoreLocation

.sidebar{float:left;width:220px;} .container-fluid>.content{margin-left:240px;} a{color:#0069d6;text-decoration:none;line-height:inherit;font-weight:inherit;}a:hover{color:#00438a;text-decoration:underline;} .pull-right{float:right;} .pull-left{float

iOS定位服务与地图开发(2)---地理信息反编码

上节我们通过定位获取了经度和纬度数值,但是一般人很难看懂这些数字. 地理信息反编码:就是根据这些经纬数字返回地点的相关文字描述信息,这些文字描述信息被封装在CLPlacemark类中,我们称这个类为"地标"类. 地理信息反编码使用CLGeocoder类实现,这个类能够实现在地理坐标与地理文字描述信息之间的转换. CLGeocoder类中进行地理信息反编码的方法是:reverseGeocodeLocation: completionHandler: location:是要定位的地理位置对

ios地理信息反编码

通过定位我们可以获得经度和纬度,通过地理信息反编码可以通过地理坐标返回某个地点的相关文字描述.这些描述封装在CLPlacemark类中,它的属性为:1)addressDictionary,地理信息字典2)ISOcountryCode,ISO国家代号3)Country,国家信息4)postalCode,邮政编码5)adminisrativeArea,行政区域信息6)locality,指定城市信息个人认为,字典中存储的值 跟 CLPlacemark中其它的属性的值是相同的. 地理信息反编码使用CLG

iOS学习_地图_定位和编码与反编码

定位: 引入头文件  #import <CoreLocation/CoreLocation.h>声明管理器属性:@property(nonatomic,strong)CLLocationManager *manager;第一步:初始化管理器self.manager = [[CLLocationManager alloc] init];第二步:进行隐私的判断并授权 //进行隐私的判断 if (![CLLocationManager locationServicesEnabled]) { NSLo

地图定位CoreLocation框架,地理位置编码与反编码

在现代互联网时代,越来越多的应用,都用到了地图定位功能,在iOS开发中,想要加入这种功能,必须基于两个框架进行开发: 1.Map Kit:用于显示地图, 2.CoreLocation:用于显示地理位置 这里我们简单了解一下CoreLocation,用于显示地理位置,坐标信息. 一.相关类介绍 CLLocationManager.用于定位服务管理类,它能够给我们提供位置信息和高度信息,也可以监控设备进入或离开某个区域,还可以获得设备的运行方向. CLLocation.封装了位置和高度信息. CLL