cesium在三维地图中拖拽移动实体位置

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;
  }
}

线上测试环境:沙盘环境

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值