删除数据(刷新)WebGL Globe

时间:2015-02-08 02:44:25

标签: javascript webgl-globe

我正在玩WebGL Globe(http://globe.chromeexperiments.com/),并希望能够使用新数据“刷新”它,然后将其设置为新状态。库中提供的示例没有帮助,因为它们在页面加载时立即加载数据系列,但我想动态加载新数据(例如,每30秒)

使用新的data反复执行以下内容只能更新地更新地球的数据,因此当新数据进入时,条形图会在地球上“叠加”:

globe.addData(data, {format: 'magnitude'});
globe.createPoints();
globe.animate();

似乎没有一种明显的方法可以使用内置的API减去/清除/重置globe的数据(然后设置为新的数据状态)。这很容易吗?

2 个答案:

答案 0 :(得分:5)

我明白了。在globe.js添加以下内容:

function createPoints() {
    ...
    this.points.name = "lines"; // Add this line
    scene.add(this.points);
    }
}

// Create this function
function removeAllPoints() {
    scene.remove(scene.getObjectByName("lines"));
}

// Near the bottom of the code
this.addData = addData;
this.removeAllPoints = removeAllPoints; // Add this line
this.createPoints = createPoints;
this.renderer = renderer;
this.scene = scene;

现在您可以简单地执行以下操作:

TWEEN.start();
globe.removeAllPoints();
globe.addData(data, {format: 'magnitude', name: 'results', animated: false});
globe.createPoints();

答案 1 :(得分:4)

霍布斯3给出的答案确实有帮助。但只是一个小小的变化。

您无需致电globe.animate()

我曾在一个项目中使用它,我每5秒更新一次数据并反复调用globe.animate()使渲染成为爬行。 评论出来,你是金子。