AfriGIS Map SDK (BB10)  v 1.0.0
Provides easy integration of AfriGIS Maps into BB10 platform.
PolylineItem.hpp
1 /*
2  * PolylineItem.hpp
3  *
4  * Created on: Aug 15, 2013
5  * Author: sdsl
6  */
7 
8 #ifndef POLYLINEITEM_HPP_
9 #define POLYLINEITEM_HPP_
10 
11 #include "Item.hpp"
12 #include "AGMapDataStruct.hpp"
13 
14 class DrawRoute;
15 class ViewManager;
16 class PointsReductionThread;
17 class AnnotationView;
18 
25 class PolylineItem: public Item
26 {
27  Q_OBJECT
28 
29 public:
30 
35  PolylineItem(QList<AGLocationCoordinate2D> *geoLocationCoordinates, bool enableZoomToExtend, ViewManager *viewManager, AGOffsetInPixel offset);
36 
41  ~PolylineItem();
42 
43 public:
44 
49  void render();
50  void updateLocation(QList<AGLocationCoordinate2D> *updatedGeoLocationCoordinates);
51  QList<AGLocationCoordinate2D>* getLocation();
52 
57  void setView(AnnotationView *annotationView);
58 
64 
70  void setAssociatedData(QVariant associatedData);
71 
77  QVariant getAssociatedData();
78 
79 signals:
80 
85  void loadPolylineNow();
86 
87 private slots:
88 
93  void loadPolyline();
94 
95 private:
96 
101  void setRegion();
102 
103 public:
104 
110 
116 
122 
128 
129 private:
130 
135  int currentViewZoomLevel;
136 
141  bool isZoomToExtendEnabled;
142 
147  QList<AGLocationCoordinate2D> *geoLocationCoordinates;
148 
153  QList<QPair<float,float> > *relativeCoordinates;
154 
159  QList<QPair<float,float> > *relativeCoordinatesAfterPointReduction;
160 
165  QList<QPair<AGVertex*, int> > absoluteCoordinatesAtCurrentviewZoomLevel;
166 
171  AGOffsetInPixel offset;
172 
177  DrawRoute *drawRoute;
178 
183  ViewManager *viewManager;
184 
189  AnnotationView *annotationView;
190 
195  PointsReductionThread *pointsReductionThread;
196 };
197 
198 #endif /* POLYLINEITEM_HPP_ */
QVariant getAssociatedData()
get the data associated with this circle.
Definition: PolylineItem.cpp:223
AGLocationCoordinate2D * centerOfRouteGeoLocationCoordinates
private.
Definition: PolylineItem.hpp:127
~PolylineItem()
destructor.
Definition: PolylineItem.cpp:29
PolylineItem(QList< AGLocationCoordinate2D > *geoLocationCoordinates, bool enableZoomToExtend, ViewManager *viewManager, AGOffsetInPixel offset)
private.
Definition: PolylineItem.cpp:14
void loadPolylineNow()
private.
void updateLocation(QList< AGLocationCoordinate2D > *updatedGeoLocationCoordinates)
private.
Definition: PolylineItem.cpp:47
int zoomLevelToViewFullRouteView
private.
Definition: PolylineItem.hpp:109
Item interface that need to be implemented by all annotation item object. Currently CircleItem...
Definition: Item.hpp:25
float centerRelativeOfRouteGeoLocationCoordinatesY
private.
Definition: PolylineItem.hpp:121
View responsible for presenting annotations visually in map. Annotation view are loosely coupled to a...
Definition: AnnotationView.hpp:29
AGOffsetInPixel Move offset pixel to draw annotation item.
Definition: AGMapDataStruct.hpp:102
void setAssociatedData(QVariant associatedData)
set any type of data associated with this circle.
Definition: PolylineItem.cpp:218
QVariant associatedData
private.
Definition: Item.hpp:99
void render()
private.
Definition: PolylineItem.cpp:84
AnnotationView * getView()
private.
Definition: PolylineItem.cpp:79
Annotation Item object representing a poly-line (example: route) on map. This class manages the data ...
Definition: PolylineItem.hpp:25
QList< AGLocationCoordinate2D > * getLocation()
private.
Definition: PolylineItem.cpp:61
void setView(AnnotationView *annotationView)
private.
Definition: PolylineItem.cpp:66
AGLocationCoordinate2D struct for latitude and longitude.
Definition: AGMapDataStruct.hpp:83
float centerRelativeOfRouteGeoLocationCoordinatesX
private.
Definition: PolylineItem.hpp:115