美文网首页
vue-cli3 使用 cesium 创建 gltf/glb 3

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

作者: 弹指一挥间_e5a3 | 来源:发表于2020-03-25 10:39 被阅读0次

    说下踩坑经历吧,之前一直把 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 3

          本文链接:https://www.haomeiwen.com/subject/hectuhtx.html