平移地图的默认行为是通过左键点击+拖动,我想改变这种行为与滚轮点击+拖动。这可能吗?
这由ScreenSpaceCameraController
处理,并且是可配置的。例如:
const viewer = new Cesium.Viewer("cesiumContainer");
// for 3D mode
viewer.scene.screenSpaceCameraController.rotateEventTypes = Cesium.CameraEventType.MIDDLE_DRAG;
// for 2D mode
viewer.scene.screenSpaceCameraController.translateEventTypes = Cesium.CameraEventType.MIDDLE_DRAG;
// remove MIDDLE_DRAG from the top of the tiltEventTypes.
viewer.scene.screenSpaceCameraController.tiltEventTypes.shift();
上面的最后一个命令使用Array.shift
来删除tiltEventTypes
数组的第一个元素。这个数组的默认值(对于许多版本的Cesium)显示在这里:
this.tiltEventTypes = [
CameraEventType.MIDDLE_DRAG,
CameraEventType.PINCH,
{
eventType: CameraEventType.LEFT_DRAG,
modifier: KeyboardEventModifier.CTRL,
},
{
eventType: CameraEventType.RIGHT_DRAG,
modifier: KeyboardEventModifier.CTRL,
},
];
这告诉我们仍然可以发出"倾斜"事件,即使移除了MIDDLE_DRAG
条目。例如,我们可以ctrl +左拖动来获得相同的操作。