如何在qml中旋转地图?
How to rotate map in qml?
如何使用 MouseArea(按下 MidButton)在 qml 中旋转地图?
Map {
id: map
z: 0.1
anchors.fill: parent
property bool mapIsEmpty: submap && (submap.plugin.name === "itemsoverlay")
property string provider: "itemsoverlay"
// need for called outside
function openWizzardAddImage() {
wizzardAddImage.show();
}
zoomLevel: 14
maximumZoomLevel: 20
minimumZoomLevel: 14
gesture.enabled: gestureEnabled
gesture.acceptedGestures: MapGestureArea.PanGesture
| MapGestureArea.PinchGesture
| MapGestureArea.RotationGesture
color: "transparent"
plugin: Plugin { name: "itemsoverlay" }
MouseArea {
id: _mouseArea
anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.AllButtons
function coord(mouse) {
return map.toCoordinate(Qt.point(mouse.x,mouse.y),false)
}
onClicked: {
if (mouse.button == Qt.RightButton) {
map.clickedContextMenu(coord(mouse))
}
else if (mouse.button == Qt.LeftButton) {
map.clicked(coord(mouse))
}
}
onPositionChanged: {
if (mouse.button == Qt.RightButton)
coordText.coordinate = coord(mouse)
}
onDoubleClicked: {
if (mouse.button == Qt.LeftButton)
map.doubleClicked(_mouseArea.coord(mouse))
}
onWheel: {
if (wheel.modifiers && Qt.ControlModifier )
return
wheel.accepted = map.noWheel
}
}
}
我启用了 MouseArea 和手势之类的功能,但是如何在按下鼠标中键时围绕光标旋转地图?
P.s。我用谷歌搜索了 MapGesture,但只有当你点击屏幕时它才有效(有点)。
使用 Map QML 类型的方位角 属性
例如
Map {
id: map
anchors.fill: parent
plugin:Plugin {
name: "osm"
}
zoomLevel: 15
bearing: 20 // for rotating map
}
如何使用 MouseArea(按下 MidButton)在 qml 中旋转地图?
Map {
id: map
z: 0.1
anchors.fill: parent
property bool mapIsEmpty: submap && (submap.plugin.name === "itemsoverlay")
property string provider: "itemsoverlay"
// need for called outside
function openWizzardAddImage() {
wizzardAddImage.show();
}
zoomLevel: 14
maximumZoomLevel: 20
minimumZoomLevel: 14
gesture.enabled: gestureEnabled
gesture.acceptedGestures: MapGestureArea.PanGesture
| MapGestureArea.PinchGesture
| MapGestureArea.RotationGesture
color: "transparent"
plugin: Plugin { name: "itemsoverlay" }
MouseArea {
id: _mouseArea
anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.AllButtons
function coord(mouse) {
return map.toCoordinate(Qt.point(mouse.x,mouse.y),false)
}
onClicked: {
if (mouse.button == Qt.RightButton) {
map.clickedContextMenu(coord(mouse))
}
else if (mouse.button == Qt.LeftButton) {
map.clicked(coord(mouse))
}
}
onPositionChanged: {
if (mouse.button == Qt.RightButton)
coordText.coordinate = coord(mouse)
}
onDoubleClicked: {
if (mouse.button == Qt.LeftButton)
map.doubleClicked(_mouseArea.coord(mouse))
}
onWheel: {
if (wheel.modifiers && Qt.ControlModifier )
return
wheel.accepted = map.noWheel
}
}
}
我启用了 MouseArea 和手势之类的功能,但是如何在按下鼠标中键时围绕光标旋转地图? P.s。我用谷歌搜索了 MapGesture,但只有当你点击屏幕时它才有效(有点)。
使用 Map QML 类型的方位角 属性
例如
Map {
id: map
anchors.fill: parent
plugin:Plugin {
name: "osm"
}
zoomLevel: 15
bearing: 20 // for rotating map
}