从脚本外部调用内部Cesium函数

时间:2014-07-09 18:12:08

标签: javascript html cesium

我正在编写一个cesium应用程序,我想调用一个清除所有原语的内部cesium函数:

function clearAll() {
    primitives.removeAll();
}

当我按下按钮时。我知道cesium内置的工具栏按钮,但我想使用我已经有的html按钮来点击这个功能。它位于:

<script>
require(['Cesium'], function(Cesium) {
    function clearAll() {
        //code here}
    });
</script>

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

查看Billboards example的顶部。构建Cesium.Viewer后,它可以访问viewer.scene.primitives,其中包含公共的.removeAll()功能。

var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;
var primitives = scene.primitives;

function reset() {
    primitives.removeAll();
}

正如@Bergi在评论中提到的那样,通常您不会将其与onclick联系起来,因为您需要访问范围内的变量,例如查看器实例。相反,给你的按钮一个id属性,并使用addEventListener(或jQuery)来监听该范围内的按钮点击。

document.getElementById('myButtonId').addEventListener('click', function() {
    primitives.removeAll();
}, false);