Cesium displays glb data

The data has two files

.glb file

.json file

 

There are 4 parameters in this shpere

0: x, 1: y, 2: z 3: radius 

 xyz converted to latitude and longitude and altitude

getjwd(x, y, z) {
        const ellipsoid = this.$cesiumViewer.scene.globe.ellipsoid
        const cartesian3 = new Cesium.Cartesian3(x, y, z)
        const cartographic = ellipsoid.cartesianToCartographic(cartesian3)
        const lat = Cesium.Math.toDegrees(cartographic.latitude)
        const lon = Cesium.Math.toDegrees(cartographic.longitude)
        const alt = cartographic.height
        return {
          lon,
          lat,
          alt,
        }
      },

 load glb data


      add3DEntityModel(‘glb地址’,‘经度’,‘纬度’,‘高度’,v_heading,v_pitch,v_roll)

      add3DEntityModel(uri,longitude,latitude,height,v_heading,v_pitch,v_roll) {
        this.$cesiumViewer.entities.removeAll();
        //位置(弧度单位)
        var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
        var heading = Cesium.Math.toRadians(v_heading);
        var pitch = Cesium.Math.toRadians(v_pitch);
        var roll = Cesium.Math.toRadians(v_roll);
        var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);

        //朝向(弧度单位)
        var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
        var entity = this.$cesiumViewer.entities.add({
            name : uri,
            description:"<div><p>这是一个飞机!</div>", // 这是模型的描述属性,可以是html标签
            position : position,
            orientation : orientation,
            model : {
                uri : uri,
                minimumPixelSize : 128,
                maximumScale : 20000
            }
        });
      //取或设置相机当前正在跟踪的Entity实例。
       //this.$cesiumViewer.trackedEntity = entity;
      }

You can use his xyz directly without transferring

This data will be converted to xyz, so you can change the position to

 

add3DEntityModel(uri,xyz,v_heading,v_pitch,v_roll) {
        this.$cesiumViewer.entities.removeAll();
        //位置(弧度单位)
        var position ={
            x:xyz.x,y:xyz.y,z:xyz.z,
        }
        var heading = Cesium.Math.toRadians(v_heading);
        var pitch = Cesium.Math.toRadians(v_pitch);
        var roll = Cesium.Math.toRadians(v_roll);
        var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);

        //朝向(弧度单位)
        var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
        var entity = this.$cesiumViewer.entities.add({
            name : uri,
            description:"<div><p>这是一个飞机!</div>", // 这是模型的描述属性,可以是html标签
            position : position,
            orientation : orientation,
            model : {
                uri : uri,
                minimumPixelSize : 128,
                maximumScale : 20000
            }
        });
      //取或设置相机当前正在跟踪的Entity实例。
       //this.$cesiumViewer.trackedEntity = entity;
      }

Guess you like

Origin blog.csdn.net/xm_w_xm/article/details/127752426