var viewer = new Cesium.Viewer('cesiumContainer');
viewer.entities.add({
id:'id',
position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
billboard :{
image : '../images/Cesium_Logo_overlay.png'
}
});
var pointDraged = null;
var leftDownFlag=false;
viewer.screenSpaceEventHandler.setInputAction(leftDownAction, Cesium.ScreenSpaceEventType.LEFT_DOWN);
viewer.screenSpaceEventHandler.setInputAction(leftUpAction, Cesium.ScreenSpaceEventType.LEFT_UP);
viewer.screenSpaceEventHandler.setInputAction(mouseMoveAction, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
function leftDownAction(e) {
console.log("左键按下");
pointDraged = viewer.scene.pick(e.position);//选取当前的entity
leftDownFlag = true;
if (pointDraged) {
viewer.scene.screenSpaceCameraController.enableRotate = false;//锁定相机
}
}
function leftUpAction(e) {
console.log("左键抬起");
leftDownFlag = false;
pointDraged=null;
viewer.scene.screenSpaceCameraController.enableRotate = true;//解锁相机
}
function mouseMoveAction(e) {
if (leftDownFlag === true && pointDraged != null) {
console.log("鼠标移动");
var ray = viewer.camera.getPickRay(e.endPosition);
var cartesian = viewer.scene.globe.pick(ray, viewer.scene);
console.log(cartesian);
pointDraged.id.position = new Cesium.CallbackProperty(function () {
return cartesian;
}, false);//此处根据具体entity来处理,也可能是pointDraged.id.position=cartesian;
}
}
线上测试环境:沙盘环境