1 #ifndef OSMSCOUT_CLIENT_QT_NAVIGATIONMODEL_H 2 #define OSMSCOUT_CLIENT_QT_NAVIGATIONMODEL_H 43 Q_PROPERTY(QObject *route READ getRoute WRITE setRoute NOTIFY routeChanged)
44 Q_PROPERTY(QObject *routeWay READ getRouteWay NOTIFY routeChanged)
45 Q_PROPERTY(QObject *routeWayAhead READ getRouteWayAhead NOTIFY routeAheadChanged)
46 Q_PROPERTY(QObject *routeWayPassed READ getRouteWayPassed NOTIFY routeAheadChanged)
47 Q_PROPERTY(QObject *nextRouteStep READ getNextRoutStep NOTIFY update)
49 Q_PROPERTY(QObject *vehiclePosition READ getVehiclePosition NOTIFY vehiclePositionChanged)
51 Q_PROPERTY(QDateTime arrivalEstimate READ getArrivalEstimate NOTIFY arrivalUpdate)
52 Q_PROPERTY(
double remainingDistance READ getRemainingDinstance NOTIFY arrivalUpdate)
55 Q_PROPERTY(
double currentSpeed READ getCurrentSpeed NOTIFY currentSpeedUpdate)
57 Q_PROPERTY(
double maxAllowedSpeed READ getMaxAllowedSpeed NOTIFY maxAllowedSpeedUpdate)
59 Q_PROPERTY(
int laneCount READ getLaneCount NOTIFY laneUpdate)
60 Q_PROPERTY(
bool laneSuggested READ isLaneSuggested NOTIFY laneUpdate)
61 Q_PROPERTY(
int suggestedLaneFrom READ getSuggestedLaneFrom NOTIFY laneUpdate)
62 Q_PROPERTY(
int suggestedLaneTo READ getSuggestedLaneTo NOTIFY laneUpdate)
63 Q_PROPERTY(QStringList laneTurns READ getLaneTurns NOTIFY laneUpdate)
69 void routeAheadChanged();
71 void vehiclePositionChanged();
76 void positionChange(
osmscout::GeoCoord coord,
77 bool horizontalAccuracyValid,
double horizontalAccuracy);
79 void rerouteRequest(
double fromLat,
double fromLon,
80 const QString bearing,
82 double toLat,
double toLon);
84 void targetReached(QString targetBearing,
double targetDistance);
86 void positionEstimate(
osmscout::PositionAgent::PositionState state,
double lat,
double lon, QString bearing);
88 void currentSpeedUpdate(
double currentSpeed);
89 void maxAllowedSpeedUpdate(
double maxAllowedSpeed);
94 void locationChanged(
bool locationValid,
95 double lat,
double lon,
96 bool horizontalAccuracyValid,
double horizontalAccuracy);
100 void onUpdateNext(
RouteStep nextRouteInstruction);
102 void onPositionEstimate(const PositionAgent::PositionState state,
103 const GeoCoord coord,
106 void onTargetReached(const
osmscout::Bearing targetBearing,
107 const
osmscout::Distance targetDistance);
109 void onRerouteRequest(const GeoCoord from,
110 const
std::optional<
osmscout::Bearing> initialBearing,
113 void onArrivalEstimate(QDateTime arrivalEstimate,
osmscout::Distance remainingDistance);
115 void onCurrentSpeed(
double currentSpeed);
116 void onMaxAllowedSpeed(
double maxAllowedSpeed);
118 void onLaneUpdate(
osmscout::LaneAgent::Lane lane);
128 bool isPositionOnRoute();
130 QObject *getRoute() const;
131 void setRoute(QObject *route);
133 QObject *getNextRoutStep();
135 QVariant data(const QModelIndex &index,
int role) const;
137 int rowCount(const QModelIndex &parent = QModelIndex()) const;
139 Qt::ItemFlags flags(const QModelIndex &index) const;
141 QHash<
int, QByteArray> roleNames() const;
148 return new OverlayWay(route.routeWay().nodes);
156 if (!route || vehicleState==PositionAgent::Uninitialised){
159 return new VehiclePosition(vehicle, vehicleState, vehicleCoord, vehicleBearing,
160 nextRouteStep.getType().isEmpty() ? std::nullopt : std::optional<GeoCoord>(nextRouteStep.GetCoord()));
165 return arrivalEstimate;
170 if (!remainingDistance.has_value()){
173 return remainingDistance->AsMeter();
183 return maxAllowedSpeed;
193 return lane.suggested;
198 return lane.suggestedFrom;
203 return lane.suggestedTo;
209 for (
const auto &turn : lane.turns){
210 result << QString::fromStdString(turn);
220 PositionAgent::PositionState vehicleState{PositionAgent::Uninitialised};
221 GeoCoord vehicleCoord;
222 std::optional<osmscout::Bearing> vehicleBearing;
224 std::vector<RouteStep> routeSteps;
225 RouteStep nextRouteStep;
227 QDateTime arrivalEstimate;
228 std::optional<osmscout::Distance> remainingDistance;
230 double currentSpeed{-1};
231 double maxAllowedSpeed{-1};
233 LaneAgent::Lane lane;
238 #endif //OSMSCOUT_CLIENT_QT_NAVIGATIONMODEL_H #define OSMSCOUT_CLIENT_QT_API
Definition: ClientQtImportExport.h:45
QDateTime getArrivalEstimate() const
Definition: NavigationModel.h:163
Vehicle
Definition: OSMScoutTypes.h:55
double getMaxAllowedSpeed() const
Definition: NavigationModel.h:181
Definition: QtRouteData.h:40
QStringList getLaneTurns() const
Definition: NavigationModel.h:206
double getCurrentSpeed() const
Definition: NavigationModel.h:176
int getSuggestedLaneFrom() const
Definition: NavigationModel.h:196
Definition: OverlayObject.h:189
Definition: NavigationModel.h:40
VehiclePosition * getVehiclePosition() const
Definition: NavigationModel.h:154
Definition: RouteStep.h:42
Roles
Definition: RouteStep.h:63
bool isLaneSuggested() const
Definition: NavigationModel.h:191
double getRemainingDinstance() const
Definition: NavigationModel.h:168
int getSuggestedLaneTo() const
Definition: NavigationModel.h:201
Definition: VehiclePosition.h:40
Definition: NavigationModule.h:54
int getLaneCount() const
Definition: NavigationModel.h:186