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

    #import "ViewController.h"

    #import <CoreLocation/CoreLocation.h>

    @interface ViewController ()

     /**  地理编码对象 ***/

    @property (nonatomic, strong) CLGeocoder *geocoder;

    @property (weak, nonatomic) IBOutlet UITextField *addressField; // 地址

    @property (weak, nonatomic) IBOutlet UILabel *longitudeLabel;   // 经度

    @property (weak, nonatomic) IBOutlet UILabel *latitudeLabel;    // 纬度

    @property (weak, nonatomic) IBOutlet UILabel *detailLabel;      // 具体地址

    @end

    @implementation ViewController

    - (IBAction)codingBtn:(id)sender {

        

        // 0.获取输入位置

        NSString *addressStr = self.addressField.text;

        

        if (addressStr == nil || addressStr.length == 0) {

            LogGreen(@"请输入地址");

            return;

        }

        

        // 1. 创建地理编码对象

        

        // 2. 利用地理编码对象编码

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

            // placemarks: 地标数组, 每一个地标包含了该位置的经纬度以及城市 区域 国家代码 邮编等信息

            // 获取数组中第一个 信息

            CLPlacemark *placemark = [placemarks firstObject];

            

            self.longitudeLabel.text = [NSString stringWithFormat:@"%f",placemark.location.coordinate.longitude];

            self.latitudeLabel.text = [NSString stringWithFormat:@"%f",placemark.location.coordinate.latitude];

            NSDictionary *addressDic = placemark.addressDictionary;

            /**

             *  City = Beijing;

             Country = China;

             CountryCode = CN;

             FormattedAddressLines =     (

             "Beijing China"

             );

             State = Beijing;

             */

            

            NSArray *addresses = addressDic[@"FormattedAddressLines"];

            NSMutableString *mutstr = [NSMutableString string];

            for (NSString *subStr in addresses) {

                [mutstr appendString:subStr];

            }

            self.detailLabel.text = mutstr; // 模拟器设置成 中文 - 输出显示为中文

            

            

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

        }];

        // 键盘弹回

        [self.view endEditing:YES];

    }

    /**

     * 1. 创建地理编码对象

     */

    - (CLGeocoder *)geocoder{

        if (!_geocoder) {

            _geocoder = [[CLGeocoder alloc] init];

        }

        return _geocoder;

    }

    - (void)viewDidLoad {

        [super viewDidLoad];

    //    NSLocationAlwaysUsageDescription

    //    NSLocationWhenInUseDescription

    }

  • 相关阅读:
    读图,特征提取——形状
    5.2 SW1控制LED1亮灭(中断功能)
    3、寄存器
    5.1、按键SW1控制LED1亮灭
    4.2、LED1、LED2交替闪烁
    2、编程工具IAR、烧写工具SmartRF的使用
    4.1、实现4个LED灯同时闪烁
    1、CC2530单片机介绍
    装windows系统教程
    连接夜神模拟器
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4826890.html
Copyright © 2011-2022 走看看