IOS trueHeading различные значения при открытии - PullRequest
0 голосов
/ 03 сентября 2018

Я создаю приложение AR, используя GPS-трекинг и компас с Unity3D.

Например, когда я открываю приложение, значение trueHeading равно 260, а когда я закрываю его и открываю снова с другой ориентацией, а затем переключаю устройство в предыдущее состояние, значение trueHeading равно 210.

Я пытаюсь использовать приложение IOS с помощью swift, но возникает та же проблема.

Вот мой код 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 говорится, что Значение в этом свойстве представляет заголовок относительно географического Северного полюса . Но это не работает, как ожидалось.

1 Ответ

0 голосов
/ 03 сентября 2018

Я понимаю, что вы не можете получить идентичный / похожий истинный / магнитный курс от запуска вашего приложения до следующего запуска - плохая повторяемость.

В качестве первого шага проверьте, дает ли встроенное приложение компаса результат, идентичный вашему приложению. Если оба результата совпадают, это производительность вашего оборудования. То, что вы можете сделать, это почти ничего.

Я протестировал свое приложение на двух разных iPhone. Даже если я довольно часто выставляю оба телефона в одном направлении, оба дают нетривиальные различия - 10-20 град. Сравнивая с настоящим (SUNTO) компасом, я понял, что один телефон по какой-то причине имеет худшую производительность (реальную ценность и повторяемость). Я хочу вручную откалибровать компас iphone, но такой интерфейс / API не предоставляется с iOS - только ios определяет, когда калибровать.

Истинный курс определяется путем добавления смещения к магнитному курсу, смещение которого определяется местоположением. Так что, если магнитный курс дает плохую повторяемость, то и истинный курс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...