更改 MapboxGl 上的右键和左键单击功能
Change Right and Left click functionality on MapboxGl
我想更改 mapboxGl 上的鼠标点击功能。我需要在地图上实现右键单击平移,但没有关于它的文档。因此,我尝试在右键单击时禁用地图旋转并启用平移但没有任何效果,它只是禁用旋转但未触发平移。
我想知道是否有以编程方式启动和停止的方法dragging/panning,我知道你可以启用它,但我需要真正开始平移。
想要让它变得干净和简单,我认为您可以在 mousemove 上添加侦听器然后更改地图边界,但它看起来不太好。有没有更简单的方法来启动 dragPan?
我不知道你为什么要改变左键和右键单击,如果你想要左撇子,他们应该改变鼠标设置。
但是,不管怎么说,右击拖动地图是可以的。
map.dragPan.disable();
map.dragRotate.disable();
var isMoving = false;
var offset;
map.on("contextmenu", (e) => {});
map.on("mousedown", (e) => {
if (e.originalEvent.button === 2) {
isMoving = true;
offset = e.point;
}
});
map.on("mousemove", (e) => {
if (isMoving) {
map.panBy([offset.x - e.point.x, offset.y - e.point.y], {
duration: 0,
});
offset = e.point;
}
});
map.on("mouseup", (e) => {
isMoving = false;
});
我想更改 mapboxGl 上的鼠标点击功能。我需要在地图上实现右键单击平移,但没有关于它的文档。因此,我尝试在右键单击时禁用地图旋转并启用平移但没有任何效果,它只是禁用旋转但未触发平移。
我想知道是否有以编程方式启动和停止的方法dragging/panning,我知道你可以启用它,但我需要真正开始平移。
想要让它变得干净和简单,我认为您可以在 mousemove 上添加侦听器然后更改地图边界,但它看起来不太好。有没有更简单的方法来启动 dragPan?
我不知道你为什么要改变左键和右键单击,如果你想要左撇子,他们应该改变鼠标设置。
但是,不管怎么说,右击拖动地图是可以的。
map.dragPan.disable();
map.dragRotate.disable();
var isMoving = false;
var offset;
map.on("contextmenu", (e) => {});
map.on("mousedown", (e) => {
if (e.originalEvent.button === 2) {
isMoving = true;
offset = e.point;
}
});
map.on("mousemove", (e) => {
if (isMoving) {
map.panBy([offset.x - e.point.x, offset.y - e.point.y], {
duration: 0,
});
offset = e.point;
}
});
map.on("mouseup", (e) => {
isMoving = false;
});