1#ifndef OSMSCOUT_CLIENT_QT_NAVIGATIONMODEL_H
2#define OSMSCOUT_CLIENT_QT_NAVIGATIONMODEL_H
29#include <QAbstractListModel>
81 bool horizontalAccuracyValid,
double horizontalAccuracy);
90 const QString bearing,
92 double toLat,
double toLon);
105 double lat,
double lon,
106 bool horizontalAccuracyValid,
double horizontalAccuracy);
113 const GeoCoord coord,
117 const
osmscout::Distance targetDistance);
120 const
std::optional<
osmscout::Bearing> initialBearing,
145 QVariant
data(const QModelIndex &index,
int role) const override;
147 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
149 Qt::ItemFlags
flags(const QModelIndex &index) const override;
166 if (!
route || vehicleState==PositionAgent::Uninitialised){
169 return new VehiclePosition(vehicle, vehicleState, vehicleCoord, vehicleBearing,
175 return vehicleState==PositionAgent::EstimateInTunnel;
208 return lane.suggested;
213 return lane.suggestedFrom;
218 return lane.suggestedTo;
224 for (
const auto &turn : lane.turns){
235 PositionAgent::PositionState vehicleState{PositionAgent::Uninitialised};
236 GeoCoord vehicleCoord;
237 std::optional<osmscout::Bearing> vehicleBearing;
239 std::vector<RouteStep> routeSteps;
240 RouteStep nextRouteStep;
242 QDateTime arrivalEstimate;
243 std::optional<osmscout::Distance> remainingDistance;
245 double currentSpeed{-1};
246 double maxAllowedSpeed{-1};
248 LaneAgent::Lane lane;
#define OSMSCOUT_CLIENT_QT_API
Definition ClientQtImportExport.h:45
void targetReached(QString targetBearing, double targetDistance)
void onLaneUpdate(osmscout::LaneAgent::Lane lane)
QObject * getRoute() const
Qt::ItemFlags flags(const QModelIndex &index) const override
int suggestedLaneFrom
Definition NavigationModel.h:65
QObject * routeWayPassed
Definition NavigationModel.h:49
double maxAllowedSpeed
Definition NavigationModel.h:61
QDateTime getArrivalEstimate() const
Definition NavigationModel.h:178
QHash< int, QByteArray > roleNames() const override
int laneCount
Definition NavigationModel.h:63
double remainingDistance
Definition NavigationModel.h:56
QVariant data(const QModelIndex &index, int role) const override
QObject * nextRouteStep
Definition NavigationModel.h:50
QObject * routeWayAhead
Definition NavigationModel.h:48
void vehiclePositionChanged()
void currentSpeedUpdate(double currentSpeed)
double currentSpeed
Definition NavigationModel.h:59
RouteStep::Roles Roles
Definition NavigationModel.h:131
void routeChanged(QtRouteData route, osmscout::Vehicle vehicle)
QObject * getNextRoutStep()
bool positionEstimateInTunnel
Definition NavigationModel.h:53
int suggestedLaneTo
Definition NavigationModel.h:66
int getSuggestedLaneFrom() const
Definition NavigationModel.h:211
void onCurrentSpeed(double currentSpeed)
void onUpdateNext(RouteStep nextRouteInstruction)
int getLaneCount() const
Definition NavigationModel.h:201
void locationChanged(bool locationValid, double lat, double lon, bool horizontalAccuracyValid, double horizontalAccuracy)
int rowCount(const QModelIndex &parent=QModelIndex()) const override
bool getPositionEstimateInTunnel() const
Definition NavigationModel.h:173
bool laneSuggested
Definition NavigationModel.h:64
void onRerouteRequest(const GeoCoord from, const std::optional< osmscout::Bearing > initialBearing, const GeoCoord to)
int getSuggestedLaneTo() const
Definition NavigationModel.h:216
double getRemainingDinstance() const
Definition NavigationModel.h:183
void rerouteRequest(double fromLat, double fromLon, const QString bearing, double bearingAngle, double toLat, double toLon)
void positionEstimate(osmscout::PositionAgent::PositionState state, double lat, double lon, QString bearing)
QDateTime arrivalEstimate
Definition NavigationModel.h:55
void positionChange(osmscout::GeoCoord coord, bool horizontalAccuracyValid, double horizontalAccuracy)
void onUpdate(std::list< RouteStep > instructions)
double getCurrentSpeed() const
Definition NavigationModel.h:191
double getMaxAllowedSpeed() const
Definition NavigationModel.h:196
void positionEstimateInTunnelChanged()
QObject * routeWay
Definition NavigationModel.h:47
VehiclePosition * getVehiclePosition() const
Definition NavigationModel.h:164
OverlayWay * getRouteWay() const
Definition NavigationModel.h:153
void setRoute(QObject *route)
void onTargetReached(const osmscout::Bearing targetBearing, const osmscout::Distance targetDistance)
OverlayWay * getRouteWayAhead() const
void onArrivalEstimate(QDateTime arrivalEstimate, osmscout::Distance remainingDistance)
QStringList laneTurns
Definition NavigationModel.h:67
void onPositionEstimate(const PositionAgent::PositionState state, const GeoCoord coord, const std::optional< osmscout::Bearing > bearing)
QObject * vehiclePosition
Definition NavigationModel.h:52
void maxAllowedSpeedUpdate(double maxAllowedSpeed)
bool isLaneSuggested() const
Definition NavigationModel.h:206
QStringList getLaneTurns() const
Definition NavigationModel.h:221
QObject * route
Definition NavigationModel.h:46
OverlayWay * getRouteWayPassed() const
void onMaxAllowedSpeed(double maxAllowedSpeed)
Definition NavigationModule.h:67
Definition OverlayObject.h:190
Definition QtRouteData.h:40
Definition RouteStep.h:43
Definition VehiclePosition.h:41
std::string OSMSCOUT_API LaneTurnString(LaneTurn turn)
Vehicle
Definition OSMScoutTypes.h:55