定位 -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

}

时间: 2024-10-05 22:57:16

定位 -CLGeocoder - 编码的相关文章

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

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

iOS 开发指南 第16章 定位服务与地图应用

1 定位服务编码 使用Core Location框架 CLLocationManger:用于定位服务管理类,能够给我们提供位置信息和高度信息,也可以监控设备进入或离开某个区域,还可以获得设备的运行方向等. CLLocation:封装了位置和高度信息. CLLocationMangerDelegate 准备:加载Core Location框架 修改工程配置:Supporting Files-Info.pist添加NSLocationAlwaysUSageDescription和NSLocation

iOS 地图源及目的地定位、划线和系统导航的使用

最近在做一些关于地图的使用,才发现以前了解的东西很浅,很多细节上的东西没有弄清楚,在这里我想记录一下.好记性不如烂笔头,何况我这烂记性,就更得需要一个好笔头了.废话就不多说,下面就是我在使用系统地图的思路和代码.新手上路,不另指教! Step1 导入 Mapkit.framework 框架 Step2 引入头文件 #import <MapKit/MapKit.h> //地图框架 #import <CoreLocation/CoreLocation.h> //定位和编码框架 如果只是

CTF中那些脑洞大开的编码和加密

0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进行一些处理,但是会给留一些线索,所以写此文的目的是想给小伙伴做题时给一些参考,当然常在CTF里出现的编码也可以了解一下.本来是想尽快写出参考的文章,无奈期间被各种事情耽搁导致文章断断续续写了2个月,文章肯定有许多没有提及到,欢迎小伙伴补充,总之,希望对小伙伴们有帮助吧! 0x01 目录 1 2 3

编码解码--url编码解码

url编码解码,又叫百分号编码,是统一资源定位(URL)编码方式.URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理. 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI.encodeURIComponent,PHP有 urlencode.urldecode等.编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16

UI进阶 地图

一.地图的简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如    导航:去任意陌生的地方    周边:找餐馆.找酒店.找银行.找电影院    手机软件:微信摇一摇.QQ附近的人.微博.支付宝等 在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这两大功能,必须基于两个框架进行开发    Map Kit :用于地图展示    Core Location :用于地理定位 二.地图定位 CoreLocation框架的使用: 导入头文件        #import <Cor

url 传递中文参数乱码问题的终极解决方法。

估计很多人在做web开发的时候,都会碰到过url传递中文参数,有时候会出现乱码的问题,但有些项目或者环境,又不会有问题.当遇到乱码的时候,上网找了很多解决方案,比如: 页面设置它的编码方式,改成utf-8 或者gb2312. encodeURI(url),也有人说要2个encodeURI,如:window.location.href = encodeURI('b.html?cId='+id+"&cName="+encodeURIComponent(name)); 然后后台Str

Python之路【第二十四篇】:Python学习路径及练手项目合集

Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Python技术路径中包含入门知识.Python基础.Web框架.基础项目.网络编程.数据与计算.综合项目七个模块.路径中的教程将带你逐步深入,学会如何使用 Python 实现一个博客,桌面词典,微信机器人或网络安全软件等.完成本路径的基础及项目练习,将具备独立的Python开发能力. 完整的Python学

哈夫曼算法(haffman)实现压缩和解压缩-C语言实现

/* * ===================================================================================== * * Filename: haffman.c * * Description: huffman coder decoder * * Version: 1.0 * Created: * Revision: none * Compiler: gcc * * * =============================