• iOS之获取经纬度并通过反向地理编码获取详细地址


    _locationManager = [[CLLocationManager alloc] init];

        //期望的经度

        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;

        //大约变化100米更新一次

        _locationManager.distanceFilter = 100;

        //认证NSLocationAlwaysUsageDescription

        if ([[UIDevice currentDevice] systemVersion].doubleValue > 8.0) {//如果iOS是8.0以上版本

            if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {//位置管理对象中有requestAlwaysAuthorization这个方法

                //运行

                [_locationManager requestAlwaysAuthorization];

            }

        }

        _locationManager.delegate = self;

        [_locationManager startUpdatingLocation];

    //获取经纬度和详细地址

    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations {

        

        CLLocation *location = [locations lastObject];

        NSLog(@"latitude === %g  longitude === %g",location.coordinate.latitude, location.coordinate.longitude);

        

        //反向地理编码

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

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

        [clGeoCoder reverseGeocodeLocation:cl completionHandler: ^(NSArray *placemarks,NSError *error) {

            for (CLPlacemark *placeMark in placemarks) {

                

                NSDictionary *addressDic = placeMark.addressDictionary;

                

                NSString *state=[addressDic objectForKey:@"State"];

                NSString *city=[addressDic objectForKey:@"City"];

                NSString *subLocality=[addressDic objectForKey:@"SubLocality"];

                NSString *street=[addressDic objectForKey:@"Street"];

                

                NSLog(@"所在城市====%@ %@ %@ %@", state, city, subLocality, street);

                [_locationManager stopUpdatingLocation];

            }

        }];

    }

  • 相关阅读:
    时间复杂度与数据规模估计
    类型总结——数组前序和
    pat B1018——锤子剪刀布(数字替换字母思想)
    Linux下Tomcat(3):修改默认的8080端口号
    MySQL 重复数据的简单处理方式
    MySQL 排序
    MySQL DATE类型
    MySQL BETWEEN运算符介绍
    数据库简介
    在Linux下设置Kettle的定时任务
  • 原文地址:https://www.cnblogs.com/xiao-love-meng/p/5828366.html
Copyright © 2020-2023  润新知