问题:
最近使用Cesium的CallbackProperty动态更新polyline的positions时Cesium报错:TypeError: Cannot read properties of undefined (reading ‘height’)
核心代码:
const isConstant = false;
const redLine = viewer.entities.add({
polyline: {
// This callback updates positions each frame.
positions: new Cesium.CallbackProperty(function (time, result) {
endLongitude =
startLongitude +
0.001 * Cesium.JulianDate.secondsDifference(time, startTime);
return [Cesium.Cartesian3.ZERO, Cesium.Cartesian3.ONE];
return Cesium.Cartesian3.fromDegreesArray(
[startLongitude, startLatitude, endLongitude, startLatitude],
Cesium.Ellipsoid.WGS84,
result
);
}, isConstant),
width: 5,
material: Cesium.Color.RED,
},
});
报错原因:
此处的positions不支持(0,0,0)这样三个分量都为0的坐标,换成Cesium.Cartesian3.UNIT_X便能正常运行,详见官网沙盒。