实体位置发生变化时未进行可视化更新
Entity not Visually Updating when its Position Changes
标题说明了一切,我无法让一个实体在视觉上在全球移动,即使它的位置在移动。此代码将在Sandcastle中重现问题:
var viewer = new Cesium.Viewer('cesiumContainer');
var e = viewer.entities.add({
name : 'Sphere',
position: Cesium.Cartesian3.fromDegrees(-100, 30.0, 300000.0),
ellipsoid : {
radii : new Cesium.Cartesian3(200000.0, 200000.0, 200000.0)
}
});
viewer.scene.postRender.addEventListener(function(scene, time) {
var pos = e.position._value;
var cart = Cesium.Ellipsoid.WGS84.cartesianToCartographic(pos);
pos = Cesium.Cartesian3.fromRadians(cart.longitude + (1 * Math.PI / 180), cart.latitude, cart.height);
e.position = pos;
});
如果你在演示中选择了球体,你会看到绿色的选择指示器会在地球上移动,但球体会卡在一个地方。我想我错过了一些简单的函数调用,但过去几个小时我一直在谷歌上搜索,找不到解决方案。
我已经看过Sandcastle上的Picking演示,但似乎没有任何相关内容。我想要的功能只是让一个形状无限期地循环通过同一组坐标,所以我不能使用SampledPositionProperty
,因为我已经看到了。
我怀疑原因有点棘手:在Cesium中,椭球体几何体是由Web Worker异步构建的。通过要求在每个postRender
事件中更改位置,您基本上是在折磨工作人员,它无法在下一个请求开始之前完成一个请求。因此,我们最终根本看不到职位的更新。如果你稍微放松一下速度,你会注意到位置确实在更新。
例如,这是您的代码,其中postRender
替换为400ms的setInterval
。这更像是一个滴答作响的时钟,而不是一个平滑的动画,但它显示了正在更新的位置:
var viewer = new Cesium.Viewer('cesiumContainer');
var e = viewer.entities.add({
name : 'Sphere',
position: Cesium.Cartesian3.fromDegrees(-100, 30.0, 300000.0),
ellipsoid : {
radii : new Cesium.Cartesian3(200000.0, 200000.0, 200000.0)
}
});
window.setInterval(function() {
var pos = e.position._value;
var cart = Cesium.Ellipsoid.WGS84.cartesianToCartographic(pos);
pos = Cesium.Cartesian3.fromRadians(cart.longitude + (1 * Math.PI / 180), cart.latitude, cart.height);
e.position = pos;
}, 400);
目前,无法从实体API中知道工人何时完成几何图形的更新。您可能需要将此示例从实体API中移出,转而使用原始API。
相关文章:
- 如何在谷歌可视化中组合数字和模式格式化程序
- 加载泰坦尼克号可视化数据时出现问题
- 如何使用图表包装函数有条件地格式化谷歌可视化表单元格
- AngularJS&Google可视化-使用状态更改处理程序(Google API)在HTML页面上查看$sco
- Javascript图形可视化工具包,具有高性能(500-1000个节点)
- Google可视化addListener调用函数引用错误
- 如何在web上动态可视化数据集
- 可视化到选择框中
- 从特定系列的谷歌可视化折线图中删除悬停工具提示
- 谷歌图表可视化仪表板数据源问题
- 在可视化中将CSS从悬停更改为单击
- 使用 d3 可视化快速射击的“点击”
- 为 D3 可视化创建平均 Y 线
- Spotfire Java脚本将字段拆分为唯一值,并每30秒更新一次MapChart可视化,以反映值的变化
- 实体位置发生变化时未进行可视化更新
- 如何(可视化)更新包含更改url中数据的聚合物元素
- 取消复选框未进行可视化更新
- 谷歌线图可视化图表消失时更新它
- 谷歌可视化和ASP更新面板
- 如何在不重画每帧的情况下更新d3可视化