Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
projectionimplementation.h
1 #ifndef ProjectionImplementationIMPLEMENTATION_H
2 #define ProjectionImplementationIMPLEMENTATION_H
3 
4 #include "Kernel_global.h"
5 
6 namespace Ilwis {
7 
8 class ConventionalCoordinateSystem;
9 
10 class KERNELSHARED_EXPORT ProjectionImplementation
11 {
12 public:
13 
14  ProjectionImplementation(const QString& type=sUNDEF);
15 
16  virtual ~ProjectionImplementation() {}
17 
18  virtual Coordinate latlon2coord(const LatLon&) const = 0;
19  virtual LatLon coord2latlon(const Coordinate&) const = 0;
20  virtual bool prepare(const QString& parms="")=0;
21  virtual QString type() const;
22  virtual void setCoordinateSystem(ConventionalCoordinateSystem *csy);
23 
24  QVariant parameter(Projection::ProjectionParamValue type) const;
25  virtual void setParameter(Projection::ProjectionParamValue type, const QVariant& value);
26  QString parameterName(Projection::ProjectionParamValue pv) const;
27  virtual QString toProj4() const = 0;
28 
29 
30  bool isEqual(const QScopedPointer<ProjectionImplementation> &projimpl);
31 protected:
32  ConventionalCoordinateSystem *_coordinateSystem;
33 
34 private:
35  QHash<Projection::ProjectionParamValue, QVariant> _parameters;
36  QString _projtype;
37 };
38 }
39 
40 
41 #endif // ProjectionImplementationIMPLEMENTATION_H