Changed accuracy to include only horizontal accuracy
authorSami Rämö <sami.ramo@ixonos.com>
Mon, 17 May 2010 07:15:21 +0000 (10:15 +0300)
committerSami Rämö <sami.ramo@ixonos.com>
Mon, 17 May 2010 07:15:21 +0000 (10:15 +0300)
src/gps/gpsposition.cpp
src/gps/gpsposition.h
src/map/gpslocationitem.cpp

index a89413a..a9451d3 100644 (file)
@@ -114,8 +114,8 @@ void GPSPosition::lastPosition()
     QGeoCoordinate coordinate = m_gpsSource->lastKnownPosition().coordinate();
 
     if (coordinate.isValid()) {
-        qreal accuracy = biggerAccuracy(m_gpsSource->lastKnownPosition());
-        emit position(QPointF(coordinate.longitude(), coordinate.latitude()), accuracy);
+        emit position(QPointF(coordinate.longitude(), coordinate.latitude()),
+                      accuracy(m_gpsSource->lastKnownPosition()));
     }
 }
 
@@ -123,13 +123,10 @@ void GPSPosition::positionUpdated(QGeoPositionInfo positionInfo)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    if (positionInfo.coordinate().isValid()) {
-
-        qreal accuracy = biggerAccuracy(positionInfo);
-
+    if (positionInfo.coordinate().isValid())
         emit position(QPointF(positionInfo.coordinate().longitude(),
-                          positionInfo.coordinate().latitude()), accuracy);
-    }
+                              positionInfo.coordinate().latitude()),
+                      accuracy(positionInfo));
 }
 
 void GPSPosition::updateTimeout()
@@ -149,27 +146,15 @@ void GPSPosition::setUpdateInterval(int interval)
     }
 }
 
-qreal GPSPosition::biggerAccuracy(QGeoPositionInfo positionInfo)
+qreal GPSPosition::accuracy(QGeoPositionInfo positionInfo)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    qreal horizontalAccuracy = GPS_ACCURACY_UNDEFINED;
-    qreal verticalAccuracy = GPS_ACCURACY_UNDEFINED;
+    qWarning() << __PRETTY_FUNCTION__ << "h: " << positionInfo.attribute(QGeoPositionInfo::HorizontalAccuracy)
+            << "v: " << positionInfo.attribute(QGeoPositionInfo::VerticalAccuracy);
 
     if (positionInfo.hasAttribute(QGeoPositionInfo::HorizontalAccuracy))
-        horizontalAccuracy = positionInfo.attribute(QGeoPositionInfo::HorizontalAccuracy);
-
-    if (positionInfo.hasAttribute(QGeoPositionInfo::VerticalAccuracy))
-        verticalAccuracy = positionInfo.attribute(QGeoPositionInfo::VerticalAccuracy);
-
-    int accuracy = verticalAccuracy;
-
-    if (horizontalAccuracy > accuracy)
-        accuracy = horizontalAccuracy;
-
-    qWarning() << __PRETTY_FUNCTION__ << "accuracy, h:" << horizontalAccuracy
-                                      << "v:" << verticalAccuracy
-                                      << "return:" << accuracy;
-
-    return accuracy;
+        return positionInfo.attribute(QGeoPositionInfo::HorizontalAccuracy);
+    else
+        return GPS_ACCURACY_UNDEFINED;
 }
index fdb536a..8206b71 100644 (file)
@@ -97,12 +97,12 @@ public:
 
 private:
     /**
-    * @brief Return bigger accuracy value from latitude and longitude values.
+    * @brief Return horizontal accuracy
     *
     * @param positionInfo geo position info
-    * @return bigger accuracy value, -1 if undefined
+    * @return accuracy value, -1 if undefined
     */
-    qreal biggerAccuracy(QGeoPositionInfo positionInfo);
+    qreal accuracy(QGeoPositionInfo positionInfo);
 
 private slots:
 
@@ -125,6 +125,9 @@ private slots:
     */
     void updateTimeout();
 
+/*******************************************************************************
+ * DATA MEMBERS
+ ******************************************************************************/
 private:
     QGeoPositionInfoSource *m_gpsSource;        ///< GPS position info source
     bool m_running;                             ///< GPS is running
index 9e6cc98..e164366 100644 (file)
@@ -19,7 +19,7 @@
     USA.
 */
 
-const int ACCURATE_LIMIT = 250; // this and lower values (in meters) are considered as accurate
+const int ACCURATE_LIMIT = 50; // this and lower values (in meters) are considered as accurate
 
 #include <QDebug>
 #include <QGraphicsPixmapItem>