mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-06-25 18:49:16 +02:00
Hardcode web mercator (EPSG 3857) support
This commit is contained in:
@ -3,12 +3,18 @@
|
||||
#include "common/wgs84.h"
|
||||
#include "ellipsoid.h"
|
||||
|
||||
QMap<int, Ellipsoid> Ellipsoid::_ellipsoids = WGS84();
|
||||
QMap<int, Ellipsoid> Ellipsoid::_ellipsoids = defaults();
|
||||
|
||||
QMap<int, Ellipsoid> Ellipsoid::WGS84()
|
||||
const Ellipsoid &Ellipsoid::WGS84()
|
||||
{
|
||||
static Ellipsoid e(WGS84_RADIUS, WGS84_FLATTENING);
|
||||
return e;
|
||||
}
|
||||
|
||||
QMap<int, Ellipsoid> Ellipsoid::defaults()
|
||||
{
|
||||
QMap<int, Ellipsoid> map;
|
||||
map.insert(7030, Ellipsoid(WGS84_RADIUS, WGS84_FLATTENING));
|
||||
map.insert(7030, WGS84());
|
||||
return map;
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,7 @@ public:
|
||||
bool isValid() const
|
||||
{return !(std::isnan(_radius) || std::isnan(_flattening));}
|
||||
|
||||
static const Ellipsoid &WGS84();
|
||||
static const Ellipsoid *ellipsoid(int id);
|
||||
static void loadList(const QString &path);
|
||||
|
||||
@ -31,7 +32,7 @@ private:
|
||||
double _flattening;
|
||||
double _es, _e2s, _b;
|
||||
|
||||
static QMap<int, Ellipsoid> WGS84();
|
||||
static QMap<int, Ellipsoid> defaults();
|
||||
static QMap<int, Ellipsoid> _ellipsoids;
|
||||
};
|
||||
|
||||
|
@ -19,9 +19,6 @@ private:
|
||||
GCS _gcs;
|
||||
};
|
||||
|
||||
static Ellipsoid WGS84e = Ellipsoid(WGS84_RADIUS, WGS84_FLATTENING);
|
||||
static Datum WGS84d = Datum(&WGS84e, 0.0, 0.0, 0.0);
|
||||
|
||||
static int parameter(const QString &str, bool *res)
|
||||
{
|
||||
QString field = str.trimmed();
|
||||
@ -45,12 +42,19 @@ static double parameterd(const QString &str, bool *res)
|
||||
}
|
||||
|
||||
|
||||
QList<GCS::Entry> GCS::_gcss = WGS84();
|
||||
QList<GCS::Entry> GCS::_gcss = defaults();
|
||||
|
||||
QList<GCS::Entry> GCS::WGS84()
|
||||
const GCS &GCS::WGS84()
|
||||
{
|
||||
static Datum d(&Ellipsoid::WGS84(), 0.0, 0.0, 0.0);
|
||||
static GCS g(d, 8901, 9122);
|
||||
return g;
|
||||
}
|
||||
|
||||
QList<GCS::Entry> GCS::defaults()
|
||||
{
|
||||
QList<GCS::Entry> list;
|
||||
list.append(GCS::Entry(4326, 6326, "WGS 84", GCS(WGS84d, 8901, 9122)));
|
||||
list.append(GCS::Entry(4326, 6326, "WGS 84", WGS84()));
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -29,13 +29,14 @@ public:
|
||||
static const GCS *gcs(int geodeticDatum, int primeMeridian,
|
||||
int angularUnits);
|
||||
static const GCS *gcs(const QString &name);
|
||||
static const GCS &WGS84();
|
||||
|
||||
static void loadList(const QString &path);
|
||||
|
||||
private:
|
||||
class Entry;
|
||||
|
||||
static QList<Entry> WGS84();
|
||||
static QList<Entry> defaults();
|
||||
|
||||
Datum _datum;
|
||||
PrimeMeridian _primeMeridian;
|
||||
|
@ -16,7 +16,15 @@ private:
|
||||
PCS _pcs;
|
||||
};
|
||||
|
||||
QList<PCS::Entry> PCS::_pcss;
|
||||
QList<PCS::Entry> PCS::_pcss = defaults();
|
||||
|
||||
QList<PCS::Entry> PCS::defaults()
|
||||
{
|
||||
QList<PCS::Entry> list;
|
||||
list.append(PCS::Entry(3857, 3856, PCS(&GCS::WGS84(), 1024,
|
||||
Projection::Setup(0, 0, NAN, 0, 0, NAN, NAN), 9001, 4499)));
|
||||
return list;
|
||||
}
|
||||
|
||||
static bool parameter(int key, double val, int units, Projection::Setup &setup)
|
||||
{
|
||||
|
@ -38,6 +38,8 @@ public:
|
||||
private:
|
||||
class Entry;
|
||||
|
||||
static QList<PCS::Entry> defaults();
|
||||
|
||||
const GCS *_gcs;
|
||||
Projection::Method _method;
|
||||
Projection::Setup _setup;
|
||||
|
Reference in New Issue
Block a user