iOS 地图与指南针使用方案
CoreLocation框架
定位(iOS8.0-
- iOS8.0- 的定位实现
- 设置授权说明(段子写得好,用户授权的概率大)
- 设置位置更新的距离过滤(防止过于频繁的调用代理方法)
- 设置定位精度(精度越高,耗电越快。所以要根据需求选择合适的定位精度)
- 后台定位(勾选后台模式:location update)
定位(iOS8.0+适配)
- iOS8.0+授权适配(两种适配方案:通过系统版本号,通过对象是否响应方法)
(配置info.plist文件中对应的键值) - requestWhenInUseAuthorization 和 requestAlwaysAuthorization 区别
(前者只有在APP前台时可以定位,后者可以在前后台进行定位) - 勾选后台运行模式location后的变化(在9.0之前,前者后台依然可以定位,
但会出现蓝条;后者不会出现蓝条;) - 授权状态的变更,调用对应的代理方法(说明不同状态代表的含义,给予用户对应的提示)
- 演示前后台授权和前台授权同时请求时会发生什么情况,并解释原因。
- 在Info.plist文件中添加如下配置:
- NSLocationAlwaysUsageDescription
- NSLocationWhenInUseUsageDescription
定位(iOS9.0补充)
- requestWhenInUseAuthorization 和 requestAlwaysAuthorization 区别(前者
只有在APP前台时可以定位,后者可以在前后台进行定位) - 勾选后台运行模式location后的变化(效果同上,在while using the app 授权模式下,
要想再次使用后台定位,必须使用allowsBackgroundLocationUpdates方法进行设置,
但同样还是会出现蓝条) - requestLocation 作用:按照定位精确度从低到高进行排序,逐个进行定位。
如果获取到的位置不是精确度最高的那个,也会在定位超时后,通过代理告诉外界
(必须实现代理的-locationManager:didFailWithError:方法, 不能
与startUpdatingLocation方法同时使用)
【CLLocation对象详解】
- coordinate(当前位置所在的经纬度)
- altitude (海拔)
- speed (当前速度)
- -distanceFromLocation (获取两个位置之间的直线物理距离)
- 场景演示:打印当前用户的行走方向,偏离角度以及对应的行走距离,
例如:”北偏东30度方向,移动了8米” - 实现步骤:
- 获取对应的方向偏向(例如”正东””东偏南”)
- 获取对应的偏离角度(并判断是否是正方向)
- 计算行走距离
- 打印信息
【指南针】
- 演示项目效果:
- 实现思路:1.获取手机设备朝向(距离磁北方向的角度) 2. 让指南针图片反向旋转对应角度,
这样就可以不断指向磁北
- 实现思路:1.获取手机设备朝向(距离磁北方向的角度) 2. 让指南针图片反向旋转对应角度,
- 获取手机朝向: [locationM startUpdatingHeading];
- magneticHeading(磁北方向和真北方向,取值范围:0-359.9;顺时针为正)
- 注意:获取手机设备朝向不需要用户定位授权
【区域监听】
- startMonitoringForRegion (CLCircularRegion区域;注意,因为需要使用到用户的
当前位置,所以iOS8.0+后需要请求用户授权) - locationManager:didEnterRegion: (进入区域)
- locationManager:didExitRegion: (离开区域)
- 后台区域监听
【(反)地理编码】
- 演示项目效果
- CLGeocoder对象
- 三种编码方案
- CLPlacemark讲解(locality:城市名称 thoroughfare:街道名称 name:
全称 CLLocation *location) - 反地理编码
【定位的第三方框架】
- 优点:可以使用block接收用户的位置,corelocation框架定位使用代理进行传值,
代码比较分散 - 下载框架(locationManager框架)
- 使用block进行定位(带delayUntilAuthorized参数的定位:超时时间从什么时候开始
计算)(依然要配置info.plist文件对应的键值对) - 通过定位请求ID分别取消定位(不会回调block)和强制完成定位(会回调block)
- 注意:此框架针对于iOS9.0 ,前台授权时,后台是无法获取用户位置
转载于:https://www.cnblogs.com/OnNineMonkey/p/5371294.html
iOS 地图与指南针使用方案相关推荐
- 四叉树算法:iOS地图点标记聚合方案
前言 在地图相关应用的开发中,我们常常遇到一个问题,当地图标注点过多的时候,会造成用户体验差.应用卡顿的情况.所以,我们需要一套高效的算法来解决标注的聚合.分散的逻辑. 先上代码: 算法思想不局限于平 ...
- 急速收藏:4套iOS SDK的H5打通方案
在介绍 iOS SDK 的 H5 打通方案之前,我们先了解一下什么是 App 与 H5 打通. 所谓 "打通",是指 H5 集成 JavaScript 数据采集 SDK 后,H5 ...
- uni app map 地图 漂浮问题及方案
uni app map 地图 漂浮问题及方案 文章页有图片导致的问题,图片没加载出来,导致文章内容高度不固定,如果图片没加载出来,高度就是0,如果此时开始加载map,那么map就在那里加载,map原生 ...
- 地平线:发布线NavNet众包高精地图采集与定位方案,牵手韩国最大通讯企业 | CES 2019...
今年的CES,有关于自动驾驶的讨论比往年冷静了许多,但依旧是担纲主角之一.在本届的CES上,定位为Tier 2 的地平线机器人也带来了自己对于自动驾驶的思考和成果. 地平线创始人兼CEO余凯认为:在 ...
- electron 打开调试_构建基于 iOS 模拟器的前端调试方案
作者:imyzf 本文将为大家介绍自动化控制 iOS 模拟器的原理,为开发基于 iOS 模拟器的前端调试方案提供帮助. 我们在开发 iOS App 内的前端页面时,有一个很大的痛点,页面无法使用 Sa ...
- iOS 仿系统指南针
高仿系统指南针,方向数据是地磁航向数据,有定位地理位置信息和地磁方向信息,可以和系统的指南针对比看一看. 一.运行效果 二.实现过程 1.继承于UIView创建一个带刻度标注的视图ScaleView, ...
- 算法:根据四色定理(Four color theorem),求出地图的所有着色方案
地图着色,需要每一个区域都使用一种颜色来进行填充,然后为了与相邻接壤的区域分开,就要求两个接壤的区域需要使用不同的颜色.四色定理的意思是,最多只需要四种颜色,就可以为所有的地图进行全部区域着色,且任意 ...
- ios 地图 省市轮廓_iOS 14中的新增功能:视觉轮廓检测
ios 地图 省市轮廓 WWDC20 (WWDC20) Apple's WWDC 2020 (digital-only) event kickstarted with a bang. There we ...
- 招聘信息显示苹果开发iOS地图应用
新浪科技讯 北京时间3月26日上午消息,苹果最新的招聘信息显示,苹果仍在继续开发该公司自己的移动地图服务,这一地图服务将区别于谷歌地图. 招聘信息显示,苹果总部招聘一名iOS地图应用开发者.这名开发者 ...
最新文章
- 动态表单工作量给后端
- 百变应用场景下,优酷基于图执行引擎的算法服务框架筑造之路!
- EPOLLOUT 事件的意义 以及 处理示例
- c++ 怎么读取rtf文件_最全集合!Word、PPT、Excel、PDF文件转换方法大全!建议收藏...
- 图像处理之玻璃水印特效(祝大家圣诞节快乐)
- 论文笔记之:RATM: RECURRENT ATTENTIVE TRACKING MODEL
- QT的QNoDraw类的使用
- WebBrowser内存泄露
- 研究生学习阶段时间安排
- java api class_Java API:Object class
- 超融合架构的优缺点_知道 超融合基础架构吗
- 大数据之-Hadoop之HDFS_HDFS组成架构---大数据之hadoop工作笔记0050
- [课程设计]任务进度条开发日志目录
- CSITool的安装过程(参照官方教程进行细节处理)
- 【原生JavaScript案例】原生JS实现进度条
- 三相逆变器双pi控制器参数如何调节_电机(四)——永磁同步电机PI参数调节...
- cad用计算机怎么计算坐标,CAD坐标怎样计算
- flutter手写板2.0 橡皮擦
- 增量式(相对式)编码器与绝对式编码器工作原理
- 智慧多功能综合杆案例分享:上海市多杆合一、综合杆道路智慧路灯项目解决方案解析