美文网首页iOS大咖说
iOS 定位+反地理编码

iOS 定位+反地理编码

作者: 苦可乐 | 来源:发表于2016-11-19 14:41 被阅读133次

怎么使用Markdowm

写的非常详细,拿过来借用一下,有想在简书发表文章的可以看看
[简书]http://www.jianshu.com/p/q81RER/

简单的定位功能,并实现反地理编码

.h的声明

#import <CoreLocation/CoreLocation.h>
@interface ViewController ()<CLLocationManagerDelegate>
//位置管理者
@property(nonatomic,strong)CLLocationManager * locationManager;
///纬度
@property(nonatomic,assign)CLLocationDegrees coreLati;
///经度
@property(nonatomic,assign)CLLocationDegrees coreLong;
///编码者
@property(nonatomic,strong)CLGeocoder * geocoder;
@end```
####.m的实现

-(CLGeocoder *)geocoder{
if (_geocoder==nil) {
_geocoder = [[CLGeocoder alloc]init];
}
return _geocoder;
}

  • (void)viewDidLoad {
    [super viewDidLoad];
    // [self reverseGeoCoder];
    [self startLocationService];

}

pragma mark -- 开启定位服务

-(void)startLocationService{
//确定用户的位置服务启用
// if (![CLLocationManager locationServicesEnabled]
// &&[CLLocationManager authorizationStatus]!=kCLAuthorizationStatusDenied)
// //位置服务是在设置中禁用
// {
self.locationManager = [[CLLocationManager alloc]init];
self.locationManager.delegate = self;
//设置精确度
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
        NSLog(@"使用期间定位");
        [self.locationManager requestWhenInUseAuthorization];
        
    }
    //开始定位的时候不断更新位置
    [self.locationManager startUpdatingLocation];

// }
}

pragma mark -- 获取定位的位置

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
//获取用户的位置的对象
CLLocation * location = [locations lastObject];
//获得当前的坐标
CLLocationCoordinate2D coordinate = location.coordinate;
// 获取纬度
self.coreLati = coordinate.latitude;
// 获取经度
self.coreLong = coordinate.longitude;
CLLocationDegrees la = coordinate.latitude;
CLLocationDegrees lon = coordinate.longitude;
NSLog(@"定位的坐标%lf,%lf",la,lon);
//停止更行
[self.locationManager stopUpdatingLocation];
[self reverseGeoCoder:la andlonti:lon];

}

pragma mark -- 定位后反地理编码

-(void)reverseGeoCoder:(double)lati andlonti:(double)longti{
CLLocation *location1 = [[CLLocation alloc] initWithLatitude:lati longitude:longti];

// 反地理编码(经纬度---地址)
[self.geocoder reverseGeocodeLocation:location1 completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
    if(error == nil)
    {
        CLPlacemark *pl = [placemarks firstObject];
        //获得的定位信息
        NSString * str = pl.name;
        //获得纬度
        NSString * str1 = @(pl.location.coordinate.latitude).stringValue;
        //获得经度
        NSString * str2 = @(pl.location.coordinate.longitude).stringValue;
        //获得所在的位置(某市)
        NSString * str3 = placemarks.firstObject.locality;
        //获得所在市的某区
        NSString * str4 = placemarks.firstObject.subLocality;
        //获得省份(形成区域)
        NSString * str5 = placemarks.firstObject.administrativeArea;
        NSLog(@"str -> %@,str1 -> %@,str2 -> %@,str3 -> %@,str4 -> %@,str5->%@",str,str1,str2,str3,str4,str5);
    }else
    {
        NSLog(@"错误");
    }
}];

} ```

相关文章

  • iOS - 定位、地理编码、反地理编码

    #pragma mark---*定位: 一、介绍 1、定位使用CoreLocation框架 2、功能:(1)基础定...

  • iOS开发之定位

    一、介绍 1、定位使用CoreLocation框架2、主要功能(1)基础定位(2)地理编码反编码3、IOS8 IO...

  • iOS 定位+反地理编码

    怎么使用Markdowm 写的非常详细,拿过来借用一下,有想在简书发表文章的可以看看[简书]http://www....

  • 学习笔记 - 地图

    1.iOS系统定位 2.地理编码与反编码 3.MapView 4.添加大头针

  • 地图和定位(三)

    一、地理编码和反地理编码 地理编码:把地址转为经纬度反地理编码:把经纬度转为地址 二、获取当前城市名称(定位+反地...

  • Corelocation

    本文章针对iOS8之前、iOS8、以及iOS9.0定位功能的实现,并对指南针、地理反地理编码做个简单介绍 iOS8...

  • 高德地图问题

    1:定位的时候获取用户的省市区位置,通过反地理编码 地理编码与反地理编码 地理编码:根据地址获得相应的经纬度以及详...

  • iOS-定位、反地理编码

    1、注:info.plist里面加NSLocationWhenInUseUsageDescription(stri...

  • 地图-->地名VS地理坐标(根据"北京"

    地理编码 除了提供位置跟踪功能之外,在定位服务中还包含CLGeocoder类用于处理地理编码和逆地理编码(又叫反地...

  • iOS 地理编码 / 反地理编码

    一、CLGeocoder 地理编码 与 反地理编码 地理编码:根据给定的地名,获得具体的位置信息(比如经纬度、地址...

网友评论

    本文标题:iOS 定位+反地理编码

    本文链接:https://www.haomeiwen.com/subject/abfepttx.html