Russian Qt Forum
Май 04, 2024, 10:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Почему не работает position.direction для PositionSource?  (Прочитано 3552 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Январь 05, 2018, 18:58 »

Решил посмотреть, как работает геопозиционирование в Qt. Использую Qt 5.9.2.

Сделал QtQuick2 приложение, прописал в *.pro файл:

Код:
QT += quick positioning

В main.qml добавил:

Код:
import QtPositioning 5.4
...
    Text {
        id: labelLongitude

        anchors.left: parent.left
        anchors.top: parent.top

        font.family: "Helvetica"
        font.pointSize: 24
    }

    Text {
        id: labelLatitude

        anchors.left: parent.left
        anchors.top: labelLongitude.bottom

        font.family: "Helvetica"
        font.pointSize: 24
    }

    Text {
        id: labelSpeed

        anchors.left: parent.left
        anchors.top: labelLatitude.bottom

        font.family: "Helvetica"
        font.pointSize: 24
    }

    Text {
        id: labelDirection

        anchors.left: parent.left
        anchors.top: labelSpeed.bottom

        font.family: "Helvetica"
        font.pointSize: 24
    }

    Text {
        id: labelMagneticVariation

        anchors.left: parent.left
        anchors.top: labelDirection.bottom

        font.family: "Helvetica"
        font.pointSize: 24
    }

    PositionSource {
        id: positionSource
        updateInterval: 1000
        active: true

        onPositionChanged: {
            var coord = positionSource.position.coordinate;
            console.log("Coordinate:", coord.longitude, coord.latitude);

            labelLongitude.text=qsTr("Longitude: ")+(coord.longitude);
            labelLatitude.text=qsTr("Longitude: ")+(coord.latitude);

            labelSpeed.text=qsTr("Speed: ")+positionSource.position.speed;
            labelDirection.text=qsTr("Direction: ")+positionSource.position.direction;
            labelMagneticVariation.text=qsTr("Magnetic Variation: ")+positionSource.position.magneticVariation;
        }
    }

И запустил на телефоне Honor 6 (H60-L04). В результате широта, долгота и скорость показываются нормально.

А вот direction и magneticVariation - все время показывают NaN, хоть двигайся хоть стой на месте.

Вопрос. Почему так, и как исправить чтобы эти значения нормально вытягивались из датчиков?
« Последнее редактирование: Январь 06, 2018, 14:21 от xintrea » Записан

Собираю информацию по крупицам
http://webhamster.ru
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Январь 05, 2018, 19:13 »

А вот direction и magneticVariation - все время показывают NaN, хоть двигайся хоть стой на месте.
Вы на машине двигались или ногами три шага туда - три шага сюда?
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Январь 05, 2018, 22:48 »

А вот direction и magneticVariation - все время показывают NaN, хоть двигайся хоть стой на месте.
Вы на машине двигались или ногами три шага туда - три шага сюда?
Ногами по балкону 7 м длинной. 4 сутника активны, думал что этого достаточно.

Вышел на улицу, заpаботал direction.

magneticVariation как не работал, так и не работает. Но видимо, хоть в хоноре и есть магнитный датчик, магнитное склонние он не реализует. А мне нужно было просто азимут получать, пока не понял как его выдергивать.
« Последнее редактирование: Январь 05, 2018, 23:56 от xintrea » Записан

Собираю информацию по крупицам
http://webhamster.ru
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #3 : Январь 05, 2018, 23:58 »

 Ага, значит походу азимута в типе PositionSource просто нет. Его надо брать из типа Compass.
Записан

Собираю информацию по крупицам
http://webhamster.ru
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 23.