cesium在二维地图中拖拽移动实体

var viewer = new Cesium.Viewer('cesiumContainer',{
     sceneMode: 2,
});
viewer.entities.add({
     id:'id',
    position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
    billboard :{
        image : '../images/Cesium_Logo_overlay.png'
    }
});viewer.entities.add({
     id:'id2',
    position : Cesium.Cartesian3.fromDegrees(-50.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("左键按下");
    var  windowPosition = e.position;
    pointDraged = viewer.scene.pick(windowPosition);//选取当前的entity
    leftDownFlag = true;
    if (pointDraged) {
      // 如果为true,则允许用户平移地图。如果为假,相机将保持锁定在当前位置。此标志仅适用于2D和Columbus视图模式。
      viewer.scene.screenSpaceCameraController.enableTranslate = false;//锁定相机
    }
}
function leftUpAction(e) {
    console.log("左键抬起");
    leftDownFlag = false;
    pointDraged=null;
    viewer.scene.screenSpaceCameraController.enableTranslate = true;//解锁相机
 }
function mouseMoveAction(e) {
  if (leftDownFlag === true && pointDraged) {
    console.log("鼠标移动");
    var cartesian = viewer.scene.camera.pickEllipsoid(e.endPosition, viewer.scene.globe.ellipsoid); 
    console.log(cartesian,pointDraged.id.position);
    if (cartesian) {
        pointDraged.id.position = new Cesium.CallbackProperty(function () {
            return cartesian;
        }, false);

    }
  }
}

初始状态 

cesium实时更新数据实现实体运功

Ceisum实时获取后台数据 实时更新实体位置信息

Ceisum实时获取后台数据 实时更新实体位置信息且实现实体转向功能

Cesium基于czml的model模型转向

Cesium基于czml billboard的模型转向

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值