IOS高德地图逆地理编码定位+网络判断

article/2025/4/12 19:57:32

先说下这功能的流程,  流程:判断用户是否联网--->获取用户地理位置经纬度--->通过经纬度去查询地理位置名称

//高德地图
@property (nonatomic, strong) MAMapView *mapView;//高德地图
@property (nonatomic, strong) AMapSearchAPI *search;
@property(nonatomic,strong)NSString *longitude;
@property(nonatomic,strong)NSString *latitude;
@property (nonatomic, strong) CLLocationManager  *locationManager;//本地信息存储类
@property(nonatomic,strong) AMapAddressComponent *compantAddress;
@property(nonatomic,strong)  NSMutableArray *CellContentArray;
@property(nonatomic,strong)NSString  *currentCityName;@property(nonatomic,strong)NSString *tempRecordIsOrNoSelect;//是否是首次加载定位@end@implementation HomeController
//通知设置值  根据选中的地区加载相应的数据
- (void)setCurrentLocation:(NSNotification *)text{//移除通知[[NSNotificationCenter defaultCenter] removeObserver:self name:@"citySelectLocationReciveceMethod" object:nil];_currentCityName= [NSString stringWithFormat:@"%@",text.object];if (_currentCityName.length>3) {_currentCityName=[_currentCityName substringToIndex:3];}else{}_tempRecordIsOrNoSelect=_currentCityName;}-(void)viewWillAppear:(BOOL)animated
{[super viewWillAppear:YES];[[AFNetworkReachabilityManager sharedManager] startMonitoring];//开启网络监听if (self.navigationController.navigationBar.hidden) {self.navigationController.navigationBarHidden=NO;}[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setCurrentLocation:) name:@"citySelectLocationReciveceMethod" object:nil];//地图定位[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {// if (_tempRecordIsOrNoSelect.length==0) {if(status==AFNetworkReachabilityStatusNotReachable){showMessage(@"请检查网络是否畅通!");_tempRecordIsOrNoSelect=nil;[SVProgressHUD dismiss];return ;}else{
if (_tempRecordIsOrNoSelect.length==0) {[SVProgressHUD showWithStatus:@"定位中......" maskType:SVProgressHUDMaskTypeBlack];_longitude=[[NSString alloc]init];_latitude=[[NSString alloc]init];self.mapView=[[MAMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 500)];self.mapView.userTrackingMode = 1,_mapView.showsUserLocation = YES;self.mapView.userTrackingMode = MAUserTrackingModeNone;self.mapView.delegate=self;}else{CGRect tempLeftButtonFrame=self.LeftButton.frame;_tempRecordIsOrNoSelect=_currentCityName;[self setLeftButtonTitle:_currentCityName setFontColor:[UIColor whiteColor] setFontSize:16 setFrme:&tempLeftButtonFrame];}}}];self.title=@"首页";//高德地图 }//高德地图代理 - (void)mapViewWillStartLocatingUser:(MAMapView *)mapView {if(![CLLocationManager locationServicesEnabled]){UIAlertView * alertView = [[UIAlertView alloc]initWithTitle:@"定位失败" message:@"请在手机设置中开启定位功能\n开启步骤:设置 > 隐私 > 位置 > 定位服务" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];[alertView show];self.mapView = nil;self.mapView.delegate = nil;return;}else{if ([CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedAlways) {UIAlertView * alertView = [[UIAlertView alloc]initWithTitle:@"定位失败" message:@"请在手机设置中开启定位功能\n开启步骤:设置 > 隐私 > 位置 > 定位服务下《***》应用" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];[alertView show];self.mapView = nil;self.mapView.delegate = nil;return;}} }- (void)mapViewDidStopLocatingUser:(MAMapView *)mapView {_longitude=[NSString stringWithFormat:@"%f",mapView.userLocation.location.coordinate.longitude];//@"106.546128";// _latitude= [NSString stringWithFormat:@"%f",mapView.userLocation.location.coordinate.latitude]; //@"29.559153";_search = [[AMapSearchAPI alloc] initWithSearchKey:@"e4bb6f15bba9fde10b1cfc13b298370e" Delegate:self];AMapReGeocodeSearchRequest *regeoRequest = [[AMapReGeocodeSearchRequest alloc] init];regeoRequest.searchType = AMapSearchType_ReGeocode;regeoRequest.location =[AMapGeoPoint locationWithLatitude:[_latitude floatValue] longitude:[_longitude floatValue]];regeoRequest.radius = 10000;regeoRequest.requireExtension = YES;//发起逆地理编码 [_search AMapReGoecodeSearch: regeoRequest];} //逆编码查询代理 - (void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response {if(response.regeocode != nil){_compantAddress=response.regeocode.addressComponent;_currentCityName=_compantAddress.province;if (_currentCityName.length>3) {_currentCityName=[_currentCityName substringToIndex:3];}_tempRecordIsOrNoSelect=_currentCityName;//定位后也要给这个临时判断是否选择的变量赋值 [self setLeftButtonTitle:_currentCityName setFontColor:[UIColor whiteColor] setFontSize:16 setFrme:&computeFrame];UIImageView *pointView=[[UIImageView alloc]initWithFrame:CGRectMake(computeFrame.size.width-2,10, 13, 8 )];[pointView setImage:[UIImage imageNamed:@"fanhuijiantou.png"]];[pointView setBackgroundColor:[UIColor clearColor]];[self.LeftButton addSubview:pointView];[self.LeftButton addTarget:self action:@selector(changeLocationClick:) forControlEvents:UIControlEventTouchUpInside];self.LeftButton.hidden=NO;}else{showMessage(@"请检查网是否畅通!");}[SVProgressHUD dismiss]; } - (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation {mapView.showsUserLocation = NO;}

本人做的一款androidApp,积分墙下载可兑支付宝红包,无广告看最新国内外大片,各种当前热门H5页游,淘宝天猫高额购物券!!:扫描下载,多谢支持!若有需要做此类产品的可以联系我:2819936788,各类数据API接口!(手机/流量/QB/游戏/淘宝客高额优惠券/超便宜的代理IP API/产品推广工具API)

 

 

转载于:https://www.cnblogs.com/xiaoliao/p/4789470.html


http://chatgpt.dhexx.cn/article/a6bKteMr.shtml

相关文章

如何制作专业的手绘地图(电子地图、智慧导览系统)

一、智慧导览系统介绍 手绘电子地图,就是把手绘地图覆盖到地图上,游客或者普通用户,可以在手机上通过地图的链接(或者现在流行的小程序)打开使用。是一种使用非常方便,集**“视、听、路径规划、实时导航”*…

js技术调用高德api实现精准定位

我先说下写这个程序的起因,昨天晚上我的一个朋友在淘宝上卖它玩了两年的光遇号。 号给淘宝商家了就不理人也不给钱了,因为没有订单记录淘宝官方不管。这种回收游戏账号的微信账号的十有九骗。在黑猫上就能查到各种回收账号的诈骗案件。 于是我给我朋友写…

vue + 高德精准定位(示例)

鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 使用Vue和高德精准定位可以实现基于Vue框架的精准定位功能。下面是对该方法的原理、使用场景、文献材料链接以及当前使…

CocosCreator系列——接入高德地图sdk获取经纬度信息图文详解

CocosCreator接入高德地图sdk获取经纬度信息图文详解 先看效果 1.首先去 高德开放平台.申请key 接下来该获取发布版和调试版的SHA1了,首先打开cmd命令窗口 输入命令:cd .android(首先进入用户系统的安卓文件夹) 然后输入命令:keytool -li…

反应式编程框架设计:如何使得程序调用不阻塞等待

前言: 程序在高并发的情况下,程序容易崩溃。主要的原因是:在高并发的情况下,有大量用户请求需要程序计算处理,而目前的处理方式是,为每个用户请求分配一个线程,当程序内部因为访问数据库等原因…

TensorFlow编程框架基础

一、为什么要使用编程框架 深度学习的算法具有多层结构,每层的运算由一些基本操作构成,这些基本操作中存在大量共性运算,如卷积、池化、激活等。 将这些共性运算操作封装起来,可以提高编程实现效率。 面向这些封装起来的操作&am…

c语言编程框架_编程语言和框架的状态

c语言编程框架 作为专业的软件交付人员,我喜欢掌握技术趋势和“市场可能走向何方”。 在过去的十五年中,已经出现了许多语言和框架,并且几乎没有任何真正的持久力。 为了在“人们想知道的事情”上适销对路,使我知识广博&#xff0…

MFC编程框架总结

简介 MFC是一种C类库,利用面向对象的方法封装了Windows API,为Windows应用程序的开发带来了极大便利。本文总结了使用MFC进行编程的基本方法,编程环境为VS2008 SP1。 搭建MFC开发环境 由于使用MFC应用程序向导后VS会自动生成应用程序框架&am…

并发编程框架----disruptor框架(一)

背景 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后&…

网络编程框架

网络编程 Socket网络通信编程 Socket主要解决一个网间进程通信(不同主机进程间的相互通信问题)。 提供进程通信的端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到…

您所应了解的Python四大主流网络编程框架

**本文内容摘录自《Python高效开发实战——Django、Tornado、Flask、Twisted》一书。**该书分为三部分:第1部分是基础篇,带领初学者实践Python开发环境和掌握基本语法,同时对网络协议、Web客户端技术、数据库建模编程等网络编程基础深入浅出地…

常见编程/框架介绍

文章大纲 一、C/C二、C#三、cocos2d-x四、go语言五、Hadoop六、HBase七、PHP八、python九、Spark十、Storm十一、Unity3D十二、Java十三、Android十四、Object-C与swift十五、.NET十六、R语言 一、C/C 1. 简介 C语言是目前世界上流行、使用最广泛的高级程序设计语言。C语言对操…

Linux 应用编程框架

粗略的复习下linux应用编程的一些知识,画个导图记录总结下:

Python 四大主流 Web 编程框架

目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架:Django、Tornado、Flask、Twisted。 …

【常见编程/框架介绍】

目录 一、C/C 1. 简介 2. 特点 3. 优点 4. 缺点 5. 常见使用场景 二、C# 三、cocos2d-x 四、go语言 1. 简介 2. 优点 3. 缺点 4. 就业方向 五、Hadoop 1. 简介 2. 优势 3. 应用场景 六、HBase 七、PHP 1. 简介 2. 优点 3. 缺点 4. 就业方向 八、python …

mac命令行查看dSYM文件的UUID

通过命令行查看 *.dSYM 文件的UUID值,标准范式: xcrun dwarfdump --uuid dSYM文件 实例演示: 想查看 Electron Framework.dSYM 的UUID值: 结果:5BE9E0C9-3946-3E4D-B12A-595EDA5170AF

dSYM的简单介绍

通过http://www.cocoachina.com/ios/20100427/1222.html 这篇文章,结合自己日常工作的理解,提炼了一下主要内容 一、dsym是什么? 在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件.(rd称之为 符号文件)他是一个编…

dSYM 文件分析工具

我在项目中使用了百度统计,友盟统计也可以,上线项目出bug的时候,错误信息统计中能比较方便的找出客户端异常的信息,可是很多像数组越界却只给出了 *** -[__NSArrayM objectAtIndex:]: index 50 beyond bounds [0 .. 39] 这类错误信…

firebase_crashlytics缺失dSYM unity ios

Firebase后台提示缺失dSYM文件的截图 解决方案: 一、找dSYM: 方法一: 打开xcode->window->organizer->选择你的版本包archives->show in finder->显示包内容->里面即可看到.dSYM文件 方法二: 打开终端&#…