summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2016-11-08 12:37:03 -0500
committerJules Laplace <jules@okfoc.us>2016-11-08 12:37:03 -0500
commitef4f212fc1482136dba1e690ec589b315b4a377f (patch)
tree0b7e16d72567fafcfd3e08d7c5c591ad07a63458 /StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp
parent5fa81da81260d65113f57a293b6256d334fe8e2d (diff)
build 0.7.0
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp')
-rw-r--r--[-rwxr-xr-x]StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp34
1 files changed, 24 insertions, 10 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp b/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp
index c820cfef..3d40ab4c 100755..100644
--- a/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2013 Canonical Ltd.
+ * Copyright 2013-2016 Canonical Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,11 +21,19 @@
#include "geolocation.h"
-Geolocation::Geolocation(Cordova *cordova): CPlugin(cordova),
- _geoPositionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)) {
+Geolocation::Geolocation(Cordova *cordova)
+ : CPlugin(cordova),
+ _geoPositionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)) {
if (_geoPositionInfoSource.data() != 0) {
- QObject::connect(_geoPositionInfoSource.data(), SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo)));
- QObject::connect(_geoPositionInfoSource.data(), SIGNAL(updateTimeout()), this, SLOT(updateTimeout()));
+ QObject::connect(_geoPositionInfoSource.data(),
+ SIGNAL(positionUpdated(QGeoPositionInfo)),
+ this,
+ SLOT(positionUpdated(QGeoPositionInfo)));
+
+ QObject::connect(_geoPositionInfoSource.data(),
+ SIGNAL(updateTimeout()),
+ this,
+ SLOT(updateTimeout()));
}
}
@@ -81,16 +89,22 @@ void Geolocation::positionUpdated(const QGeoPositionInfo &update) {
p.insert("latitude", coordinate.latitude());
p.insert("longitude", coordinate.longitude());
- p.insert("altitude", coordinate.altitude());
- if (update.hasAttribute(QGeoPositionInfo::VerticalAccuracy))
- p.insert("accuracy", update.attribute(QGeoPositionInfo::VerticalAccuracy));
+ if (coordinate.type() == QGeoCoordinate::Coordinate3D)
+ p.insert("altitude", coordinate.altitude());
+
+ if (update.hasAttribute(QGeoPositionInfo::HorizontalAccuracy))
+ p.insert("accuracy", update.attribute(QGeoPositionInfo::HorizontalAccuracy));
+
if (update.hasAttribute(QGeoPositionInfo::Direction))
p.insert("heading", update.attribute(QGeoPositionInfo::Direction));
+
if (update.hasAttribute(QGeoPositionInfo::GroundSpeed))
p.insert("velocity", update.attribute(QGeoPositionInfo::GroundSpeed));
- if (update.hasAttribute(QGeoPositionInfo::HorizontalAccuracy))
- p.insert("altitudeAccuracy", update.attribute(QGeoPositionInfo::HorizontalAccuracy));
+
+ if (update.hasAttribute(QGeoPositionInfo::VerticalAccuracy))
+ p.insert("altitudeAccuracy", update.attribute(QGeoPositionInfo::VerticalAccuracy));
+
p.insert("timestamp", update.timestamp().toMSecsSinceEpoch());
for (const QString &id: _id2sc.keys()) {