Hello,
I am trying to use the MousePress, MousePositionChanged and MouseRelease signals to capture a selection rectangle, the issue that I have is I want to disable panning if a flag is set and then enabled it so that during the action the map does not pan.
Is there anyway to do this?
Thanks,
Prem
Solved! Go to Solution.
You can set up a handler for the mousePositionChanged signal and accept the mouse events depending on if your panning flag is enabled or not. Something like the following should get you started.
Thanks,
Luke
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import ArcGIS.Extras 1.0
import ArcGIS.Runtime 10.26
ApplicationWindow {
id: rootRectangle
width: 500
height: 500
property bool isPannable: true
Envelope {
id: extentEnvelope
xMin: -122.511
yMin: 37.7474
xMax: -122.3887
yMax: 37.8125
spatialReference: SpatialReference {
wkid: 4326
}
}
Map {
id: mainMap
anchors.fill: parent
extent: extentEnvelope
focus: true
ArcGISLocalTiledLayer {
id: baseArcGISLocalTiledLayer
path: "~/ArcGIS/Runtime/Data/tpks/SanFrancisco.tpk"
}
onMouseClicked: {
console.log("clicked", mouse.mapX)
}
onMousePositionChanged: {
if (!isPannable) {
mouse.accepted = true;
} else {
mouse.accepted = false;
}
}
}
Button {
text: "disable panning"
onClicked: {
if (isPannable)
isPannable = false;
else
isPannable = true;
}
}
}
You can set up a handler for the mousePositionChanged signal and accept the mouse events depending on if your panning flag is enabled or not. Something like the following should get you started.
Thanks,
Luke
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import ArcGIS.Extras 1.0
import ArcGIS.Runtime 10.26
ApplicationWindow {
id: rootRectangle
width: 500
height: 500
property bool isPannable: true
Envelope {
id: extentEnvelope
xMin: -122.511
yMin: 37.7474
xMax: -122.3887
yMax: 37.8125
spatialReference: SpatialReference {
wkid: 4326
}
}
Map {
id: mainMap
anchors.fill: parent
extent: extentEnvelope
focus: true
ArcGISLocalTiledLayer {
id: baseArcGISLocalTiledLayer
path: "~/ArcGIS/Runtime/Data/tpks/SanFrancisco.tpk"
}
onMouseClicked: {
console.log("clicked", mouse.mapX)
}
onMousePositionChanged: {
if (!isPannable) {
mouse.accepted = true;
} else {
mouse.accepted = false;
}
}
}
Button {
text: "disable panning"
onClicked: {
if (isPannable)
isPannable = false;
else
isPannable = true;
}
}
}