东莞东城网站建设公司,苏州苏网建设公司在建工程,网络运维工程师培训,不断加强门户网站建设cesium默认左键拖动地图#xff0c;中键旋转#xff0c;再绘图时带来诸多不便。所以改成鼠标中键按下拖动地图#xff0c;鼠标左键选点。代码如下#xff1a;【感谢chatGPT】 //改为中建拖动// 假设 viewer 是你的 Cesium Viewer 实例const cameraController viewer.scene…cesium默认左键拖动地图中键旋转再绘图时带来诸多不便。所以改成鼠标中键按下拖动地图鼠标左键选点。代码如下【感谢chatGPT】 //改为中建拖动// 假设 viewer 是你的 Cesium Viewer 实例const cameraController viewer.scene.screenSpaceCameraController;// 关闭默认的左键旋转操作cameraController.enableRotate false;// 禁用中键的默认倾斜操作cameraController.enableTilt false;// 创建一个新的事件处理器const handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);let isMiddleDown false;let lastPosition;let scale 0;handler.setInputAction((movement) {isMiddleDown true;lastPosition Cesium.Cartesian3.clone(movement.position);const height viewer.camera.positionCartographic.height;const canvas viewer.scene.canvas;// 使用经验公式获取米/(像素值*每米弧度值)scale (height * 0.5) / (canvas.clientHeight * 6371000);}, Cesium.ScreenSpaceEventType.MIDDLE_DOWN);handler.setInputAction((movement) {isMiddleDown false;}, Cesium.ScreenSpaceEventType.MIDDLE_UP);handler.setInputAction((movement) {if (isMiddleDown) {const dx movement.endPosition.x - lastPosition.x;const dy movement.endPosition.y - lastPosition.y;const deltaPhi dx * scale;const deltaTheta dy * scale;console.log(dx:${dx};dy${dy};scale:${scale};deltaPhi:${deltaPhi};deltaTheta:${deltaTheta})viewer.camera.rotateRight(-deltaPhi);viewer.camera.rotateUp(-deltaTheta);lastPosition Cesium.Cartesian3.clone(movement.endPosition);}}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);