加载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属性。

这样,无论实体如何旋转,其位置都将保持贴地不变

cesium加载json位置贴地但是加载实体entity旋转的过程点位位置一直在变

原文地址: https://www.cveoy.top/t/topic/ihtm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录