8 #include "common/rectc.h"
9 #include "common/util.h"
15 class Map
: public QObject
26 Q_DECLARE_FLAGS(Flags
, Flag
)
28 Map(const QString
&path
, QObject
*parent
= 0)
29 : QObject(parent
), _path(path
) {}
32 const QString
&path() const {return _path
;}
33 virtual QString
name() const {return Util::file2name(path());}
35 virtual bool isValid() const {return true;}
36 virtual bool isReady() const {return true;}
37 virtual QString
errorString() const {return QString();}
39 virtual void load(const Projection
&, const Projection
&, qreal
, bool) {}
40 virtual void unload() {}
42 /* llBounds() is mandatory for maps that do not provide bounds() until
44 virtual RectC
llBounds();
45 virtual QRectF
bounds() = 0;
46 virtual qreal
resolution(const QRectF
&rect
);
48 virtual int zoom() const {return 0;}
49 virtual void setZoom(int) {}
50 virtual int zoomFit(const QSize
&, const RectC
&) {return 0;}
51 virtual int zoomIn() {return 0;}
52 virtual int zoomOut() {return 0;}
54 virtual QPointF
ll2xy(const Coordinates
&c
) = 0;
55 virtual Coordinates
xy2ll(const QPointF
&p
) = 0;
57 virtual void draw(QPainter
*painter
, const QRectF
&rect
, Flags flags
) = 0;
59 virtual void clearCache() {}
60 virtual bool usesDEM() const {return false;}
70 Q_DECLARE_METATYPE(Map
*)
71 Q_DECLARE_OPERATORS_FOR_FLAGS(Map::Flags
)