12#include <QtCore/QJsonDocument>
13#include <QtCore/QJsonObject>
14#include <QtCore/QJsonArray>
15#include <QtCore/QUrlQuery>
16#include <QtPositioning/qgeopath.h>
18#include <QtCore/private/qobject_p.h>
19#include <QtPositioning/private/qlocationutils_p.h>
25 QList<QGeoCoordinate>
path;
26 if (polylineString.isEmpty())
31 bool parsingLatitude =
true;
39 unsigned char c =
data.at(
i) - 63;
50 if (parsingLatitude) {
51 coord.setLatitude(
coord.latitude() + (double)diff/1e6);
53 coord.setLongitude(
coord.longitude() + (double)diff/1e6);
57 parsingLatitude = !parsingLatitude;
72 return QGeoRouteParserOsrmV5::tr(
"North");
74 return QGeoRouteParserOsrmV5::tr(
"East");
76 return QGeoRouteParserOsrmV5::tr(
"South");
78 return QGeoRouteParserOsrmV5::tr(
"West");
86 static QList<QString> ordinals;
88 if (!ordinals.size()) {
91 ordinals.append(QGeoRouteParserOsrmV5::tr(
"first",
"roundabout exit"));
92 ordinals.append(QGeoRouteParserOsrmV5::tr(
"second",
"roundabout exit"));
93 ordinals.append(QGeoRouteParserOsrmV5::tr(
"third",
"roundabout exit"));
94 ordinals.append(QGeoRouteParserOsrmV5::tr(
"fourth",
"roundabout exit"));
95 ordinals.append(QGeoRouteParserOsrmV5::tr(
"fifth",
"roundabout exit"));
96 ordinals.append(QGeoRouteParserOsrmV5::tr(
"sixth",
"roundabout exit"));
97 ordinals.append(QGeoRouteParserOsrmV5::tr(
"seventh",
"roundabout exit"));
98 ordinals.append(QGeoRouteParserOsrmV5::tr(
"eighth",
"roundabout exit"));
99 ordinals.append(QGeoRouteParserOsrmV5::tr(
"ninth",
"roundabout exit"));
100 ordinals.append(QGeoRouteParserOsrmV5::tr(
"tenth",
"roundabout exit"));
101 ordinals.append(QGeoRouteParserOsrmV5::tr(
"eleventh",
"roundabout exit"));
102 ordinals.append(QGeoRouteParserOsrmV5::tr(
"twelfth",
"roundabout exit"));
103 ordinals.append(QGeoRouteParserOsrmV5::tr(
"thirteenth",
"roundabout exit"));
104 ordinals.append(QGeoRouteParserOsrmV5::tr(
"fourteenth",
"roundabout exit"));
105 ordinals.append(QGeoRouteParserOsrmV5::tr(
"fifteenth",
"roundabout exit"));
106 ordinals.append(QGeoRouteParserOsrmV5::tr(
"sixteenth",
"roundabout exit"));
107 ordinals.append(QGeoRouteParserOsrmV5::tr(
"seventeenth",
"roundabout exit"));
108 ordinals.append(QGeoRouteParserOsrmV5::tr(
"eighteenth",
"roundabout exit"));
109 ordinals.append(QGeoRouteParserOsrmV5::tr(
"nineteenth",
"roundabout exit"));
110 ordinals.append(QGeoRouteParserOsrmV5::tr(
"twentieth",
"roundabout exit"));
113 if (exit < 1 || exit > ordinals.size())
115 return ordinals[exit];
125 static QString directionExit = QGeoRouteParserOsrmV5::tr(
" and take the %1 exit");
126 static QString directionExitOnto = QGeoRouteParserOsrmV5::tr(
" and take the %1 exit onto %2");
128 if (exit < 1 || exit > 20)
130 if (wayName.isEmpty())
133 return directionExitOnto.arg(
exitOrdinal(exit), wayName);
140 return QGeoRouteParserOsrmV5::tr(
"You have arrived at your destination, straight ahead");
146 return QGeoRouteParserOsrmV5::tr(
"You have arrived at your destination, on the left");
152 return QGeoRouteParserOsrmV5::tr(
"You have arrived at your destination, on the right");
154 return QGeoRouteParserOsrmV5::tr(
"You have arrived at your destination");
162 if (wayName.isEmpty())
163 return QGeoRouteParserOsrmV5::tr(
"Continue straight");
165 return QGeoRouteParserOsrmV5::tr(
"Continue straight on %1").arg(wayName);
168 if (wayName.isEmpty())
169 return QGeoRouteParserOsrmV5::tr(
"Continue left");
171 return QGeoRouteParserOsrmV5::tr(
"Continue left onto %1").arg(wayName);
174 if (wayName.isEmpty())
175 return QGeoRouteParserOsrmV5::tr(
"Continue slightly left");
177 return QGeoRouteParserOsrmV5::tr(
"Continue slightly left on %1").arg(wayName);
180 if (wayName.isEmpty())
181 return QGeoRouteParserOsrmV5::tr(
"Continue right");
183 return QGeoRouteParserOsrmV5::tr(
"Continue right onto %1").arg(wayName);
186 if (wayName.isEmpty())
187 return QGeoRouteParserOsrmV5::tr(
"Continue slightly right");
189 return QGeoRouteParserOsrmV5::tr(
"Continue slightly right on %1").arg(wayName);
192 if (wayName.isEmpty())
193 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn");
195 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn onto %1").arg(wayName);
197 if (wayName.isEmpty())
198 return QGeoRouteParserOsrmV5::tr(
"Continue");
200 return QGeoRouteParserOsrmV5::tr(
"Continue on %1").arg(wayName);
207 if (bearing >= 0.0) {
208 if (wayName.isEmpty())
214 if (wayName.isEmpty())
215 return QGeoRouteParserOsrmV5::tr(
"Depart");
217 return QGeoRouteParserOsrmV5::tr(
"Depart onto %1").arg(wayName);
228 if (wayName.isEmpty())
229 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, turn left");
231 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, turn left onto %1").arg(wayName);
236 if (wayName.isEmpty())
237 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, turn right");
239 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, turn right onto %1").arg(wayName);
242 if (wayName.isEmpty())
243 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, make a U-turn");
245 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, make a U-turn onto %1").arg(wayName);
247 if (wayName.isEmpty())
248 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, continue straight");
250 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, continue straight onto %1").arg(wayName);
252 if (wayName.isEmpty())
253 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, continue");
255 return QGeoRouteParserOsrmV5::tr(
"At the end of the road, continue onto %1").arg(wayName);
261 QString instruction = QGeoRouteParserOsrmV5::tr(
"Take the ferry");
262 if (!wayName.isEmpty())
272 if (wayName.isEmpty())
273 return QGeoRouteParserOsrmV5::tr(
"At the fork, take a sharp left");
275 return QGeoRouteParserOsrmV5::tr(
"At the fork, take a sharp left onto %1").arg(wayName);
277 if (wayName.isEmpty())
278 return QGeoRouteParserOsrmV5::tr(
"At the fork, turn left");
280 return QGeoRouteParserOsrmV5::tr(
"At the fork, turn left onto %1").arg(wayName);
283 if (wayName.isEmpty())
284 return QGeoRouteParserOsrmV5::tr(
"At the fork, keep left");
286 return QGeoRouteParserOsrmV5::tr(
"At the fork, keep left onto %1").arg(wayName);
288 if (wayName.isEmpty())
289 return QGeoRouteParserOsrmV5::tr(
"At the fork, take a sharp right");
291 return QGeoRouteParserOsrmV5::tr(
"At the fork, take a sharp right onto %1").arg(wayName);
293 if (wayName.isEmpty())
294 return QGeoRouteParserOsrmV5::tr(
"At the fork, turn right");
296 return QGeoRouteParserOsrmV5::tr(
"At the fork, turn right onto %1").arg(wayName);
299 if (wayName.isEmpty())
300 return QGeoRouteParserOsrmV5::tr(
"At the fork, keep right");
302 return QGeoRouteParserOsrmV5::tr(
"At the fork, keep right onto %1").arg(wayName);
305 if (wayName.isEmpty())
306 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn");
308 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn onto %1").arg(wayName);
310 if (wayName.isEmpty())
311 return QGeoRouteParserOsrmV5::tr(
"At the fork, continue straight ahead");
313 return QGeoRouteParserOsrmV5::tr(
"At the fork, continue straight ahead onto %1").arg(wayName);
315 if (wayName.isEmpty())
316 return QGeoRouteParserOsrmV5::tr(
"At the fork, continue");
318 return QGeoRouteParserOsrmV5::tr(
"At the fork, continue onto %1").arg(wayName);
327 if (wayName.isEmpty())
328 return QGeoRouteParserOsrmV5::tr(
"Merge sharply left");
330 return QGeoRouteParserOsrmV5::tr(
"Merge sharply left onto %1").arg(wayName);
332 if (wayName.isEmpty())
333 return QGeoRouteParserOsrmV5::tr(
"Merge left");
335 return QGeoRouteParserOsrmV5::tr(
"Merge left onto %1").arg(wayName);
338 if (wayName.isEmpty())
339 return QGeoRouteParserOsrmV5::tr(
"Merge slightly left");
341 return QGeoRouteParserOsrmV5::tr(
"Merge slightly left on %1").arg(wayName);
344 if (wayName.isEmpty())
345 return QGeoRouteParserOsrmV5::tr(
"Merge sharply right");
347 return QGeoRouteParserOsrmV5::tr(
"Merge sharply right onto %1").arg(wayName);
349 if (wayName.isEmpty())
350 return QGeoRouteParserOsrmV5::tr(
"Merge right");
352 return QGeoRouteParserOsrmV5::tr(
"Merge right onto %1").arg(wayName);
355 if (wayName.isEmpty())
356 return QGeoRouteParserOsrmV5::tr(
"Merge slightly right");
358 return QGeoRouteParserOsrmV5::tr(
"Merge slightly right on %1").arg(wayName);
360 if (wayName.isEmpty())
361 return QGeoRouteParserOsrmV5::tr(
"Merge straight");
363 return QGeoRouteParserOsrmV5::tr(
"Merge straight on %1").arg(wayName);
365 if (wayName.isEmpty())
366 return QGeoRouteParserOsrmV5::tr(
"Merge");
368 return QGeoRouteParserOsrmV5::tr(
"Merge onto %1").arg(wayName);
376 if (wayName.isEmpty())
377 return QGeoRouteParserOsrmV5::tr(
"Take a sharp left");
379 return QGeoRouteParserOsrmV5::tr(
"Take a sharp left onto %1").arg(wayName);
381 if (wayName.isEmpty())
382 return QGeoRouteParserOsrmV5::tr(
"Turn left");
384 return QGeoRouteParserOsrmV5::tr(
"Turn left onto %1").arg(wayName);
387 if (wayName.isEmpty())
388 return QGeoRouteParserOsrmV5::tr(
"Continue slightly left");
390 return QGeoRouteParserOsrmV5::tr(
"Continue slightly left onto %1").arg(wayName);
392 if (wayName.isEmpty())
393 return QGeoRouteParserOsrmV5::tr(
"Take a sharp right");
395 return QGeoRouteParserOsrmV5::tr(
"Take a sharp right onto %1").arg(wayName);
397 if (wayName.isEmpty())
398 return QGeoRouteParserOsrmV5::tr(
"Turn right");
400 return QGeoRouteParserOsrmV5::tr(
"Turn right onto %1").arg(wayName);
403 if (wayName.isEmpty())
404 return QGeoRouteParserOsrmV5::tr(
"Continue slightly right");
406 return QGeoRouteParserOsrmV5::tr(
"Continue slightly right onto %1").arg(wayName);
409 if (wayName.isEmpty())
410 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn");
412 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn onto %1").arg(wayName);
414 if (wayName.isEmpty())
415 return QGeoRouteParserOsrmV5::tr(
"Continue straight");
417 return QGeoRouteParserOsrmV5::tr(
"Continue straight onto %1").arg(wayName);
419 if (wayName.isEmpty())
420 return QGeoRouteParserOsrmV5::tr(
"Continue");
422 return QGeoRouteParserOsrmV5::tr(
"Continue onto %1").arg(wayName);
434 if (wayName.isEmpty())
435 return QGeoRouteParserOsrmV5::tr(
"Continue on the left");
437 return QGeoRouteParserOsrmV5::tr(
"Continue on the left on %1").arg(wayName);
443 if (wayName.isEmpty())
444 return QGeoRouteParserOsrmV5::tr(
"Continue on the right");
446 return QGeoRouteParserOsrmV5::tr(
"Continue on the right on %1").arg(wayName);
449 if (wayName.isEmpty())
450 return QGeoRouteParserOsrmV5::tr(
"Continue");
452 return QGeoRouteParserOsrmV5::tr(
"Continue on %1").arg(wayName);
464 if (wayName.isEmpty())
465 return QGeoRouteParserOsrmV5::tr(
"Take the ramp on the left");
467 return QGeoRouteParserOsrmV5::tr(
"Take the ramp on the left onto %1").arg(wayName);
473 if (wayName.isEmpty())
474 return QGeoRouteParserOsrmV5::tr(
"Take the ramp on the right");
476 return QGeoRouteParserOsrmV5::tr(
"Take the ramp on the right onto %1").arg(wayName);
479 if (wayName.isEmpty())
480 return QGeoRouteParserOsrmV5::tr(
"Take the ramp");
482 return QGeoRouteParserOsrmV5::tr(
"Take the ramp onto %1").arg(wayName);
493 if (wayName.isEmpty())
494 return QGeoRouteParserOsrmV5::tr(
"Get off the bike and push");
496 return QGeoRouteParserOsrmV5::tr(
"Get off the bike and push onto %1").arg(wayName);
507 instruction += QGeoRouteParserOsrmV5::tr(
"Enter the rotary");
508 if (!rotaryName.isEmpty())
521 instruction += QGeoRouteParserOsrmV5::tr(
"Enter the roundabout");
530 if (wayName.isEmpty())
531 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, continue straight");
533 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, continue straight on %1").arg(wayName);
538 if (wayName.isEmpty())
539 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, turn left");
541 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, turn left onto %1").arg(wayName);
546 if (wayName.isEmpty())
547 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, turn right");
549 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, turn right onto %1").arg(wayName);
552 if (wayName.isEmpty())
553 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, turn around");
555 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, turn around onto %1").arg(wayName);
557 if (wayName.isEmpty())
558 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, continue");
560 return QGeoRouteParserOsrmV5::tr(
"At the roundabout, continue onto %1").arg(wayName);
566 return wayName.isEmpty()
567 ? QGeoRouteParserOsrmV5::tr(
"Take the train")
568 : QGeoRouteParserOsrmV5::tr(
"Take the train [%1]").arg(wayName);
575 if (wayName.isEmpty())
576 return QGeoRouteParserOsrmV5::tr(
"Go straight");
578 return QGeoRouteParserOsrmV5::tr(
"Go straight onto %1").arg(wayName);
581 if (wayName.isEmpty())
582 return QGeoRouteParserOsrmV5::tr(
"Turn left");
584 return QGeoRouteParserOsrmV5::tr(
"Turn left onto %1").arg(wayName);
587 if (wayName.isEmpty())
588 return QGeoRouteParserOsrmV5::tr(
"Turn slightly left");
590 return QGeoRouteParserOsrmV5::tr(
"Turn slightly left onto %1").arg(wayName);
593 if (wayName.isEmpty())
594 return QGeoRouteParserOsrmV5::tr(
"Turn right");
596 return QGeoRouteParserOsrmV5::tr(
"Turn right onto %1").arg(wayName);
599 if (wayName.isEmpty())
600 return QGeoRouteParserOsrmV5::tr(
"Turn slightly right");
602 return QGeoRouteParserOsrmV5::tr(
"Turn slightly right onto %1").arg(wayName);
605 if (wayName.isEmpty())
606 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn");
608 return QGeoRouteParserOsrmV5::tr(
"Make a U-turn onto %1").arg(wayName);
610 if (wayName.isEmpty())
611 return QGeoRouteParserOsrmV5::tr(
"Turn");
613 return QGeoRouteParserOsrmV5::tr(
"Turn onto %1").arg(wayName);
629 laneInstruction =
QLatin1String(
"Use the left or the right lane");
631 if (laneInstruction.isEmpty()) {
632 if (wayName.isEmpty())
633 return QGeoRouteParserOsrmV5::tr(
"Continue straight");
635 return QGeoRouteParserOsrmV5::tr(
"Continue straight onto %1").arg(wayName);
640 if (wayName.isEmpty())
642 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and continue straight");
644 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and continue straight onto %1").arg(wayName);
646 if (wayName.isEmpty())
647 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a sharp left");
649 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a sharp left onto %1").arg(wayName);
651 if (wayName.isEmpty())
652 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and turn left");
654 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and turn left onto %1").arg(wayName);
657 if (wayName.isEmpty())
658 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a slight left");
660 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a slight left onto %1").arg(wayName);
662 if (wayName.isEmpty())
663 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a sharp right");
665 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a sharp right onto %1").arg(wayName);
667 if (wayName.isEmpty())
668 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and turn right");
670 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and turn right onto %1").arg(wayName);
673 if (wayName.isEmpty())
674 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a slight right");
676 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a slight right onto %1").arg(wayName);
679 if (wayName.isEmpty())
680 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a U-turn");
682 return laneInstruction + QGeoRouteParserOsrmV5::tr(
" and make a U-turn onto %1").arg(wayName);
684 return laneInstruction;
746 if (modifier.isEmpty())
757 switch (trafficSide) {
825 double latitude =
position[1].toDouble();
826 double longitude =
position[0].toDouble();
838 geoManeuver.setDistanceToNextInstruction(
distance);
839 geoManeuver.setTimeToNextInstruction(
time);
840 geoManeuver.setInstructionText(maneuverInstructionText);
841 geoManeuver.setPosition(
coord);
842 geoManeuver.setWaypoint(
coord);
851 for (
const QString &e: extras) {
852 if (maneuver.
find(e) != maneuver.
end())
857 extraAttributes.insert(
QLatin1String(
"leg_index"), legIndex);
858 extraAttributes.insert(
QLatin1String(
"step_index"), stepIndex);
860 geoManeuver.setExtendedAttributes(extraAttributes);
865 segment.setManeuver(geoManeuver);
876 if (document.isObject()) {
881 errorString = status;
896 if (!routeObject.value(
QLatin1String(
"duration")).isDouble())
898 if (!routeObject.value(
QLatin1String(
"distance")).isDouble())
907 QList<QGeoRoute> routeLegs;
909 for (
int legIndex = 0; legIndex < legs.size(); ++legIndex) {
912 QList<QGeoRouteSegment> legSegments;
926 for (
int stepIndex = 0; stepIndex < steps.
size(); ++stepIndex) {
945 segmentPrivate->setLegLastSegment(
true);
946 QList<QGeoCoordinate>
path;
948 path.append(
s.path());
949 routeLeg.setLegIndex(legIndex);
950 routeLeg.setOverallRoute(route);
951 routeLeg.setDistance(legDistance);
952 routeLeg.setTravelTime(legTravelTime);
953 if (!
path.isEmpty()) {
954 routeLeg.setPath(
path);
955 routeLeg.setFirstRouteSegment(legSegments.first());
957 routeLegs << routeLeg;
963 QList<QGeoCoordinate>
path;
965 path.append(
s.path());
972 if (!
path.isEmpty()) {
979 routes.append(route);
995 const QList<QGeoCoordinate> waypoints =
request.waypoints();
void setDirection(InstructionDirection direction)
InstructionDirection
\qmltype routeManeuver \inqmlmodule QtLocation
virtual void updateQuery(QUrlQuery &query) const =0
virtual void updateSegment(QGeoRouteSegment &segment, const QJsonObject &step, const QJsonObject &maneuver) const =0
QGeoRouteReply::Error parseReply(QList< QGeoRoute > &routes, QString &errorString, const QByteArray &reply) const override
QVariantMap m_vendorParams
const QGeoRouteParserOsrmV5Extension * m_extension
QGeoRouteParserOsrmV5Private()
QUrl requestUrl(const QGeoRouteRequest &request, const QString &prefix) const override
virtual ~QGeoRouteParserOsrmV5Private()
QGeoRouteSegment parseStep(const QJsonObject &step, int legIndex, int stepIndex) const
virtual ~QGeoRouteParserOsrmV5()
void setExtension(const QGeoRouteParserOsrmV5Extension *extension)
QGeoRouteParserOsrmV5(QObject *parent=nullptr)
QGeoRouteParser::TrafficSide trafficSide
Error
Describes an error which prevented the completion of the operation.
static QGeoRouteSegmentPrivate * get(QGeoRouteSegment &segment)
void setFirstRouteSegment(const QGeoRouteSegment &routeSegment)
Sets the first route segment in the route to routeSegment.
void setDistance(qreal distance)
void setTravelTime(int secs)
void setPath(const QList< QGeoCoordinate > &path)
void setRouteLegs(const QList< QGeoRoute > &legs)
void setBounds(const QGeoRectangle &bounds)
Q_INVOKABLE QGeoRectangle boundingGeoRectangle() const
Returns a QGeoRectangle representing the geographical bounding rectangle of the geo shape,...
\inmodule QtCore\reentrant
qsizetype size() const
Returns the number of values stored in the array.
QJsonValue at(qsizetype i) const
Returns a QJsonValue representing the value for index i.
\inmodule QtCore\reentrant
static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error=nullptr)
Parses json as a UTF-8 encoded JSON document, and creates a QJsonDocument from it.
\inmodule QtCore\reentrant
iterator end()
Returns an \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the last ...
iterator find(const QString &key)
Returns an iterator pointing to the item with key key in the map.
QJsonValue value(const QString &key) const
Returns a QJsonValue representing the value for the key key.
\inmodule QtCore\reentrant
int toInt(int defaultValue=0) const
QJsonObject toObject() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
QJsonArray toArray() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
double toDouble(double defaultValue=0) const
Converts the value to a double and returns it.
QString toString() const
Converts the value to a QString and returns it.
bool isObject() const
Returns true if the value contains an object.
QVariant toVariant() const
Converts the value to a \l {QVariant::}{QVariant()}.
static CardinalDirection azimuthToCardinalDirection4(double azimuth)
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void addQueryItem(const QString &key, const QString &value)
Appends the pair key = value to the end of the query string of the URL.
void setQuery(const QString &query, ParsingMode mode=TolerantMode)
Sets the query string of the URL to query.
Combined button and popup list for selecting options.
static QT_WARNING_DISABLE_FLOAT_COMPARE ShiftResult shift(const QBezier *orig, QBezier *shifted, qreal offset, qreal threshold)
DBusConnection const char DBusError * error
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static QString instructionArrive(QGeoManeuver::InstructionDirection direction)
static QString instructionRoundaboutTurn(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionNotification(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QT_BEGIN_NAMESPACE QList< QGeoCoordinate > decodePolyline(const QString &polylineString)
static QString instructionNewName(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionUseLane(const QJsonObject &maneuver, const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionTrain(const QString &wayName)
static QString instructionOffRamp(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QGeoManeuver::InstructionDirection instructionDirection(const QJsonObject &maneuver, QGeoRouteParser::TrafficSide trafficSide)
static QString exitDirection(int exit, const QString &wayName)
static QString instructionDepart(const QJsonObject &maneuver, const QString &wayName)
static QString instructionRoundabout(const QJsonObject &maneuver, const QString &wayName)
static QString instructionPushingBike(const QString &wayName)
static QString cardinalDirection4(QLocationUtils::CardinalDirection direction)
static QString instructionMerge(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionRotary(const QJsonObject &step, const QJsonObject &maneuver, const QString &wayName)
static QString instructionOnRamp(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionFork(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString exitOrdinal(int exit)
static QString instructionContinue(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionTurn(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionText(const QJsonObject &step, const QJsonObject &maneuver, QGeoManeuver::InstructionDirection direction)
static QString instructionEndOfRoad(const QString &wayName, QGeoManeuver::InstructionDirection direction)
static QString instructionFerry(const QString &wayName)
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLsizei GLsizei GLfloat distance
GLsizei const GLchar *const * path
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
QLatin1StringView QLatin1String
static double toDouble(Value v)
QUrl url("example.com")
[constructor-url-reference]
QNetworkRequest request(url)
\inmodule QtCore \reentrant