vue-cli3 使用 cesium 创建 gltf/glb 3d 模型

说下踩坑经历吧,之前一直把 3d 模型(gltf/glb) 文件放在项目目录里面,然后在组件中引入,一直会报错.网上搜了一圈都没能解决.最后发现了一个报错信息是一个网络加载 (gltf/glb) 文件加载错误,而后我又新开了一个文件,没有使用 vue , 结果是导入成功了,在网络请求中 (gltf/glb) 文件是成功加载的. 于是乎我就用 node 新开了一个服务器,把 (gltf/glb)文件放在服务器上,用网络地址去请求,而不是本地引入.然后就成功了.
node 搭建服务器源代码地址
使用方法: 将 (gltf/glb) 文件放入 static 目录下,执行 node app
http://192.168.1.242:3000/model/CesiumAir/Cesium_Air.glb 这就是模型地址(前面的域名需换成本地的).
项目源代码
这是引入 3d 模型的方法

 mapInit(){
      const viewer = new Cesium.Viewer('map')
      const numberOfBalloons = 13;
      const lonIncrement = 0.00025;
      const initialLon = -122.99875;
      const lat = 44.0503706;
      const height = 100;
      const url = 'http://192.168.1.242:3000/model/CesiumAir/Cesium_Air.glb';
      for (let i = 0; i < numberOfBalloons; ++i) {
        let lon = initialLon + i * lonIncrement;
        createModel(url, lon, lat, height);
      }
      const target = Cesium.Cartesian3.fromDegrees(initialLon + lonIncrement, lat, height + 7.5);
      const offset = new Cesium.Cartesian3(-37.048378684557974, -24.852967044804245, 4.352023653686047);
      viewer.scene.camera.lookAt(target, offset);
      function createModel(url, x, y, height) {
        const position = Cesium.Cartesian3.fromDegrees(x, y, height);
        viewer.entities.add({
          name : url,
          position : position,
          model : {
            uri : url
          }
        });
      }
    }

你可能感兴趣的:(vue-cli3 使用 cesium 创建 gltf/glb 3d 模型)