繁体   English   中英

Apple Watch 套件 - 获取标题

[英]Apple Watch Kit - get heading

是否有任何信息是否可以接收Apple Watch的'heading'?

我想在用户需要去的地方显示一个箭头,相对于他当前拿着手表的方式。 在 iPhone 上,您可以使用 CLLocationManager 标题来执行此操作,但我不确定这是否/如何在 Apple Watch 上工作(我不需要 iPhone 标题;))

是否有任何关于此的文档可以链接到我?

Apple Watch 中没有指南针……您可以根据连续的 GPS 位置猜测航向(GPS 也在 iphone 上运行……)依靠 iPhone 的指南针可能不合适!

由于 WatchKit 不提供对 Apple Watch 硬件的访问(并且手表中没有磁力计,无论如何),您将处理手机的方向。

因此,在静止不动的情况下获得准确的航向目前是不可行的。 但是,如果您同意先进行一些移动,则可以根据多个记录的位置坐标计算方位。 答案这个问题(IOS)或这一个(一般数学)可能被证明对你有用。

您现在可以使用 Core Location 中的“magneticHeading”或“trueHeading”(Apple Watch Serie 5+,watchOS 6.0+)

这是一个基本示例:

import CoreLocation

class yourClass {
    let locationManager = CLLocationManager()

    init() {
        setupCoreLocation()
    }

    func setupCoreLocation() {
        guard CLLocationManager.headingAvailable() else { return }
        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()
        // additional setup available if needed
    }
}

extension yourClass: CLLocationManagerDelegate {
    func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
        let magneticHeading = newHeading.magneticHeading
        let trueHeading = newHeading.trueHeading
        // Do something with the new heading values
    }
}

然后,当您需要航向值时,您可以:

locationManager.startUpdatingHeading()

当您不再需要它们时,您可以:

locationManager.stopUpdatingHeading()

以下是所有 Apple 官方文档:

核心位置

CL标题

磁航向

真实标题

标题和课程信息基础知识

不要忘记先检查“标题”是否可用: headingAvailable()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM