1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-28 05:34:47 +01:00

Code cleanup

This commit is contained in:
Martin Tůma 2017-08-15 13:36:18 +02:00
parent a7154988ab
commit a45125be9a
2 changed files with 34 additions and 25 deletions

View File

@ -244,12 +244,8 @@ bool OfflineMap::createProjection(const QString &datum,
return true;
}
bool OfflineMap::computeTransformation(const QList<ReferencePoint> &points)
bool OfflineMap::simpleTransformation(const QList<ReferencePoint> &points)
{
Q_ASSERT(points.size() >= 2);
// translate + scale
if (points.size() == 2) {
if (points.at(0).xy.x() == points.at(1).xy.x()
|| points.at(0).xy.y() == points.at(1).xy.y()) {
_errorString = "Invalid reference points tuple";
@ -269,9 +265,10 @@ bool OfflineMap::computeTransformation(const QList<ReferencePoint> &points)
_inverted = _transform.inverted();
return true;
}
}
// full affine transformation (least squares method)
bool OfflineMap::affineTransformation(const QList<ReferencePoint> &points)
{
Matrix c(3, 2);
c.zeroize();
for (size_t i = 0; i < c.h(); i++) {
@ -317,6 +314,16 @@ bool OfflineMap::computeTransformation(const QList<ReferencePoint> &points)
return true;
}
bool OfflineMap::computeTransformation(const QList<ReferencePoint> &points)
{
Q_ASSERT(points.size() >= 2);
if (points.size() == 2)
return simpleTransformation(points);
else
return affineTransformation(points);
}
bool OfflineMap::computeResolution(QList<ReferencePoint> &points)
{
Q_ASSERT(points.count() >= 2);

View File

@ -75,6 +75,8 @@ private:
bool totalSizeSet();
bool createProjection(const QString &datum, const QString &projection,
const ProjectionSetup &setup, QList<ReferencePoint> &points);
bool simpleTransformation(const QList<ReferencePoint> &points);
bool affineTransformation(const QList<ReferencePoint> &points);
bool computeTransformation(const QList<ReferencePoint> &points);
bool computeResolution(QList<ReferencePoint> &points);
bool getTileInfo(const QStringList &tiles, const QString &path = QString());