0

How I can rotation Map in qml with using MouseArea (with press on MidButton)?

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
        }
    }
 }

I have MouseArea and gesture like enabled, but how to rotate map around cursor when middle mouse button is pressed? P.s. I googled MapGesture, but it only works when you tap on the screen (sort of).

eyllanesc
  • 235,170
  • 19
  • 170
  • 241

1 Answers1

0

Use bearing property of Map QML type

Ex.

Map {
        id: map
        anchors.fill: parent
        plugin:Plugin {
            name: "osm"
        }
        zoomLevel: 15
        bearing: 20        // for rotating map
    }
GajananB
  • 38
  • 1
  • 12