window.viewer.scene.primitives._billboards 隐藏 。show
时间: 2024-05-11 14:18:08 浏览: 121
要隐藏 `window.viewer.scene.primitives._billboards`,可以使用以下代码:
```
window.viewer.scene.primitives._billboards.show = false;
```
要显示它,可以使用以下代码:
```
window.viewer.scene.primitives._billboards.show = true;
```
请注意,这是一种 hacky 的方式来访问 viewer 中的私有属性,可能会在未来的 Cesium 版本中发生变化。建议使用 Cesium 提供的公共 API 来进行更可靠的操作。
相关问题
window.viewer.scene.primitives render重新渲染
在Cesium中,可以通过以下代码重新渲染场景中的primitive:
```
viewer.scene.requestRender();
```
这将会在下一帧重新渲染场景。如果你想要强制立即重新渲染,可以使用以下代码:
```
viewer.scene.render();
```
这将会立即重新渲染场景,但需要注意的是,如果你频繁地调用这个方法,会导致性能问题。
if(this.timer !=null){ window.clearInterval(this.timer); this.timer = null; } if (layerId == '' || layerId == null || featureId == '' || featureId == null) { return; } let layers = viewer.scene.primitives._primitives; let that = this; layers.forEach(item => { if (item.id && item.id == layerId) { item.root.children.forEach(function (element) { if (element.content != null && element.content != undefined) { let featureNum = element.content.featuresLength; for (let i = 0; i < featureNum; i++) { var feature = element.content.getFeature(i); if (feature.getProperty("id") == featureId) { let flag = true; that.timer = window.setInterval(function () { if (flag) { feature.color = Cesium.Color.RED; } else { feature.color = Cesium.Color.WHITE; } flag = !flag; }, 1000); break; } } } }) } })
根据您提供的代码,我看到您正在尝试清除定时器和设置新的定时器。请注意以下几点:
1. 首先,确保在调用 `window.clearInterval` 之前检查 `this.timer` 的值是否为 `null`。这样可以避免尝试清除一个不存在的定时器。
2. 其次,在设置新的定时器之前,确保将 `this.timer` 设置为 `null`。这样可以确保在清除旧的定时器之前,没有新的定时器在运行。
3. 另外,请确保在设置新的定时器之前,已经找到了对应的要素(`feature`)。这样可以避免在没有要素的情况下设置定时器,从而导致错误。
根据您提供的代码,似乎已经考虑到了这些问题。如果您仍然遇到问题,请提供更多的上下文信息和详细描述,以便我能够更准确地帮助您解决问题。
阅读全文