本文主要是介绍Cesium 1.67中CallbackProperty需要类型转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在使用entity绘制polygon的时候,polygon的数据可能需要跟随时间的变化而变化,所以需要使用CallbackProperty函数,根据不同的时间返回不同的数组:
viewer.entities.add({polygon: {hierarchy: new Cesium.CallbackProperty((time, result) => {return new Cesium.Cartesian3.fromDegreesArrayHeights([……],Cesium.Ellipsoid.WGS84,result,)}, false),perPositionHeight: true,material: Cesium.Color.BLUE.withAlpha(0.5), //材质outline: true, //是否显示轮廓},
});
但是上述代码在使用过程中会出现如下错误:
查看该错误发生的位置是在CoplanarPolygonGeometry中,查看源码可以发现是某个参数的positions无法获取到,因此猜测是否是由于传入的数据类型错误。
阅读Cesium文档可以发现,entity的polygon的hierarchy是Property或者PolygonHierarchy类型,所以我们可能需要将返回的数组强制转换为PolygonHierarchy类型:
viewer.entities.add({polygon: {hierarchy: new Cesium.CallbackProperty((time, result) => {return new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArrayHeights([……],Cesium.Ellipsoid.WGS84,result,),[])}, false),perPositionHeight: true,material: Cesium.Color.BLUE.withAlpha(0.5), //材质outline: true, //是否显示轮廓},
});
经过修改后代码可以使用!
这篇关于Cesium 1.67中CallbackProperty需要类型转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!