mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-11 20:39:52 +08:00
Export GPS poses: set 8 decimals (1 mm accuracy) https://github.com/introlab/rtabmap_ros/issues/833
This commit is contained in:
+10
-10
@@ -524,9 +524,9 @@ bool exportGPS(
|
|||||||
for(std::map<int, GPS>::const_iterator iter=gpsValues.begin(); iter!=gpsValues.end(); ++iter)
|
for(std::map<int, GPS>::const_iterator iter=gpsValues.begin(); iter!=gpsValues.end(); ++iter)
|
||||||
{
|
{
|
||||||
values += uFormat("%s,%s,%s ",
|
values += uFormat("%s,%s,%s ",
|
||||||
uReplaceChar(uNumber2Str(iter->second.longitude()), ',', '.').c_str(),
|
uReplaceChar(uNumber2Str(iter->second.longitude(), 8), ',', '.').c_str(),
|
||||||
uReplaceChar(uNumber2Str(iter->second.latitude()), ',', '.').c_str(),
|
uReplaceChar(uNumber2Str(iter->second.latitude(), 8), ',', '.').c_str(),
|
||||||
uReplaceChar(uNumber2Str(iter->second.altitude()), ',', '.').c_str());
|
uReplaceChar(uNumber2Str(iter->second.altitude(), 8), ',', '.').c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// switch argb (Qt format) -> abgr
|
// switch argb (Qt format) -> abgr
|
||||||
@@ -580,13 +580,13 @@ bool exportGPS(
|
|||||||
fprintf(fout, "# stamp longitude latitude altitude error bearing\n");
|
fprintf(fout, "# stamp longitude latitude altitude error bearing\n");
|
||||||
for(std::map<int, GPS>::const_iterator iter=gpsValues.begin(); iter!=gpsValues.end(); ++iter)
|
for(std::map<int, GPS>::const_iterator iter=gpsValues.begin(); iter!=gpsValues.end(); ++iter)
|
||||||
{
|
{
|
||||||
fprintf(fout, "%f %f %f %f %f %f\n",
|
fprintf(fout, "%f %.*f %.*f %.*f %.*f %.*f\n",
|
||||||
iter->second.stamp(),
|
iter->second.stamp(),
|
||||||
iter->second.longitude(),
|
8, iter->second.longitude(),
|
||||||
iter->second.latitude(),
|
8, iter->second.latitude(),
|
||||||
iter->second.altitude(),
|
8, iter->second.altitude(),
|
||||||
iter->second.error(),
|
8, iter->second.error(),
|
||||||
iter->second.bearing());
|
8, iter->second.bearing());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -109,13 +109,13 @@ std::string UTILITE_EXP uNumber2Str(int number);
|
|||||||
* @param number the number to convert in a string
|
* @param number the number to convert in a string
|
||||||
* @return the string
|
* @return the string
|
||||||
*/
|
*/
|
||||||
std::string UTILITE_EXP uNumber2Str(float number);
|
std::string UTILITE_EXP uNumber2Str(float number, int precision=6);
|
||||||
/**
|
/**
|
||||||
* Convert a number (double) to a string.
|
* Convert a number (double) to a string.
|
||||||
* @param number the number to convert in a string
|
* @param number the number to convert in a string
|
||||||
* @return the string
|
* @return the string
|
||||||
*/
|
*/
|
||||||
std::string UTILITE_EXP uNumber2Str(double number);
|
std::string UTILITE_EXP uNumber2Str(double number, int precision=6);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a string to an integer.
|
* Convert a string to an integer.
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <iomanip>
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
@@ -101,17 +102,17 @@ std::string uNumber2Str(int number)
|
|||||||
return s.str();
|
return s.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string uNumber2Str(float number)
|
std::string uNumber2Str(float number, int precision)
|
||||||
{
|
{
|
||||||
std::stringstream s;
|
std::stringstream s;
|
||||||
s << number;
|
s << std::setprecision(precision) << std::fixed << number;
|
||||||
return s.str();
|
return s.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string uNumber2Str(double number)
|
std::string uNumber2Str(double number, int precision)
|
||||||
{
|
{
|
||||||
std::stringstream s;
|
std::stringstream s;
|
||||||
s << number;
|
s << std::setprecision(precision) << std::fixed << number;
|
||||||
return s.str();
|
return s.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user