我想更改mapboxGl上的鼠标单击功能。我需要在地图上实现右键单击平移,但是没有关于它的文档。因此,我尝试在右键单击上禁用地图旋转并启用平移,但没有任何效果,它只是禁用了旋转,但未触发平移。
我想知道是否存在以编程方式启动和停止拖动/平移的方法,我知道您可以启用它,但是我实际上需要开始平移。
想要使其变得简单易用,我认为您可以在mousemove上添加侦听器,然后更改地图边界,但是看起来不太好。有没有更简单的方法来启动dragPan?
我想更改mapboxGl上的鼠标单击功能。我需要在地图上实现右键单击平移,但是没有关于它的文档。因此,我尝试在右键单击上禁用地图旋转并启用平移,但没有任何效果,它只是禁用了旋转,但未触发平移。
我想知道是否存在以编程方式启动和停止拖动/平移的方法,我知道您可以启用它,但是我实际上需要开始平移。
想要使其变得简单易用,我认为您可以在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;
});