如何解决如何在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 和手势,但如何在按下鼠标中键时围绕光标旋转地图? 附言我在谷歌上搜索了 MapGesture,但它只有在你点击屏幕时才有效(有点)。
解决方法
使用 Map QML 类型的轴承属性
例如
Map {
id: map
anchors.fill: parent
plugin:Plugin {
name: "osm"
}
zoomLevel: 15
bearing: 20 // for rotating map
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。