首页 / 浏览问题 / 三维GIS / 问题详情
GeoJsonDataSource设置polygon.outline被销毁时报错
2EXP 2023年11月13日
问题: Cesium.GeoJsonDataSource.load设置polygon.outline被销毁时报错message: 'This object was destroyed, i.e., destroy() was called.'

销毁: cesuimMap.viewer.dataSources.removeAll(true);

报错: message: 'This object was destroyed, i.e., destroy() was called.'

发现: cesium原生的dataSources.removeAll和被二次封装的removeAll代码不一样

设置: let dataSource = await Cesium.GeoJsonDataSource.load(data); const entities = dataSource.entities.values; for (const key in entities) { const entity = entities[key]; if (entity.polygon) { entity.polygon.outline = false; entity.polygon.outlineWidth = 2; entity.polygon.extrudedHeight = 50;

1个回答

您好,这个错误信息通常表明你正在使用 CesiumJS 库中的一个已经被销毁的对象。这可能是由于你在试图访问或操作这个对象时,它已经被明确地销毁了,或者是由于你的应用程序在这个对象被销毁之前就已经终止了。

要解决这个问题,你需要找出导致这个对象被销毁的原因,并避免在这个对象被销毁之后对它进行操作。例如,你可以通过在访问或操作对象之前先检查它是否已被销毁来避免这种情况的发生。

如果你仍然不确定如何解决这个问题,可以尝试提供更多关于你的应用程序和代码的信息,
4,151EXP 2023年11月13日
entity.polygon.outline = false 不报错
entity.polygon.outline = true 就报错
没有其他地方有销毁动作
测试代码 polygon.outline 并没有出现相关报错

建议单独使用该接口进行demo测试
...