diff --git a/src/map/projection.cpp b/src/map/projection.cpp index fb4c37e5..1cdb0d5a 100644 --- a/src/map/projection.cpp +++ b/src/map/projection.cpp @@ -8,7 +8,6 @@ #include "proj/polarstereographic.h" #include "proj/obliquestereographic.h" #include "proj/polyconic.h" -#include "proj/latlon.h" #include "datum.h" #include "gcs.h" #include "pcs.h" @@ -40,7 +39,7 @@ Projection::Method::Method(int id) Projection::Projection(const PCS &pcs) : _gcs(pcs.gcs()), _ct(0), _units(pcs.conversion().units()), - _cs(pcs.conversion().cs()), _geographic(false) + _cs(pcs.conversion().cs()) { const Ellipsoid &ellipsoid = _gcs.datum().ellipsoid(); const Projection::Setup &setup = pcs.conversion().setup(); @@ -115,7 +114,7 @@ Projection::Projection(const PCS &pcs) } Projection::Projection(const GCS &gcs, const CoordinateSystem &cs) - : _gcs(gcs), _units(LinearUnits(9001)), _cs(cs), _geographic(true) + : _gcs(gcs), _units(LinearUnits(9001)), _cs(cs) { _ct = new LatLon(gcs.angularUnits()); } @@ -125,7 +124,6 @@ Projection::Projection(const Projection &p) _gcs = p._gcs; _units = p._units; _ct = p._ct ? p._ct->clone() : 0; - _geographic = p._geographic; _cs = p._cs; } @@ -142,7 +140,6 @@ Projection &Projection::operator=(const Projection &p) _gcs = p._gcs; _units = p._units; _ct = p._ct ? p._ct->clone() : 0; - _geographic = p._geographic; _cs = p._cs; } @@ -155,7 +152,7 @@ bool Projection::operator==(const Projection &p) const return false; return (*_ct == *p._ct && _gcs == p._gcs && _units == p._units - && _cs == p._cs && _geographic == p._geographic); + && _cs == p._cs); } PointD Projection::ll2xy(const Coordinates &c) const diff --git a/src/map/projection.h b/src/map/projection.h index d7e00089..f5ad35ce 100644 --- a/src/map/projection.h +++ b/src/map/projection.h @@ -7,6 +7,7 @@ #include "linearunits.h" #include "coordinatesystem.h" #include "gcs.h" +#include "proj/latlon.h" class PCS; class CT; @@ -70,7 +71,7 @@ public: int _id; }; - Projection() : _ct(0), _geographic(false) {} + Projection() : _ct(0) {} Projection(const Projection &p); Projection(const PCS &pcs); Projection(const GCS &gcs, const CoordinateSystem &cs @@ -90,7 +91,10 @@ public: // and except of WMTS/WMS it is not needed. return (_gcs.isValid() && _ct != 0 && _units.isValid()); } - bool isGeographic() const {return _geographic;} + bool isGeographic() const + { + return (dynamic_cast(_ct) != 0); + } PointD ll2xy(const Coordinates &c) const; Coordinates xy2ll(const PointD &p) const; @@ -103,7 +107,6 @@ private: const CT *_ct; LinearUnits _units; CoordinateSystem _cs; - bool _geographic; }; #ifndef QT_NO_DEBUG