Fixed bug #5762: Location setting accuracy is not accurate
authorSami Rämö <sami.ramo@ixonos.com>
Tue, 27 Jul 2010 13:07:02 +0000 (16:07 +0300)
committerSami Rämö <sami.ramo@ixonos.com>
Tue, 27 Jul 2010 13:11:12 +0000 (16:11 +0300)
 - Location update does now use more digits. Also required
   the new coordinate classes which use double data type
   for saving the coordinates

 - Reviewed by Katri Kaikkonen

src/situareservice/situareservice.cpp

index c443e3d..2ed9fae 100644 (file)
@@ -191,16 +191,22 @@ QUrl SituareService::formUrl(const QString &baseUrl, const QString &phpScript,
 QString SituareService::formUrlParameters(const GeoCoordinate &coordinates, QString status,
                                           QString publish)
 {
+    qDebug() << __PRETTY_FUNCTION__;
+
+    // one scene pixel is about 5.4e-6 degrees, the integer part is max three digits and one
+    // additional digit is added for maximum precision
+    const int COORDINATE_PRECISION = 10;
+
     QString parameters;
 
     parameters.append(QUESTION_MARK);
     parameters.append(LATITUDE);
     parameters.append(EQUAL_MARK);
-    parameters.append(QString::number(coordinates.latitude()));
+    parameters.append(QString::number(coordinates.latitude(), 'f', COORDINATE_PRECISION));
     parameters.append(AMBERSAND_MARK);
     parameters.append(LONGTITUDE);
     parameters.append(EQUAL_MARK);
-    parameters.append(QString::number(coordinates.longitude()));
+    parameters.append(QString::number(coordinates.longitude(), 'f', COORDINATE_PRECISION));
 
     if(publish.compare(PUBLISH_TRUE) == 0) {
         parameters.append(AMBERSAND_MARK);