Skip to content

Commit 109eca7

Browse files
author
homann
committed
Fix for #546, too low precsision in GPX create layer. Also fixed some compiler wanrnings.
git-svn-id: http://svn.osgeo.org/qgis/branches/Release-0_8_0@6478 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 81fde95 commit 109eca7

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/providers/gpx/gpsdata.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
#include "gpsdata.h"
2626
#include <qgslogger.h>
2727

28+
#define OUTPUT_PRECISION 12
29+
2830
QString GPSObject::xmlify(const QString& str) {
2931
QString tmp = str;
3032
tmp.replace("&", "&amp;");
@@ -84,7 +86,8 @@ void GPSExtended::writeXML(QTextStream& stream) {
8486

8587

8688
void Waypoint::writeXML(QTextStream& stream) {
87-
stream<<"<wpt lat=\""<<lat<<"\" lon=\""<<lon<<"\">\n";
89+
stream << "<wpt lat=\"" << QString::number(lat, 'f', OUTPUT_PRECISION) <<
90+
"\" lon=\"" << QString::number(lon, 'f', OUTPUT_PRECISION) << "\">\n";
8891
GPSPoint::writeXML(stream);
8992
stream<<"</wpt>\n";
9093
}
@@ -93,9 +96,9 @@ void Waypoint::writeXML(QTextStream& stream) {
9396
void Route::writeXML(QTextStream& stream) {
9497
stream<<"<rte>\n";
9598
GPSExtended::writeXML(stream);
96-
for (int i = 0; i < points.size(); ++i) {
97-
stream<<"<rtept lat=\""<<points[i].lat
98-
<<"\" lon=\""<<points[i].lon<<"\">\n";
99+
for (unsigned int i = 0; i < points.size(); ++i) {
100+
stream<<"<rtept lat=\""<< QString::number(points[i].lat, 'f', OUTPUT_PRECISION)
101+
<<"\" lon=\"" << QString::number(points[i].lon, 'f', OUTPUT_PRECISION) <<"\">\n";
99102
points[i].writeXML(stream);
100103
stream<<"</rtept>\n";
101104
}
@@ -106,11 +109,13 @@ void Route::writeXML(QTextStream& stream) {
106109
void Track::writeXML(QTextStream& stream) {
107110
stream<<"<trk>\n";
108111
GPSExtended::writeXML(stream);
109-
for (int i = 0; i < segments.size(); ++i) {
112+
for (unsigned int i = 0; i < segments.size(); ++i) {
110113
stream<<"<trkseg>\n";
111-
for (int j = 0; j < segments[i].points.size(); ++j) {
112-
stream<<"<trkpt lat=\""<<segments[i].points[j].lat
113-
<<"\" lon=\""<<segments[i].points[j].lon<<"\">\n";
114+
for (unsigned int j = 0; j < segments[i].points.size(); ++j) {
115+
stream<<"<trkpt lat=\"" <<
116+
QString::number(segments[i].points[j].lat, 'f', OUTPUT_PRECISION) <<
117+
"\" lon=\""<< QString::number(segments[i].points[j].lon, 'f', OUTPUT_PRECISION) <<
118+
"\">\n";
114119
segments[i].points[j].writeXML(stream);
115120
stream<<"</trkpt>\n";
116121
}

0 commit comments

Comments
 (0)