zoukankan      html  css  js  c++  java
  • 定位- CLGeoencoder

    #import "ViewController.h"

    #import "MBProgressHUD+MJ.h"

    #import <CoreLocation/CoreLocation.h>

    @interface ViewController ()

    @property (nonatomic, strong) CLGeocoder *geocoder; // 编码对象

    @property (weak, nonatomic) IBOutlet UILabel *detailLabel; // 详细地址

    @property (weak, nonatomic) IBOutlet UITextField *latitudeField; // 纬度

    @property (weak, nonatomic) IBOutlet UITextField *longitudeField; // 经度

    @end

    @implementation ViewController

    /**

     *  反地理编码

     *

     */

    - (IBAction)encoderBtn:(id)sender

    {

        // 1. 获取用户输入的经纬度

        NSString *longitude = self.longitudeField.text;

        NSString *latitude = self.latitudeField.text;

        if (longitude.length == 0 || longitude == nil || latitude.length == 0 || latitude == nil) {

            [MBProgressHUD showError:@"请输入经纬度" toView:self.view];

            return;

        }

        

        // 2. 创建CLLocation对象

        CLLocation *location = [[CLLocation alloc] initWithLatitude:[latitude doubleValue] longitude:[longitude doubleValue]];

        

        // 3. 反编码 - 输出地标信息

        /**

         *  反编码

         *

         *  @param CLLocation - 有经度纬度等信息

         */

        [self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {

            for (CLPlacemark *placemark in placemarks) {

            LogRed(@"%@  -- %@ --- %f --- %f",placemark.name, placemark.addressDictionary, placemark.location.coordinate.longitude, placemark.location.coordinate.latitude);

            

            NSMutableString *mutstr = [NSMutableString string];

            

            for (NSString *subStr in placemark.addressDictionary[@"FormattedAddressLines"]) {

                [mutstr appendString:subStr];

            }

                LogGreen(@"%@",mutstr);

            }

        }];

        

        

    }

    - (void)viewDidLoad {

        [super viewDidLoad];

        //

        

    }

    /**

     *  懒加载

     */

    - (CLGeocoder *)geocoder{

        if (!_geocoder) {

            _geocoder = [[CLGeocoder alloc] init];

        }

        return _geocoder;

    }

  • 相关阅读:
    《浪潮》影评
    《白日梦想家》影评笔记
    mac清理磁盘方法
    java性能监控器VisualVM
    python部署工具fabric
    linux缓存nscd
    ajax取返回值的方法
    python中__name__ = '__main__' 的作用
    使用nsswitch控制linux dns解析顺序
    SQLAlchemy中filter()和filter_by()的区别
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4826980.html
Copyright © 2011-2022 走看看