Решил посмотреть, как работает геопозиционирование в 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, хоть двигайся хоть стой на месте.
Вопрос. Почему так, и как исправить чтобы эти значения нормально вытягивались из датчиков?