1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-27 21:24:47 +01:00

Compare commits

...

2 Commits

Author SHA1 Message Date
6e40d8cbc7 Handle Orux maps as directories
(there can not be two Orux maps in the same directory)
2022-08-05 08:40:38 +02:00
0ef28cda0f Fixed map calibration 2022-08-05 08:34:16 +02:00

View File

@ -206,7 +206,7 @@ void OruxMap::calibrationPoints(QXmlStreamReader &reader, const QSize &size,
void OruxMap::mapCalibration(QXmlStreamReader &reader, int level) void OruxMap::mapCalibration(QXmlStreamReader &reader, int level)
{ {
int zoom; int zoom;
QSize tileSize, size; QSize tileSize, size, calibrationSize;
QString datum, projection; QString datum, projection;
QList<CalibrationPoint> points; QList<CalibrationPoint> points;
Projection proj; Projection proj;
@ -241,6 +241,8 @@ void OruxMap::mapCalibration(QXmlStreamReader &reader, int level)
tileSize = QSize(width, height); tileSize = QSize(width, height);
size = QSize(xMax * width, yMax * height); size = QSize(xMax * width, yMax * height);
calibrationSize = size;
GCS gcs(createGCS(datum)); GCS gcs(createGCS(datum));
if (!gcs.isValid()) { if (!gcs.isValid()) {
reader.raiseError(QString("%1: invalid/unknown datum") reader.raiseError(QString("%1: invalid/unknown datum")
@ -254,9 +256,22 @@ void OruxMap::mapCalibration(QXmlStreamReader &reader, int level)
return; return;
} }
reader.readElementText();
} else if (reader.name() == QLatin1String("MapDimensions")) {
int height, width;
QXmlStreamAttributes attr = reader.attributes();
if (!intAttr(reader, attr, "height", height))
return;
if (!intAttr(reader, attr, "width", width))
return;
calibrationSize = QSize(width, height);
reader.readElementText(); reader.readElementText();
} else if (reader.name() == QLatin1String("CalibrationPoints")) } else if (reader.name() == QLatin1String("CalibrationPoints"))
calibrationPoints(reader, size, points); calibrationPoints(reader, calibrationSize, points);
else else
reader.skipCurrentElement(); reader.skipCurrentElement();
} }
@ -467,7 +482,7 @@ Coordinates OruxMap::xy2ll(const QPointF &p)
Map *OruxMap::create(const QString &path, const Projection &, bool *isDir) Map *OruxMap::create(const QString &path, const Projection &, bool *isDir)
{ {
if (isDir) if (isDir)
*isDir = false; *isDir = true;
return new OruxMap(path); return new OruxMap(path);
} }