IOS true打开时打开不同的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS true打开时打开不同的值相关的知识,希望对你有一定的参考价值。

我使用GPS跟踪和指南针与Unity3D创建一个AR应用程序。

例如,当我打开app时,trueHeading是260,当我关闭它并以不同方向再次打开时,然后将设备转到先前状态,trueHeading为210。

我用swift尝试ios本机应用程序,但同样的问题发生。

这是我的Swift代码

import UIKit
import CoreLocation

class ViewController: UIViewController ,CLLocationManagerDelegate {

    var lm:CLLocationManager!

    override func viewDidLoad() {
        super.viewDidLoad()

        lm = CLLocationManager()
        lm.delegate = self

        lm.startUpdatingHeading()

        Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(printHeading), userInfo: nil, repeats: true)

    }

    @objc func printHeading() {
        print(self.lm.heading?.trueHeading)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

magneticHeading也出现同样的问题。

IOS documentation说,此属性中的值表示相对于地理北极的航向。但它不能按预期工作。

答案

我知道你不能从应用程序的运行到下一次运行获得相同/相似的真/磁标题 - 重复性差。

首先,检查内置指南针应用程序是否提供与您的应用程序相同的结果。如果两个结果都一致,那就是硬件的性能。你能做的几乎没有。

我用两个不同的iPhone测试了我的应用程序。即使我经常将两部手机放在同一个方向上,两者都会产生非平凡的差异 - 10-20度。通过与真实(SUNTO)指南针的比较,我意识到一部手机由于某种原因而具有较差的性能(真实值和可重复性)。我想手动校准iphone的指南针,但没有这样的UI / API与iOS相关 - 只有ios确定何时校准。

仅通过向磁航向添加偏移来给出真实航向,其偏移由位置确定。因此,如果磁航向的重复性差,那么真正的航向也是如此。

以上是关于IOS true打开时打开不同的值的主要内容,如果未能解决你的问题,请参考以下文章

打开时 QSerialPort 错误信号,但打开返回 true

ViewPager2 中未显示图像(片段重新打开时)

Activity打开时软件盘自动打开的解决办法

从今天扩展程序打开时 iOS 应用程序崩溃

.dialog打开时执行方法

键盘打开时,带有片段的活动不会调整大小