我决定看看Qt中的地理定位是如何运作的。我使用的是Qt 5.9.2。
我正在创建Qt Quick 2应用程序,并写入* .pro文件:
QT += quick positioning
在main.qml文件中,我正在添加代码:
import QtPositioning 5.4
...
Text {
id: labelLongitude
anchors.left: parent.left
anchors.top: parent.top
font.pointSize: 24
}
Text {
id: labelLatitude
anchors.left: parent.left
anchors.top: labelLongitude.bottom
font.pointSize: 24
}
Text {
id: labelSpeed
anchors.left: parent.left
anchors.top: labelLatitude.bottom
font.pointSize: 24
}
Text {
id: labelDirection
anchors.left: parent.left
anchors.top: labelSpeed.bottom
font.pointSize: 24
}
Text {
id: labelMagneticVariation
anchors.left: parent.left
anchors.top: labelDirection.bottom
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)上推出此应用程序。因此,正常显示纬度,经度和速度。
但是方向和磁变化 - 一直显示 NaN ,如果我移动或站立。
问题。如何修复代码,以便这些值通常来自传感器?
答案 0 :(得分:0)
我明白了。
方向在快速移动的街道上工作。如果在阳台上使用应用程序,使用4颗有源卫星,方向检测不起作用。
接下来,我错误地翻译磁变化。此传感器 - 仅适用于指定的设备。我需要一个磁力轴承(换句话说,地理方位角)。在 PositionSource 类型中,方位角不存在。要获得方位角,必须使用Compass:
类型Compass {
id: compass
dataRate: 1
active: true
onReadingChanged: {
labelAzimuth.text=qsTr("Azimuth: ")+compass.reading.azimuth;
}
}