aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quickcontrols/wearable/Wearable/navigation.js
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quickcontrols/wearable/Wearable/navigation.js')
-rw-r--r--examples/quickcontrols/wearable/Wearable/navigation.js119
1 files changed, 119 insertions, 0 deletions
diff --git a/examples/quickcontrols/wearable/Wearable/navigation.js b/examples/quickcontrols/wearable/Wearable/navigation.js
new file mode 100644
index 0000000000..0f3e7fa9be
--- /dev/null
+++ b/examples/quickcontrols/wearable/Wearable/navigation.js
@@ -0,0 +1,119 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+function requestNavigationRoute(rModel) {
+ var xhr = new XMLHttpRequest;
+ xhr.open("GET", "fallbackroute.json");
+ xhr.onreadystatechange = function () {
+ if (xhr.readyState === XMLHttpRequest.DONE) {
+ var a = JSON.parse(xhr.responseText);
+ var steps = a.route.steps;
+
+ for (var step in steps) {
+ var direction = steps[step].direction;
+ var instructionText = steps[step].instructionText;
+ var distanceToNextInstruction = steps[step].distanceToNextInstruction;
+
+ rModel.append({
+ icon: formatIconInstruction(direction),
+ shortInfo: formatShortInstruction(direction),
+ instruction: instructionText,
+ distance: qsTr("in") + " " + formatDistance(distanceToNextInstruction)
+ });
+ }
+ }
+ }
+ xhr.send();
+}
+
+function formatIconInstruction(direction)
+{
+ switch (direction){
+ case 0:
+ return "";
+ case 1:
+ return "forward";
+ case 2:
+ return "bearright";
+ case 3:
+ case 4:
+ return "right";
+ case 5:
+ return "lightright";
+ case 6:
+ return "uturnright";
+ case 7:
+ return "uturleft";
+ case 8:
+ case 9:
+ return "left";
+ case 10:
+ return "lightleft";
+ case 11:
+ return "bearleft";
+ }
+}
+
+function formatShortInstruction(direction)
+{
+ switch (direction){
+ case 0:
+ return "";
+ case 1:
+ return "Move forward";
+ case 2:
+ return "Bear right";
+ case 3:
+ return "Turn right";
+ case 4:
+ return "Turn hard right";
+ case 5:
+ return "Turn slightly right";
+ case 6:
+ return "Uturn right";
+ case 7:
+ return "Uturn left";
+ case 8:
+ return "Turn hard left";
+ case 9:
+ return "Turn left";
+ case 10:
+ return "Turn slightly left";
+ case 11:
+ return "Bear left";
+ }
+}
+
+function formatTime(sec)
+{
+ var value = sec
+ var seconds = value % 60
+ value /= 60
+ value = (value > 1) ? Math.round(value) : 0
+ var minutes = value % 60
+ value /= 60
+ value = (value > 1) ? Math.round(value) : 0
+ var hours = value
+ if (hours > 0) value = hours + "h:"+ minutes + "m"
+ else value = minutes + "min"
+ return value
+}
+
+function formatDistance(meters)
+{
+ var dist = Math.round(meters)
+ if (dist > 1000 ){
+ if (dist > 100000){
+ dist = Math.round(dist / 1000)
+ }
+ else{
+ dist = Math.round(dist / 100)
+ dist = dist / 10
+ }
+ dist = dist + " km"
+ }
+ else{
+ dist = dist + " m"
+ }
+ return dist
+}