Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
coordinatesystem.h
1 #ifndef COORDINATESYSTEM_H
2 #define COORDINATESYSTEM_H
3 
4 #include "Kernel_global.h"
5 
6 namespace Ilwis {
7 
8 class CoordinateSystem;
9 template<class T> class Box;
10 
12 
13 class KERNELSHARED_EXPORT CoordinateSystem : public IlwisObject
14 {
15 public:
17  CoordinateSystem(const Ilwis::Resource &resource);
18 
19  virtual Coordinate coord2coord(const ICoordinateSystem& sourceCs, const Coordinate& crdSource) const =0;
20  virtual LatLon coord2latlon(const Coordinate &crdSource) const =0;
21  virtual Coordinate latlon2coord(const LatLon& ll) const = 0;
22  virtual Ilwis::Envelope convertEnvelope(const ICoordinateSystem& sourceCs, const Envelope& envelope) const;
23  virtual bool canConvertToLatLon() const;
24  virtual bool canConvertToCoordinate() const;
25  virtual Coordinate inverseCoordinateConversion(const CoordinateSystem& cs, const Coordinate& crd) const;
26  Ilwis::Envelope envelope() const;
27  void envelope(const Envelope &env);
28  virtual bool isLatLon() const = 0;
29 
30 private:
31  Ilwis::Envelope _envelope;
32 
33 };
34 
35 }
36 
37 Q_DECLARE_METATYPE(Ilwis::ICoordinateSystem)
38 
39 
40 #endif // COORDINATESYSTEM_H