各位好,我加载了一个三维水面,一般情况下显示正常,但当我通过设置viewer.trackedEntity跟踪对象后,水面特效就发生了异常。请问有谁知道该如何解决这个问题吗?
跟踪前水面正常,如下图
跟踪后水面异常(即使entity静止不动,相机也静止,依然异常),如下图
您好,现在水面是由于写了
me.viewer.trackedEntity = ds.entities.getById("path"); //跟踪
这一句而造成了变化,除此之外跟之前比没有其他调整是吗,包括对水面特效做除了透明度以外的其他设置。如果是这样,推测可能是因为添加跟踪对象的代码问题,我这里找了一个有跟踪点击对象功能的示例,它的实现思路是先判断跟踪实体是否为空,然后添加被点击实体(id,位置等),设置好后设置viewer.trackedEntity,跟您写法一致。代码如下:
//鼠标左键选中小车实现跟踪 var pickedObject = null; // 选中的图元 var trackedEntity = null; // 被跟踪的Entity var screenSpaceEventHandler = new Cesium.ScreenSpaceEventHandler(scene.canvas); screenSpaceEventHandler.setInputAction(function (e) { pickedObject = scene.pick(e.position); if (pickedObject) { var selectedPrimitive = pickedObject.primitive; // 选中的图元 var ownerGroup = selectedPrimitive._ownerGroup; // 图元所在的组信息 var stateList = ownerGroup.stateList; // 状态信息列表 var state = stateList.get(pickedObject.id); if (!trackedEntity) { trackedEntity = viewer.entities.add({ id: 'tracked-entity', position: state.position, point: { pixelSize: 1, show: true // 不能设为false }, viewFrom: new Cesium.Cartesian3(-100, -150, 100) // 观察位置的偏移量 }); } else { trackedEntity.position = state.position; } viewer.trackedEntity = trackedEntity; } else { viewer.trackedEntity = null; } }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
点击小车相机跟踪示例:
http://support.supermap.com.cn:8090/webgl/examples/editor.html#trafficSimulation
这个例子里面跟踪小车后水面也出现了异常
正常的水面应该是下图
确实有这个情况,一跟踪小车水面效果就消失了,这个情况马上上报研发,如果修复,给您私信。