42 QML_NAMED_ELEMENT(RouteModel)
43 QML_ADDED_IN_VERSION(5, 0)
47 Q_PROPERTY(QDeclarativeGeoServiceProvider *plugin READ plugin WRITE setPlugin NOTIFY pluginChanged)
48 Q_PROPERTY(QDeclarativeGeoRouteQuery *query READ query WRITE setQuery NOTIFY queryChanged)
49 Q_PROPERTY(
int count READ count NOTIFY countChanged)
50 Q_PROPERTY(
bool autoUpdate READ autoUpdate WRITE setAutoUpdate NOTIFY autoUpdateChanged)
51 Q_PROPERTY(Status status READ status NOTIFY statusChanged)
52 Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
53 Q_PROPERTY(RouteError error READ error NOTIFY errorChanged)
54 Q_PROPERTY(QLocale::MeasurementSystem measurementSystem READ measurementSystem WRITE setMeasurementSystem NOTIFY measurementSystemChanged)
56 Q_INTERFACES(QQmlParserStatus)
60 RouteRole = Qt::UserRole + 500
71 NoError = QGeoRouteReply::NoError,
72 EngineNotSetError = QGeoRouteReply::EngineNotSetError,
73 CommunicationError = QGeoRouteReply::CommunicationError,
74 ParseError = QGeoRouteReply::ParseError,
75 UnsupportedOptionError = QGeoRouteReply::UnsupportedOptionError,
76 UnknownError = QGeoRouteReply::UnknownError,
80 UnknownParameterError = 100,
81 MissingRequiredParameterError
84 explicit QDeclarativeGeoRouteModel(QObject *parent =
nullptr);
87 void classBegin() override {}
88 void componentComplete() override;
91 int rowCount(
const QModelIndex &parent)
const override;
92 QVariant data(
const QModelIndex &index,
int role)
const override;
93 QHash<
int,QByteArray> roleNames()
const override;
95 void setPlugin(QDeclarativeGeoServiceProvider *plugin);
96 QDeclarativeGeoServiceProvider *plugin()
const;
98 void setQuery(QDeclarativeGeoRouteQuery *query);
99 QDeclarativeGeoRouteQuery *query()
const;
101 void setAutoUpdate(
bool autoUpdate);
102 bool autoUpdate()
const;
104 void setMeasurementSystem(QLocale::MeasurementSystem ms);
105 QLocale::MeasurementSystem measurementSystem()
const;
107 Status status()
const;
108 QString errorString()
const;
109 RouteError error()
const;
112 Q_INVOKABLE QGeoRoute get(
int index);
113 Q_INVOKABLE
void reset();
114 Q_INVOKABLE
void cancel();
118 void pluginChanged();
120 void autoUpdateChanged();
121 void statusChanged();
123 void routesChanged();
124 void measurementSystemChanged();
125 void abortRequested();
131 void routingFinished(QGeoRouteReply *reply);
132 void routingError(QGeoRouteReply *reply,
133 QGeoRouteReply::Error error,
134 const QString &errorString);
135 void queryDetailsChanged();
139 void setStatus(Status status);
140 void setError(RouteError error,
const QString &errorString);
142 bool complete_ =
false;
144 QDeclarativeGeoServiceProvider *plugin_ =
nullptr;
145 QDeclarativeGeoRouteQuery *routeQuery_ =
nullptr;
147 QList<QGeoRoute> routes_;
148 bool autoUpdate_ =
false;
149 Status status_ = QDeclarativeGeoRouteModel::Null;
150 QString errorString_;
151 RouteError error_ = QDeclarativeGeoRouteModel::NoError;
157 QML_NAMED_ELEMENT(RouteQuery)
158 QML_ADDED_IN_VERSION(5, 0)
161 Q_ENUMS(FeatureWeight)
162 Q_ENUMS(SegmentDetail)
163 Q_ENUMS(ManeuverDetail)
164 Q_ENUMS(RouteOptimization)
165 Q_FLAGS(RouteOptimizations)
166 Q_FLAGS(ManeuverDetails)
167 Q_FLAGS(SegmentDetails)
170 Q_PROPERTY(
int numberAlternativeRoutes READ numberAlternativeRoutes WRITE setNumberAlternativeRoutes NOTIFY numberAlternativeRoutesChanged)
171 Q_PROPERTY(TravelModes travelModes READ travelModes WRITE setTravelModes NOTIFY travelModesChanged)
172 Q_PROPERTY(RouteOptimizations routeOptimizations READ routeOptimizations WRITE setRouteOptimizations NOTIFY routeOptimizationsChanged)
173 Q_PROPERTY(SegmentDetail segmentDetail READ segmentDetail WRITE setSegmentDetail NOTIFY segmentDetailChanged)
174 Q_PROPERTY(ManeuverDetail maneuverDetail READ maneuverDetail WRITE setManeuverDetail NOTIFY maneuverDetailChanged)
175 Q_PROPERTY(QList<QGeoCoordinate> waypoints READ waypoints WRITE setWaypoints NOTIFY waypointsChanged)
176 Q_PROPERTY(QList<QGeoRectangle> excludedAreas READ excludedAreas WRITE setExcludedAreas NOTIFY excludedAreasChanged)
177 Q_PROPERTY(QList<
int> featureTypes READ featureTypes NOTIFY featureTypesChanged)
178 Q_PROPERTY(QDateTime departureTime READ departureTime WRITE setDepartureTime NOTIFY departureTimeChanged REVISION(5, 13))
179 Q_INTERFACES(QQmlParserStatus)
183 explicit QDeclarativeGeoRouteQuery(QObject *parent =
nullptr);
184 QDeclarativeGeoRouteQuery(
const QGeoRouteRequest &request, QObject *parent =
nullptr);
185 ~QDeclarativeGeoRouteQuery();
188 void classBegin() override {}
189 void componentComplete() override;
191 QGeoRouteRequest routeRequest()
const;
194 CarTravel = QGeoRouteRequest::CarTravel,
195 PedestrianTravel = QGeoRouteRequest::PedestrianTravel,
196 BicycleTravel = QGeoRouteRequest::BicycleTravel,
197 PublicTransitTravel = QGeoRouteRequest::PublicTransitTravel,
198 TruckTravel = QGeoRouteRequest::TruckTravel
200 Q_DECLARE_FLAGS(TravelModes, TravelMode)
203 NoFeature = QGeoRouteRequest::NoFeature,
204 TollFeature = QGeoRouteRequest::TollFeature,
205 HighwayFeature = QGeoRouteRequest::HighwayFeature,
206 PublicTransitFeature = QGeoRouteRequest::PublicTransitFeature,
207 FerryFeature = QGeoRouteRequest::FerryFeature,
208 TunnelFeature = QGeoRouteRequest::TunnelFeature,
209 DirtRoadFeature = QGeoRouteRequest::DirtRoadFeature,
210 ParksFeature = QGeoRouteRequest::ParksFeature,
211 MotorPoolLaneFeature = QGeoRouteRequest::MotorPoolLaneFeature,
212 TrafficFeature = QGeoRouteRequest::TrafficFeature
214 Q_DECLARE_FLAGS(FeatureTypes, FeatureType)
217 NeutralFeatureWeight = QGeoRouteRequest::NeutralFeatureWeight,
218 PreferFeatureWeight = QGeoRouteRequest::PreferFeatureWeight,
219 RequireFeatureWeight = QGeoRouteRequest::RequireFeatureWeight,
220 AvoidFeatureWeight = QGeoRouteRequest::AvoidFeatureWeight,
221 DisallowFeatureWeight = QGeoRouteRequest::DisallowFeatureWeight
223 Q_DECLARE_FLAGS(FeatureWeights, FeatureWeight)
225 enum RouteOptimization {
226 ShortestRoute = QGeoRouteRequest::ShortestRoute,
227 FastestRoute = QGeoRouteRequest::FastestRoute,
228 MostEconomicRoute = QGeoRouteRequest::MostEconomicRoute,
229 MostScenicRoute = QGeoRouteRequest::MostScenicRoute
231 Q_DECLARE_FLAGS(RouteOptimizations, RouteOptimization)
234 NoSegmentData = 0x0000,
235 BasicSegmentData = 0x0001
237 Q_DECLARE_FLAGS(SegmentDetails, SegmentDetail)
239 enum ManeuverDetail {
240 NoManeuvers = 0x0000,
241 BasicManeuvers = 0x0001
243 Q_DECLARE_FLAGS(ManeuverDetails, ManeuverDetail)
245 void setNumberAlternativeRoutes(
int numberAlternativeRoutes);
246 int numberAlternativeRoutes()
const;
249 QList<
int> featureTypes()
const;
252 QList<QGeoCoordinate> waypoints()
const;
253 void setWaypoints(
const QList<QGeoCoordinate> &value);
255 QList<QGeoRectangle> excludedAreas()
const;
256 void setExcludedAreas(
const QList<QGeoRectangle> &value);
258 Q_INVOKABLE
void addWaypoint(
const QGeoCoordinate &w);
259 Q_INVOKABLE
void removeWaypoint(
const QGeoCoordinate &waypoint);
260 Q_INVOKABLE
void clearWaypoints();
262 Q_INVOKABLE
void addExcludedArea(
const QGeoRectangle &area);
263 Q_INVOKABLE
void removeExcludedArea(
const QGeoRectangle &area);
264 Q_INVOKABLE
void clearExcludedAreas();
266 Q_INVOKABLE
void setFeatureWeight(FeatureType featureType, FeatureWeight featureWeight);
267 Q_INVOKABLE
int featureWeight(FeatureType featureType);
268 Q_INVOKABLE
void resetFeatureWeights();
271
272
274 void setTravelModes(TravelModes travelModes);
275 TravelModes travelModes()
const;
277 void setSegmentDetail(SegmentDetail segmentDetail);
278 SegmentDetail segmentDetail()
const;
280 void setManeuverDetail(ManeuverDetail maneuverDetail);
281 ManeuverDetail maneuverDetail()
const;
283 void setRouteOptimizations(RouteOptimizations optimization);
284 RouteOptimizations routeOptimizations()
const;
286 void setDepartureTime(
const QDateTime &departureTime);
287 QDateTime departureTime()
const;
290 void numberAlternativeRoutesChanged();
291 void travelModesChanged();
292 void routeOptimizationsChanged();
294 void waypointsChanged();
295 void excludedAreasChanged();
297 void featureTypesChanged();
298 void maneuverDetailChanged();
299 void segmentDetailChanged();
301 void queryDetailsChanged();
302 void departureTimeChanged();
305 void excludedAreaCoordinateChanged();
306 void waypointChanged();
309 Q_INVOKABLE
void doCoordinateChanged();
311 mutable QGeoRouteRequest request_;
312 bool complete_ =
false;
313 bool m_excludedAreaCoordinateChanged =
false;
314 mutable bool m_waypointsChanged =
false;
315 QList<QGeoCoordinate> m_waypoints;