AfriGIS Map SDK (BB10)  v 1.0.0
Provides easy integration of AfriGIS Maps into BB10 platform.
AnnotationView.hpp
1 /*
2  * CustomAnnotationView.hpp
3  *
4  * Created on: Aug 15, 2013
5  * Author: sdsl
6  */
7 
8 #ifndef ANNOTATIONVIEW_HPP_
9 #define ANNOTATIONVIEW_HPP_
10 
11 #include <QtCore/QObject>
12 #include "AGMapDataStruct.hpp"
13 #include "OpenGLView.hpp"
14 #include "OpenGLUtil.hpp"
15 
16 class Item;
17 class ViewManager;
18 
19 
29 class AnnotationView : public OpenGLView
30 {
31  Q_OBJECT
32 
33 public:
34 
39  AnnotationView(ViewManager *viewManager, QList<Item*> *itemList = NULL);
40 
46 
47 public:
48 
53  void render();
54 
59  void update() {}
60 
65  void renderNow();
66 
71  void pan(float moveX,float moveY) {}
72 
77  void zoom(float moveX,float moveY,double scaleX,double scaleY);
78 
83  void setMap() {}
84 
89  void loadTiles() {}
90 
95  void init();
96 
102  void addItemList(QList<Item*> *itemList);
103 
109  void removeItem(Item*);
110 
115  QList<QPair<float,float> >* convertGeoCoordinatesToRelativeCoordinates(QList<AGLocationCoordinate2D> *geoCoordinates);
116 
121  QList<AGLocationCoordinate2D>* convertRelativeCoordinatesToGeoCoordinates(QList<QPair<float,float> > *relativeCoordinates);
122 // QList<Item*> getItemList();
123 
129  QList<Item*> getAllItemList();
130 
136  QList<Item*> getCurretRenderedItemList();
137 
143  void enableClustering(bool status);
144 
150  bool isClusterEnable();
151 
156  AGMapFont_t* getTextFont();
157 public:
158 
163  float centerOfViewX, centerOfViewY;
164 
169  float centerAbsoluteCoordX, centerAbsoluteCoordY;
170 
171 private:
172 
177  int screenWidth, screenHeight;
178 
183  int zoomLevel;
184 
189  bool isClusterEnabled;
190 
195  QList<Item*> itemList;
196 
201  QList<Item*> *itemListForRendering;
202 
207  QList<Item*> *givenItemList;
208 
213  QList<QPair<float,float> > *relativeCoordinates;
214 
219  QList<AGLocationCoordinate2D> *geoCoordinates;
220 
225  ViewManager *viewManager;
226 
231  AGMapFont_t* font;
232 
237  double previousScale;
238 
239 
240 signals:
241 
246  void sigClusterItemList();
247 private slots:
248 
253  void clusterItemList();
254 };
255 
256 #endif /* ANNOTATIONVIEW_HPP_ */
void loadTiles()
private.
Definition: AnnotationView.hpp:89
void removeItem(Item *)
remove a single item
Definition: AnnotationView.cpp:307
void update()
private.
Definition: AnnotationView.hpp:59
QList< QPair< float, float > > * convertGeoCoordinatesToRelativeCoordinates(QList< AGLocationCoordinate2D > *geoCoordinates)
private.
Definition: AnnotationView.cpp:322
void sigClusterItemList()
private.
double scaleX
private.
Definition: OpenGLView.hpp:72
float centerOfViewX
private.
Definition: AnnotationView.hpp:163
void enableClustering(bool status)
enable clustering
Definition: AnnotationView.cpp:57
void pan(float moveX, float moveY)
private.
Definition: AnnotationView.hpp:71
void setMap()
private.
Definition: AnnotationView.hpp:83
~AnnotationView()
destructor
Definition: AnnotationView.cpp:30
QList< AGLocationCoordinate2D > * convertRelativeCoordinatesToGeoCoordinates(QList< QPair< float, float > > *relativeCoordinates)
private.
Definition: AnnotationView.cpp:355
Item interface that need to be implemented by all annotation item object. Currently CircleItem...
Definition: Item.hpp:25
void init()
private.
Definition: AnnotationView.cpp:42
View responsible for presenting annotations visually in map. Annotation view are loosely coupled to a...
Definition: AnnotationView.hpp:29
void render()
private.
Definition: AnnotationView.cpp:401
AnnotationView(ViewManager *viewManager, QList< Item * > *itemList=NULL)
private.
Definition: AnnotationView.cpp:16
float centerAbsoluteCoordX
private.
Definition: AnnotationView.hpp:169
void addItemList(QList< Item * > *itemList)
add item list to draw on annotation view
Definition: AnnotationView.cpp:69
private.
Definition: OpenGLView.hpp:50
AGMapFont_t * getTextFont()
private.
Definition: AnnotationView.cpp:65
void renderNow()
private.
Definition: AnnotationView.cpp:396
QList< Item * > getCurretRenderedItemList()
get all currently rendered item list
Definition: AnnotationView.cpp:291
void zoom(float moveX, float moveY, double scaleX, double scaleY)
private.
Definition: AnnotationView.cpp:301
bool isClusterEnable()
get clster is enabled or not
Definition: AnnotationView.cpp:61
QList< Item * > getAllItemList()
get all item list
Definition: AnnotationView.cpp:451