C
Qt Cluster: Rendering and Recovery from Main UI Failure
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
// This file is part of the Qt Safe Renderer module
import QtQuick
import QtLocation
import QtPositioning
import QtGraphicalEffects
import ClusterDemo
Item {
width: root.width / 3
height: width
Map {
id: map
width: parent.width + 300
height: parent.height + 300
x: -150
y: -150
property real speed
plugin: Plugin {
id: plugin
preferred: ["mapbox"]
PluginParameter { name: "mapbox.access_token"; value: "pk.eyJ1IjoicXRjbHVzdGVyIiwiYSI6ImZiYTNiM2I0MDE2NmNlYmY0ZmM5NWMzZDVmYzI4NjFlIn0.uk3t7Oi9lDByIJd2E0vRWg" }
PluginParameter { name: "mapbox.map_id"; value: "qtcluster.ndeb6ce6" }
}
center: QtPositioning.coordinate(ValueSource.latitude, ValueSource.longitude)
zoomLevel: 16
enabled: false
rotation: -ValueSource.direction
Behavior on rotation {
RotationAnimation {
duration: 2000
direction: RotationAnimation.Shortest
}
}
// uncomment ifndef QTIVIVEHICLEFUNCTIONS
// PositionSource {
// id: positionSource
// nmeaSource: "qrc:/qml/route.txt"
// onPositionChanged: {
// if (position.speedValid) {
// // center the map on the current position
// if (position.direction > 0) {
// map.rotation = -position.direction
// map.center = position.coordinate
// }
// ValueSource.kph = position.speed * 3.6
// ValueSource.oldSpeed.shift()
// ValueSource.oldSpeed.push(position.speed * 3.6)
// ValueSource.speedChanged()
// //routeStopped.restart()
// }
// }
// }
// Component.onCompleted:{
// positionSource.start()
// //routeStopped.running = true
// }
// end comment
Behavior on center {
id: centerBehavior
enabled: true
CoordinateAnimation { duration: 1500 }
}
}
FastBlur {
anchors.fill: map
source: map
radius: 0.01
rotation: map.rotation
}
Image {
id: positionImage
anchors.centerIn: parent
source: mapPositionImage
}
Text {
color: "white"
anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottomMargin: (ValueSource.carId === 0) ? 75 : 0
font.pixelSize: 9
text:"© Mapbox © OpenStreetMap"
}
}