Swift - 使用CoreLocation获取设备方向(真实方向,磁极方向)
设备 获取 swift 方向 真实 使用
2023-09-11 14:17:59 时间
CoreLocation这个定位框架除了可以获取设备的位置数据,还可以获取设备的方向(可以用来实现指南针功能等)。
1,CLHeading对象通过一组属性提供航向相关数据:
magneticHeading :磁极方向(磁北对应于随时间变化的地球磁场极点)
trueHeading :真实方向(真北始终指向地理北极点)
headingAccuracy :方向的精度
timestamp :Core Loaction确定位置时的时间戳
description : 方向数据
2,方向值的含义
不管是磁极方向还是真实方向,值的单位是度,类型为CLLocationDirection,即双精度浮点数。
0.0 :前进方向为北
90.0 :前进方向为东
180.0 :前进方向为南
270.0 :前进方向为西
3,下面通过样例进行演示
![](http://www.hangge.com/blog_uploads/201507/2015070713483042905.png)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import UIKit import CoreLocation class ViewController : UIViewController , CLLocationManagerDelegate { //定位管理器 let locationManager: CLLocationManager = CLLocationManager () @IBOutlet weak var label1: UILabel ! @IBOutlet weak var label2: UILabel ! @IBOutlet weak var label3: UILabel ! @IBOutlet weak var label4: UILabel ! override func viewDidLoad() { super .viewDidLoad() //设置定位服务管理器代理 locationManager.delegate = self //设置定位进度 locationManager.desiredAccuracy = kCLLocationAccuracyBest //发送授权申请 locationManager.requestAlwaysAuthorization() } //获取设备是否允许使用定位服务 func locationManager(manager: CLLocationManager !, didChangeAuthorizationStatus status: CLAuthorizationStatus ) { if status == CLAuthorizationStatus . NotDetermined || status == CLAuthorizationStatus . Denied { } else { //允许使用定位服务的话,开启定位服务更新 locationManager.startUpdatingHeading() println ( "方向定位开始" ) //关闭定位 //locationManager.stopUpdatingHeading() } } //方向改变执行 func locationManager(manager: CLLocationManager !, didUpdateHeading newHeading: CLHeading !) { label1.text = "磁极方向:\(newHeading.magneticHeading)" label2.text = "真实方向:\(newHeading.trueHeading)" label3.text = "方向的精度:\(newHeading.headingAccuracy)" label4.text = "时间:\(newHeading.timestamp)" } } |
相关文章
- Seeker:一款可获取高精度地理和设备信息的工具分析
- 基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
- Android实例-读取设备联系人(XE8+小米2)
- linux驱动开发--字符设备:自动创建设备节点
- C# .net中获取台式电脑中串口设备的名称
- 用 iOS-System-Services 框架获取iOS设备所用的设备信息
- 获取显示设备的名称及PNPDeviceID
- Android学习笔记(37):用Configuration类获取和监听设备信息
- Atitit 网络设备的自动发现机制 需求如下: 1、自动获取当前设备所在网段及当前与当前网段有连接的网段的所有IP,并判断出是哪类设备。如:服务器、交换机、防火墙等。 2、如何根据第1点得到的
- 如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
- Android11.0 修改设备名、型号、厂商
- flutter 获取手机设备信息和APP信息
- Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片
- Android 获取Usb设备类型
- js获取设备公网ip + 服务器根据公网ip 获取IP信息
- 获取Android设备唯一标识码
- 龙芯软件开发(24)-- PCI设备初始化2
- android 获取设备Configuration配置信息
- 【EdgeX】edgex-go边缘设备、系统计算理解
- 安卓列出连接设备的所有服务UUID和特征属性UUID