summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@qt.io>2016-10-05 10:41:43 +0200
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2016-10-06 07:58:54 +0000
commit79697d9fb63a109eb8e5098c90fd287815deb12b (patch)
treed3816d905d84f633519d0fa2359a6863ebcf9c38
parent5a9e461d9484139f6667d7b01c61d01cfe5675d9 (diff)
downloadqtlocation-79697d9fb63a109eb8e5098c90fd287815deb12b.tar.gz
winrt: Add direction to position information
QGeoPositionInfo::Direction matches to IGeoCoordinate::heading, both in degrees to true north. Task-number: QTBUG-56340 Change-Id: I9f3a5a207dd781d367096e8c04a2e3b09e64ea05 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r--src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
index bc3ce6e7..afd499d3 100644
--- a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
+++ b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
@@ -486,6 +486,17 @@ HRESULT QGeoPositionInfoSourceWinRT::onPositionChanged(IGeolocator *locator, IPo
currentInfo.setAttribute(QGeoPositionInfo::GroundSpeed, value);
}
+ IReference<double> *heading;
+ hr = coord.Get()->get_Heading(&heading);
+ if (SUCCEEDED(hr) && heading) {
+ double value;
+ hr = heading->get_Value(&value);
+ double mod = 360;
+ value = modf(value, &mod);
+ if (value >=0 && value <= 359) // get_Value might return nan/-nan
+ currentInfo.setAttribute(QGeoPositionInfo::Direction, value);
+ }
+
currentInfo.setTimestamp(QDateTime::currentDateTime());
emit nativePositionUpdate(currentInfo);