如何在ios设备上定位当前地点,并在地图上显示相关信息

发布时间:2021-09-20 06:42:29

前几天一个朋友手头发过来一个ios的小项目,其中有关于定位用户当前位置的需求,简单看了下api,写了个定位的demo,在这里作个简单的小结。


首先要做到在地图上显示用户当前位置,我们会用到两个基本的framework,一个是MapKit,还有一个是CoreLocation,前者是用来在界面上呈现mapview,后者主要用户得到用户当前坐标信息后并通知相关委托作一些操作。


在开发前我们首先要在工程.plist文件中加入Required device capabilities一项(如果之前就有了就不要加了,只要添加相关值即可),在这里我们用到的一个值是location-services,顾名思义,位置服务。


做好以上基本操作后我们需要在相关视图中加入我们要显示的mapview,在开发的是时候本人发现,如果是在Ib里面加入mapview,在ib的behavior内就有一个选项叫做shows user location,如果选中的话运行后在mapview刷新后我们即可看到用户当前所在的位置(默认的是一个蓝色头的大头针).


当然了,如果我们需要自定义这个小东西的话也是可以的,我们必须在mapview的委托对象中重写如下方法



- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id )annotation ;


具体的写法我们可以参照ios library中的一个例子,叫做MapCallouts?,个人认为这里例子里面已经写得非常详细了。如果有不明白的直接看这个例子就可以了




要想得到当前用户的坐标其实非常简单,这里我们要实现 CLLocationManagerDelegate 这个协议,并重写


- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation ???fromLocation:(CLLocation *)oldLocation 这个方法





CLLocationManager locationManager = [[CLLocationManager alloc] init];
if ([CLLocationManager locationServicesEnabled]) {
NSLog( @"Starting CLLocationManager" );
locationManager.delegate = self;
locationManager.distanceFilter = 200;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
} else {
NSLog( @"Cannot Starting CLLocationManager" );
/*self.locationManager.delegate = self;
self.locationManager.distanceFilter = 200;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[self.locationManager startUpdatingLocation];*/
}



locationManager一旦调用startUpdateLocation方法后成功取得设备的位置,就会调用其委托的 - (void)locationManager:(CLLocationManager?*)manager didUpdateToLocation:(CLLocation?*)newLocation ???fromLocation:(CLLocation?*)oldLocation 方法,当前用户的位置即newLocation。

我们在取得用户坐标之后即可在mapview中标出用户的具体位置



MKCoordinateSpan theSpan;
//设置地图的范围,越小越精确
theSpan.latitudeDelta = 0.02;
theSpan.longitudeDelta = 0.02;
MKCoordinateRegion theRegion;
theRegion.center = [currentLocation coordinate]; //让地图跳到之前获取到的当前位置checkinLocation
theRegion.span = theSpan;
[mapView setRegion:theRegion]




如果最后要在地图上自定义的MKAnnotation上显示位置的正确名称的话,不要忘了对取得的坐标进行反向解析,这里可以用GOOGLE或其他第三方的的api进行反向解析,反正最后只要能拿到位置的名字就可以了


这里顺便贴一下本人用的一个google的反向解析请求地址,至少目前为止是可以用的


NSString * str =? [NSStringstringWithFormat:@"http://ditu.google.cn/maps/geo?hl=zh-CN&output=csv&key=abcdef&q=%f,%f",location.latitude,location.longitude];



















相关文档

  • 安装apk的时候提示套件已损毁
  • 报考教师时专业对口是什么意思
  • Java单元测试框架 JUnit
  • 生猪养殖场租赁协议书
  • win10 无限重启
  • 很有艺术的微信签名
  • 关于招标文件的介绍信
  • Python:03输入n,并生成n个整数,对这n个整数从小到大排序输出(冒泡排序)
  • 初三年级教学工作会议讲话稿
  • 新媒体运营:如何一招实现主动引流,快速获得用户增长? 黎想
  • 快速瘦小腿的踏板操
  • 如何处理错误消息Please install the Linux kernel header files
  • 如何组建局域网打印机
  • 研究发现:不爱运动易患牙龈炎
  • 情人节对情人的祝福语汇总2篇
  • android studio创建activity时在清单文件自动加上 android:screenOrientation=
  • 幼儿园小班新版健康活动教案
  • vivo x5m处理器
  • 猴子吃桃问题:猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天, # 又将剩下的桃子吃掉了剩下的一半,又多吃了一个,以后每天都吃了前一天的一半零一个,到第10天早上想再吃时,见只剩
  • 古时候儿子结婚怎么给爸爸道喜
  • 如何查四六级成绩
  • 党员入党自我鉴定
  • 中小学生暑假预防溺水安全教育视频
  • 昨晚梦见房子塌了一半是怎么回事
  • 安全高效的中小型网络
  • 山西历年高考满分作文汇总2014-2016
  • 2021高一生物教学计划
  • 2020年教师个人年度工作总结大全5篇
  • 写给学校的初中毕业留言
  • opporeno5k悬浮球怎么设置?
  • 猜你喜欢

  • 企业党建个人年度工作总结三篇
  • 20XX年审计局党风廉政建设工作总结[1]
  • 中国共产党的宗教工作基本方针
  • 第5讲 Windows消息机制及HOOK应用
  • 北京历史文化题目
  • 2016-2021年中国氰络合物行业发展深度研究与投资咨询报告
  • 【推荐】201X蛇年元宵节灯谜大全及答案大全[1]-word范文模板 (7页)
  • 激活英语课堂教学的实践与思考(一)
  • 乐活学院九二老师——百家姓溯源(冯)
  • 一堂有趣的游戏课作文【小学六年级700字】
  • 无人值守远程计量系统方案
  • 次亚磷酸钠体系化学镀镍的电化学研究
  • 电感式传感器及应用
  • 小学数学二年级(下册)人教版新版教材教材分析ppt
  • 阳痿的误区有哪些
  • 浅议小学生倾听*惯的培养
  • 高考过程发热怎么办?备用隔离考场耽误时间可补回
  • 2018-2019高中物理 第十三章 光 第7节 光的颜色 色散 第8节 激光课时作业 新人教版选修3-4
  • 深圳市先锋印刷有限公司企业信用报告-天眼查
  • 5G移动网络新技术及核心网架构
  • 群众来信来访接待制度(可供参考)
  • 水*井井眼轨迹地质导向技术析
  • 有关感恩在我心中的记叙文作文
  • 天津商业大学2012年经济类研究生考试目录
  • linux下给docker容器配置网络(桥接模式)
  • 回忆纯粹的味道
  • 孕妇必须要补铁吗?含铁高的食物有哪些
  • 咳嗽总是不好是肺热吗?
  • 2019教育52 求解二元一次方程组(第二课时)数学
  • 说说经典2021心情不好
  • 最新人教版二年级数学上册教案设计第4课时 练习课
  • 衣服沾上膏药怎么洗
  • 湛江市赤坎区农村信用合作联社环球分社企业信用报告-天眼查
  • 夫妻和谐性生活的5大秘诀
  • BS北师版初一七年级生物 下册第二学期(教学设计 电子教案)第11章 人体代谢废物的排出(整章教案 分课时)
  • 小学四年级叙事作文:“灭”狗记
  • 集团公司机关绩效管理方案
  • 【精品文档】公务员面试常用的十二种提问方式解析-word范文 (4页)
  • 六年级下册科学课件-1.3放大镜下的晶体(7)| 教科版 (共52张PPT)
  • 什锦酱小饼干的做法【美味佳肴食谱】
  • 供应链网络的结构性维度可分为( )等几个方面。 A.网链结构B.水*结
  • qt设置文本内容立即生效方式
  • 电脑版