27 #ifndef PUREPROJECTION_H
28 #define PUREPROJECTION_H
30 #include "../core/size.h"
31 #include "../core/point.h"
32 #include "../internals/pointlatlng.h"
47 virtual Size TileSize()
const=0;
49 virtual double Axis()
const=0;
51 virtual double Flattening()
const=0;
53 virtual core::Point FromLatLngToPixel(
double lat,
double lng,
int const& zoom)=0;
55 virtual PointLatLng FromPixelToLatLng(
const int &x,
const int &y,
const int &zoom)=0;
57 virtual QString
Type(){
return "PureProjection";}
63 virtual Size GetTileMatrixMinXY(
const int &zoom)=0;
64 virtual Size GetTileMatrixMaxXY(
const int &zoom)=0;
65 virtual Size GetTileMatrixSizeXY(
const int &zoom);
66 int GetTileMatrixItemCount(
const int &zoom);
67 virtual Size GetTileMatrixSizePixel(
const int &zoom);
68 QList<core::Point> GetAreaTileList(
const RectLatLng &rect,
const int &zoom,
const int &padding);
69 virtual double GetGroundResolution(
const int &zoom,
const double &latitude);
80 void FromGeodeticToCartesian(
double Lat,
double Lng,
double Height,
double &X,
double &Y,
double &Z);
81 void FromCartesianTGeodetic(
const double &X,
const double &Y,
const double &Z,
double &Lat,
double &Lng);
86 static const double PI;
93 static const double R2D;
94 static const double D2R;
96 static double Sign(
const double &x);
98 static double AdjustLongitude(
double x);
99 static void SinCos(
const double &val,
double &sin,
double &cos);
100 static double e0fn(
const double &x);
101 static double e1fn(
const double &x);
102 static double e2fn(
const double &x);
103 static double e3fn(
const double &x);
104 static double mlfn(
const double &e0,
const double &e1,
const double &e2,
const double &e3,
const double &phi);
105 static qlonglong GetUTMzone(
const double &lon);
111 #endif // PUREPROJECTION_H
Definition: rectlatlng.h:37
Definition: pointlatlng.h:35
Definition: pureprojection.h:42