首页 / 浏览问题 / WebGIS / 问题详情
gltf在模型中移动问题
29EXP 2020年08月24日
请问一下viewer.entities.add添加gltf模型,人物没加载出来就先跑起来了,红色是path加载出来就走一段了(图1),
var stopTime = Cesium.JulianDate.addSeconds(startTime, 10000, new Cesium.JulianDate());
positions.addSample(stopTime, Cesium.Cartesian3.fromDegrees(118.881988, 42.272145, 638.473243));
时间设成10000就在原地,那就说明viewer.entities.add之后图形没加载出来就走了对吧(图2),
但是换成管廊之外的点,时间设置成很小也没有这问题(图3),请问如何把点定在管廊中避免偷跑的这种现象呢,
第二个问题,改变viewer.trackedEntity的视角是改变entity中的viewFrom属性么,如果是的话,
viewFrom: new Cesium.Cartesian3(50, 50, 50),这三个参数的属性值的设定有什么参照或者获取方式么。

1个回答

您好,第一个问题您是想要实现在模型内部添加移动实体吗?第二个问题改变viewer.trackedEntity的视角是改变entity中的viewFrom属性,具体观察位置的偏移量您可以参考范例http://support.supermap.com.cn:8090/webgl/examples/editor.html#trafficSimulation

康鑫
1
6,077EXP 2020年08月24日
您好,第一个问题是要在模型内部添加移动实体,第二个这个交通仿真的示例我看过了。

viewFrom: new Cesium.Cartesian3(-100, -150, 100) // 观察位置的偏移量

这三个参数是在桌面软件中可以获取呢,还是就得自己在前端自己一点一点试,我想实现镜头在这个人后应该设置什么范围能不能麻烦告诉一下
您好,第一个问题在模型内部添加移动实体实体加载慢可能是因为设置了异步加载,也可能是因为和管廊一起加载导致加载速度过慢,建议还是使用定时器来控制移动实体的移动;第二个问题new Cesium.Cartesian3(-100, -150, 100)第一个参数控制的是左右偏移量,为正值的时候在模型左边,为负值的时候在模型右边;第二个参数控制的是前后便宜凉快,为正值的时候在模型前方,负值在模型后方;第三个参数控制的是观察点的高度,正上负下。
第二个问题我明白了 ,那第一个这个用定时器实现的有Demo么,谢谢
这个的话目前是没有Demo的,就是使用setInterval()给他设置一个延迟加载时间
给viewer.entities.add加延迟么
给移动那个方法加,等entity加载完事儿之后再执行移动方法。实现模型从起点开始移动
你和上周我打电话问的那个人的方法好像不太一样....我能看一下你的不嫁计时器的Demo么
我的意思就是写一个定时器,在指定多少秒之后执行移动方法,这个时候模型已经加载完事儿了,所以当执行移动方法的时候,模型就是从起点开始走出去的,而不是等模型加载出来的时候就已经走了一段路程了。
移动信息都在在var positions=SampledPositionProperty()然后addSample各个节点,添加实体的时候position: positions,就绑定进去了,这个定时器要写在哪呢
您说的是用交通仿真里的那个updateObjectWithModel方式么,如果是这种方式200毫秒一更新,gltf就不能正常显示了吧
解决了,第二个点定在和第一个点相同的一个点,走一秒,第三个点定成原来的第二个点,依次往后推,希望以后有这种问题的人能看到,早点出坑吧
...