Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
ellipsoid.h
1 #ifndef ELLIPSOID_H
2 #define ELLIPSOID_H
3 
4 #include "Kernel_global.h"
5 
6 namespace Ilwis {
7 class Ellipsoid;
8 
9 typedef IlwisData<Ilwis::Ellipsoid> IEllipsoid;
10 #define WGS84RESOURCE QString("ilwis://tables/ellipsoid?code=WE")
11 
12 class KERNELSHARED_EXPORT Ellipsoid : public IlwisObject
13 {
14 public:
15  Ellipsoid();
16  Ellipsoid(const Resource &resource);
17  virtual ~Ellipsoid();
18 
19  bool isSpherical() const;
20  bool isEqual(const IEllipsoid &ell) const;
21  bool isValid() const;
22  double distance(const LatLon& begin, const LatLon &end) const;
23  double azimuth(const LatLon &begin, const LatLon &end) const;
24  double majorAxis() const;
25  double minorAxis() const;
26  double flattening() const;
27  double excentricity() const;
28  double excentricity2() const;
29  void setEllipsoid(double a, double f, bool setCodeToo=true);
30  QString authority() const;
31  void setAuthority(const QString &auth);
32  QString toProj4() const;
33  IlwisTypes ilwisType() const;
34 
35  LatLon latlon2Coord(const IEllipsoid &sourceEllipsoide, const LatLon &sourceLatLon) const;
36  Coordinate latlon2Coord(const LatLon &sourceLatLon) const;
37  LatLon coord2latlon(const Coordinate &crd) const;
38  Coordinate coord2coord(const Coordinate& ctsIn, const Coordinate& ctsPivot,
39  double tx, double ty, double tz,
40  double Rx, double Ry, double Rz,
41  double s) const;
42 
43  static const IEllipsoid wgs84ellipsoid;
44 
45 private:
46  Ellipsoid(double a, double f);
47 
48  double _flattening;
49  double _majorAxis;
50  double _minoraxis;
51  double _excentricity;
52  QString _authority;
53 };
54 
55 }
56 
57 #endif // ELLIPSOID_H