cesium加载json位置贴地但是加载实体entity旋转的过程点位位置一直在变
加载Cesium实体时,可以通过设置实体的position属性来指定其位置。要使实体贴地,可以将其高度设置为0。示例如下:
var viewer = new Cesium.Viewer('cesiumContainer');
var entity = viewer.entities.add({
position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 0),
model : {
uri : 'path/to/your/model.gltf',
scale: 1.0
}
});
viewer.scene.preUpdate.addEventListener(function(scene, time) {
var position = entity.position.getValue(time);
var surfacePosition = Cesium.Cartesian3.fromRadians(Cesium.Cartographic.fromCartesian(position).longitude, Cesium.Cartographic.fromCartesian(position).latitude, 0);
entity.position = surfacePosition;
});
在上面的示例中,我们首先创建了一个Cesium的Viewer实例。然后,我们通过viewer.entities.add方法添加了一个实体,设置了其位置为指定的经纬度,并加载了一个模型。接下来,我们使用viewer.scene.preUpdate事件来监听场景更新的过程,每次更新时,我们将实体的位置重新计算为贴地的位置,并将其赋值给entity.position属性。
这样,无论实体如何旋转,其位置都将保持贴地不变
原文地址: https://www.cveoy.top/t/topic/ihtm 著作权归作者所有。请勿转载和采集!