[QGIS Commit] r14961 - trunk/qgis/src/providers/wfs

svn_qgis at osgeo.org svn_qgis at osgeo.org
Tue Dec 21 12:19:08 EST 2010


Author: mhugent
Date: 2010-12-21 09:19:08 -0800 (Tue, 21 Dec 2010)
New Revision: 14961

Modified:
   trunk/qgis/src/providers/wfs/qgswfsprovider.cpp
Log:
Enhance precision for wfs-t coordinates if srs is in degrees. Fixes bug #3358

Modified: trunk/qgis/src/providers/wfs/qgswfsprovider.cpp
===================================================================
--- trunk/qgis/src/providers/wfs/qgswfsprovider.cpp	2010-12-21 16:24:38 UTC (rev 14960)
+++ trunk/qgis/src/providers/wfs/qgswfsprovider.cpp	2010-12-21 17:19:08 UTC (rev 14961)
@@ -1967,6 +1967,14 @@
   coordElem.setAttribute( "cs", "," );
   coordElem.setAttribute( "ts", " " );
 
+  //precision 4 for meters / feet, precision 8 for degrees
+  int precision = 8;
+  if ( mSourceCRS.mapUnits() == QGis::Meters
+       || mSourceCRS.mapUnits() == QGis::Feet )
+  {
+    precision = 4;
+  }
+
   QString coordString;
   QVector<QgsPoint>::const_iterator pointIt = points.constBegin();
   for ( ; pointIt != points.constEnd(); ++pointIt )
@@ -1975,9 +1983,9 @@
     {
       coordString += " ";
     }
-    coordString += QString::number( pointIt->x() );
+    coordString += QString::number( pointIt->x(), 'f', precision );
     coordString += ",";
-    coordString += QString::number( pointIt->y() );
+    coordString += QString::number( pointIt->y(), 'f', precision );
   }
 
   QDomText coordText = doc.createTextNode( coordString );



More information about the QGIS-commit mailing list