diff options
author | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2016-10-05 10:41:43 +0200 |
---|---|---|
committer | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2016-10-06 07:58:54 +0000 |
commit | 79697d9fb63a109eb8e5098c90fd287815deb12b (patch) | |
tree | d3816d905d84f633519d0fa2359a6863ebcf9c38 /src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp | |
parent | 5a9e461d9484139f6667d7b01c61d01cfe5675d9 (diff) |
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>
Diffstat (limited to 'src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp')
-rw-r--r-- | src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp | 11 |
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); |