mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-24 11:45:53 +01:00
Missing file changes...
This commit is contained in:
parent
60f107d7cd
commit
8f815a6af0
@ -151,7 +151,8 @@ SOURCES += src/main.cpp \
|
|||||||
src/tar.cpp \
|
src/tar.cpp \
|
||||||
src/atlas.cpp \
|
src/atlas.cpp \
|
||||||
src/mercator.cpp \
|
src/mercator.cpp \
|
||||||
src/transversemercator.cpp
|
src/transversemercator.cpp \
|
||||||
|
src/utm.cpp
|
||||||
RESOURCES += gpxsee.qrc
|
RESOURCES += gpxsee.qrc
|
||||||
TRANSLATIONS = lang/gpxsee_cs.ts \
|
TRANSLATIONS = lang/gpxsee_cs.ts \
|
||||||
lang/gpxsee_sv.ts
|
lang/gpxsee_sv.ts
|
||||||
|
@ -128,6 +128,12 @@ int OfflineMap::parseMapFile(QIODevice &device, QList<ReferencePoint> &points,
|
|||||||
bool OfflineMap::createProjection(const QString &projection,
|
bool OfflineMap::createProjection(const QString &projection,
|
||||||
const ProjectionSetup &setup, QList<ReferencePoint> &points)
|
const ProjectionSetup &setup, QList<ReferencePoint> &points)
|
||||||
{
|
{
|
||||||
|
if (points.count() < 2) {
|
||||||
|
qWarning("%s: insufficient number of reference points",
|
||||||
|
qPrintable(_name));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (projection == "Mercator")
|
if (projection == "Mercator")
|
||||||
_projection = new Mercator();
|
_projection = new Mercator();
|
||||||
else if (projection == "Transverse Mercator")
|
else if (projection == "Transverse Mercator")
|
||||||
@ -135,9 +141,16 @@ bool OfflineMap::createProjection(const QString &projection,
|
|||||||
setup.falseEasting, setup.falseNorthing);
|
setup.falseEasting, setup.falseNorthing);
|
||||||
else if (projection == "Latitude/Longitude")
|
else if (projection == "Latitude/Longitude")
|
||||||
_projection = new LatLon();
|
_projection = new LatLon();
|
||||||
else if (projection == "(UTM) Universal Transverse Mercator")
|
else if (projection == "(UTM) Universal Transverse Mercator") {
|
||||||
|
if (setup.zone)
|
||||||
_projection = new UTM(setup.zone);
|
_projection = new UTM(setup.zone);
|
||||||
|
else if (!points.first().ll.isNull())
|
||||||
|
_projection = new UTM(points.first().ll);
|
||||||
else {
|
else {
|
||||||
|
qWarning("%s: Can not determine UTM zone", qPrintable(_name));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
qWarning("%s: %s: unsupported map projection", qPrintable(_name),
|
qWarning("%s: %s: unsupported map projection", qPrintable(_name),
|
||||||
qPrintable(projection));
|
qPrintable(projection));
|
||||||
return false;
|
return false;
|
||||||
@ -152,11 +165,7 @@ bool OfflineMap::createProjection(const QString &projection,
|
|||||||
|
|
||||||
bool OfflineMap::computeTransformation(const QList<ReferencePoint> &points)
|
bool OfflineMap::computeTransformation(const QList<ReferencePoint> &points)
|
||||||
{
|
{
|
||||||
if (points.count() < 2) {
|
Q_ASSERT(points.count() >= 2);
|
||||||
qWarning("%s: insufficient number of reference points",
|
|
||||||
qPrintable(_name));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Matrix c(3, 2);
|
Matrix c(3, 2);
|
||||||
c.zeroize();
|
c.zeroize();
|
||||||
|
@ -3,6 +3,15 @@
|
|||||||
#include "wgs84.h"
|
#include "wgs84.h"
|
||||||
#include "transversemercator.h"
|
#include "transversemercator.h"
|
||||||
|
|
||||||
|
|
||||||
|
TransverseMercator::TransverseMercator()
|
||||||
|
{
|
||||||
|
_centralMeridian = 0;
|
||||||
|
_scale = 1.0;
|
||||||
|
_falseEasting = 0;
|
||||||
|
_falseNorthing = 0;
|
||||||
|
}
|
||||||
|
|
||||||
TransverseMercator::TransverseMercator(double centralMeridian, double scale,
|
TransverseMercator::TransverseMercator(double centralMeridian, double scale,
|
||||||
double falseEasting, double falseNorthing)
|
double falseEasting, double falseNorthing)
|
||||||
{
|
{
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
class TransverseMercator : public Projection
|
class TransverseMercator : public Projection
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
TransverseMercator();
|
||||||
TransverseMercator(double centralMeridian, double scale,
|
TransverseMercator(double centralMeridian, double scale,
|
||||||
double falseEasting, double falseNorthing);
|
double falseEasting, double falseNorthing);
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ class UTM : public Projection
|
|||||||
public:
|
public:
|
||||||
UTM(int zone) : _tm((qAbs(zone) - 1)*6 - 180 + 3, 0.9996, 500000,
|
UTM(int zone) : _tm((qAbs(zone) - 1)*6 - 180 + 3, 0.9996, 500000,
|
||||||
zone < 0 ? 10000000 : 0) {}
|
zone < 0 ? 10000000 : 0) {}
|
||||||
|
UTM(const Coordinates &c);
|
||||||
|
|
||||||
virtual QPointF ll2xy(const Coordinates &c) const
|
virtual QPointF ll2xy(const Coordinates &c) const
|
||||||
{return _tm.ll2xy(c);}
|
{return _tm.ll2xy(c);}
|
||||||
|
Loading…
Reference in New Issue
Block a user