cesium中实现鼠标拖动实体功能
const entityId = '...';
const viewer = '...';
const entity = '...';
const entityPositionZ = '...';
viewer.screenSpaceEventHandler.setInputAction(( { position } ) => {
const pickInfo = viewer.scene.pick(position);
if( !pickInfo ) { return; };
viewer.scene.screenSpaceCameraController.enableRotate = false;
viewer.screenSpaceEventHandler.setInputAction( ( arg ) => {
const position = arg.endPosition;
const cartesian = viewer.scene.globe.pick( viewer.camera.getPickRay(position), viewer.scene);
entity.position._value = cartesian;
}, Cesium.screenSpaceEventType.MOUSE_MOVE);
viewer.screenSpaceEventHandler.setInputAction( ( { position } ) => {
viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOWN);
viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOWN);
viewer.scene.screenSpaceCameraContriller.enableRotate = true;
}, Cesium.ScreenSpaceEventType.LEFT_UP)
}, Cesium.ScreenSpaceEventType.MOUSE_DOWN)