Как получить более высокую точность GPS в iOS 12 - PullRequest
0 голосов
/ 06 апреля 2019

Год назад я выпустил приложение для гольфа на основе GPS.Чтобы наилучшим образом использовать его, необходима высокая точность по горизонтали.Со времени выхода приложения все работало нормально (iOS 10 была последней версией операционной системы в то время).Теперь клиенты сообщают о плохой точности с iOS12 в основном в сочетании с iPhone X производными.

Мне удалось восстановить проблему на моих устройствах разработки.На iPhone X горизонтальная точность <5 м больше недостижима.Был не проблема раньше.На iPhone 6s этот уровень точности достигается в редких случаях.На обоих устройствах была установлена ​​iOS 12.2.</p>

Вот соответствующий код в моем приложении:

Определение переменной в классе:

    var locationManager: CLLocationManager = CLLocationManager()

В представлении загружена ли я поставил:

    locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()
        locationManager.requestAlwaysAuthorization()
        locationManager.startUpdatingLocation()

Тогда der - это следующая функция для определения местоположения (latestLocation), которое обрабатывается в коде (здесь не показан):

    func locationManager(_ manager: CLLocationManager,
                         didUpdateLocations locations: [CLLocation])
    {

    let latestLocation: CLLocation = locations[locations.count - 1]

    horizontalAccuracy.text = String(format: "%.1f",latestLocation.horizontalAccuracy)


        if latestLocation.horizontalAccuracy <= 5.1 {
            horizontalDistance.backgroundColor = UIColor.green
        } else if latestLocation.horizontalAccuracy <= 10.1 {
            horizontalDistance.backgroundColor = UIColor.yellow
        } else {
            horizontalDistance.backgroundColor = UIColor.red
        }

        // remark: this sets the background color of a label according to achieved horizontal accuracy. Since iOS12 the maximum achieved level of accuracy with an iPhoneX is medium (yellow background color).


/*
Some code processing location data
*/

}

Обычно код выполняется, как и ожидалось, но на основе низкого уровня.точность данных.Что-то пропущено в iOS 12 или есть способ повысить точность?Спасибо за вашу помощь!

...