mirror of
https://github.com/opentx/opentx.git
synced 2025-07-16 21:05:26 +03:00
Fixes #2326: Google Earth export GPS glitch filtering and lat/lon synchronization (ported from master)
This commit is contained in:
parent
6a3f277fde
commit
c0afcb51f7
4 changed files with 195 additions and 68 deletions
|
@ -1060,3 +1060,55 @@ bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
|
|||
{
|
||||
return s1.toLower() < s2.toLower();
|
||||
}
|
||||
|
||||
bool GpsGlitchFilter::isGlitch(double latitude, double longitude)
|
||||
{
|
||||
if ((fabs(latitude) < 0.1) && (fabs(longitude) < 0.1)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lastValid) {
|
||||
if (fabs(latitude - lastLat) > 0.01) {
|
||||
// qDebug() << "GpsGlitchFilter(): latitude glitch " << latitude << lastLat;
|
||||
if ( ++glitchCount < 10) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (fabs(longitude - lastLon) > 0.01) {
|
||||
// qDebug() << "GpsGlitchFilter(): longitude glitch " << longitude << lastLon;
|
||||
if ( ++glitchCount < 10) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
lastLat = latitude;
|
||||
lastLon = longitude;
|
||||
lastValid = true;
|
||||
glitchCount = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GpsLatLonFilter::isValid(const QString & latitude, const QString & longitude)
|
||||
{
|
||||
if (lastLat == latitude) {
|
||||
return false;
|
||||
}
|
||||
if (lastLon == longitude) {
|
||||
return false;
|
||||
}
|
||||
lastLat = latitude;
|
||||
lastLon = longitude;
|
||||
return true;
|
||||
}
|
||||
|
||||
double toDecimalCoordinate(const QString & value)
|
||||
{
|
||||
if (value.isEmpty()) return 0.0;
|
||||
double temp = int(value.left(value.length()-1).toDouble() / 100);
|
||||
double result = temp + (value.left(value.length() - 1).toDouble() - temp * 100) / 60.0;
|
||||
QChar direction = value.at(value.size()-1);
|
||||
if ((direction == 'S') || (direction == 'W')) {
|
||||
result = -result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue