为啥不能为 PositionSource 工作 position.direction?
Posted
技术标签:
【中文标题】为啥不能为 PositionSource 工作 position.direction?【英文标题】:Why does not work position.direction for PositionSource?为什么不能为 PositionSource 工作 position.direction? 【发布时间】:2018-01-05 16:14:11 【问题描述】:我决定看看 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;
并在手机荣耀6(H60-L04)上推出了这款应用。结果经纬度和速度都正常显示了。
但方向和磁性变化 - 一直显示 NaN,如果我在移动或站立。
问题。如何修复代码以使这些值通常从传感器获取?
【问题讨论】:
【参考方案1】:我想通了。
方向是在快速移动的街道上工作。如果在阳台上使用应用程序,有 4 颗活动卫星,方向检测不起作用。
接下来,我不正确地翻译Magnetic Variation。此传感器 - 仅适用于非常指定的设备。我需要一个磁方位(换句话说,地理方位角)。在 PositionSource 类型中,方位角不存在。获取方位角,必须使用 Compass 类型:
Compass
id: compass
dataRate: 1
active: true
onReadingChanged:
labelAzimuth.text=qsTr("Azimuth: ")+compass.reading.azimuth;
【讨论】:
以上是关于为啥不能为 PositionSource 工作 position.direction?的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用类变量的这段代码不能像在 Java 中那样工作? [复制]