From 7550fadd26887ce59c6e0ca5320e6ec6fb61a72a Mon Sep 17 00:00:00 2001 From: zheng_wenlong Date: Wed, 7 Nov 2018 11:06:42 +0900 Subject: add tbtnavi source --- app/qcheapruler.hpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 app/qcheapruler.hpp (limited to 'app/qcheapruler.hpp') diff --git a/app/qcheapruler.hpp b/app/qcheapruler.hpp new file mode 100644 index 0000000..6c569a8 --- /dev/null +++ b/app/qcheapruler.hpp @@ -0,0 +1,61 @@ +#pragma once + +#include +#include +#include +#include + +#include + +namespace cr = mapbox::cheap_ruler; + +class QCheapRuler : public QObject{ + Q_OBJECT + Q_PROPERTY(double distance READ distance NOTIFY distanceChanged) + Q_PROPERTY(double currentDistance READ currentDistance NOTIFY currentDistanceChanged) + Q_PROPERTY(QGeoCoordinate currentPosition READ currentPosition NOTIFY currentPositionChanged) + Q_PROPERTY(QJSValue path READ path WRITE setPath NOTIFY pathChanged) + +public: + QCheapRuler(); + ~QCheapRuler(); + + double distance() const; + + double currentDistance() const; + + QGeoCoordinate currentPosition() const; + + QJSValue path() const; + void setPath(const QJSValue &value); + + Q_INVOKABLE void setCurrentCoordinate(QString,QString); + Q_INVOKABLE void startnaviDemo(); + Q_INVOKABLE void stopnaviDemo(); + +public slots: + void readRoutePosition(); + +signals: + void distanceChanged(); + void currentDistanceChanged(); + void currentPositionChanged(); + void pathChanged(); + void arrivedDest(); + +private: + cr::CheapRuler ruler() const; + void readCoordinateFromFile(); + void setCurrentPosition(double,double); + + ulong m_index = 0; + double m_distance = 0.; + double m_currentDistance = 0.; + QGeoCoordinate m_currentPosition = QGeoCoordinate(36.12546, -115.1729906); + + cr::line_string m_path; + + cr::line_string m_routpoint; + + QTimer *m_Timer; +}; -- cgit 1.2.3-korg