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打开时打开不同的值的主要内容,如果未能解决你的问题,请参考以下文章