forked from foldynl/QLog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMapWidget.h
48 lines (37 loc) · 1.09 KB
/
MapWidget.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef QLOG_UI_MAPWIDGET_H
#define QLOG_UI_MAPWIDGET_H
#include <QWidget>
#include <QGraphicsView>
#include <QGraphicsScene>
namespace Ui {
class MapWidget;
}
class MapWidget : public QGraphicsView
{
Q_OBJECT
public:
explicit MapWidget(QWidget* parent = nullptr);
~MapWidget();
public slots:
void setTarget(double lat, double lon);
void clear();
void redraw();
protected:
void showEvent(QShowEvent* event);
void resizeEvent(QResizeEvent* event);
private:
void redrawNightOverlay();
void drawPoint(const QPoint &point);
void drawLine(const QPoint &pointA, const QPoint &pointB);
void pointToRad(const QPoint &point, double& lat, double& lon);
void pointToCoord(const QPoint &point, double& lat, double& lon);
QPoint radToPoint(const double lat, const double lon);
QPoint coordToPoint(const double lat, const double lon);
int sunSize = 20;
QGraphicsPixmapItem* nightOverlay;
QList<QGraphicsItem*> items;
QGraphicsEllipseItem* sunItem;
QGraphicsPathItem* terminatorItem;
QGraphicsScene* scene;
};
#endif // QLOG_UI_MAPWIDGET_H