cesium加载3D—gltf模型

var z= new Array(‘./src/1.gltf‘, ‘./src/2.gltf‘,‘./src/3.gltf‘ );
var model,modelin,modelroot;
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(经度, 纬度,1));        //gltf数据加载位置——中点
//加载gltf格式数据到cesium,z为模型名称,modelMatrix为模型中心点的经纬度坐标
function model_add(url){
/*        let index = url.lastIndexOf("/"); // lastIndexOf("/")  找到最后一个  /  的位置
        let fileName = url.substr(index + 1); // substr() 截取剩余的字符,即得文件名xxx.doc*/
        model=scene.primitives.add(Cesium.Model.fromGltf({
            url : url,        //如果为bgltf则为.bgltf
            modelMatrix : modelMatrix,
            scale : 0.001,  //放大倍数
        }));
        /*获取3D model 的旋转矩阵modelMatrix*/
        let m = model.modelMatrix;
        //构建一个三阶旋转矩阵。模型旋转一定的角度,fromRotation[Z]来控制旋转轴,toRadians()为旋转角度,转为弧度再参与运算
        let m1 = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(-78));
        //矩阵计算
        Cesium.Matrix4.multiplyByMatrix3(m,m1,m);
        //将计算结果再赋值给modelMatrix
        model.modelMatrix = m;
}
function mode3D_play(checkbox){
    if(checkbox.checked==true){
        model.show=true;
    }else{
        model.show=false;
    }
}
for(let i=0;i<z.length;i++){
    model_add(z[i]);
}

1对于加载的三个gltf数据模型均为model,因此统一控制其属性(类似于group)

2mode3D_play(checkbox)通过网页上的input标签控制model的show属性

原文地址:https://www.cnblogs.com/Haiszu/p/12006182.html

时间: 2024-11-09 02:34:43

cesium加载3D—gltf模型的相关文章

WPF动态加载3D&nbsp;放大-旋转-平移

原文:WPF动态加载3D 放大-旋转-平移 WavefrontObjLoader.cs 第二步:ModelVisual3DWithName.cs public class ModelVisual3DWithName:ModelVisual3D { public string Name { get; set; } public object Tag { get; set; } } 第三步:MainWindow.xmal <Grid x:Name="lay"> <View

Libgdx New 3D API 教程之 -- 加载3D场景的背后-第二部分

http://bbs.9ria.com/thread-221699-1-1.html 在本教程的第一部分,我们已经看过LibGDX 3D API中Model类的总体结构.在第2部分中,我们将会分析渲染管道,从加载模型开始,到真正的渲染模型.我们将不会在渲染管道的某个问题上进行深入探讨.我们只会介绍一些非常基本的内容,这是我觉得你使用3D API时,应该了解的. 在这一部分,我们要分析渲染究竟做了什么.明白我们在渲染时所做的事很重要.在前一部分本教程,我们已经看到,一个Model是由很多个Node

Cesium加载各类数据总结

接触到的加载数据类型:源地图.shp.Geojson.png.wms.地形底图 1.Cesium加载各类源地图(在线的影像服务) #此类加载的本质在于 new Cesium.ImageryProvider() Api defination:“Provides imagery to be displayed on the surface of an ellipsoid. This type describes an interface and is not intended to be insta

cesium 加载倾斜摄影模型(这里有一坑)

代码如下: 1 // Construct the default list of terrain sources. 2 var terrainModels = Cesium.createDefaultTerrainProviderViewModels(); 3 4 // Construct the viewer with just what we need for this base application 5 var viewer = new Cesium.Viewer('cesiumCont

vue cesium 加载倾斜摄影数据并在上面添加自定义标注【转】

在main.js引入 import Cesium from 'cesium/Cesium'import '../node_modules/cesium/Build/Cesium/Widgets/widgets.css' Vue.prototype.Cesium = Cesium; <br>// 以下是组件内容<br><br><br><br><template>     <div class="cesium-wrap&q

学习笔记TF016:CNN实现、数据集、TFRecord、加载图像、模型、训练、调试

AlexNet(Alex Krizhevsky,ILSVRC2012冠军)适合做图像分类.层自左向右.自上向下读取,关联层分为一组,高度.宽度减小,深度增加.深度增加减少网络计算量. 训练模型数据集 Stanford计算机视觉站点Stanford Dogs http://vision.stanford.edu/aditya86/ImageNetDogs/ .数据下载解压到模型代码同一路径imagenet-dogs目录下.包含的120种狗图像.80%训练,20%测试.产品模型需要预留原始数据交叉验

懒加载 字典转模型 自定义cell

1 懒加载: 1>  什么是懒加载? 懒加载又称为延时加载,即在系统调用的时候加载,如果系统不调用则不会加载.所谓的懒加载其实就是重写其 get 方法. 2>  特点:在使用懒加载的时候要先判断该方法是否已经存在,如果不存在则再进行实例化. 3>  优点: 不必将创建对象的方法都写在 viewDidLoad 里面,代码可读性更强. 每个控件的getter 方法分别负责各自的实例化处理,独立性强,耦合性低. 4>  使用步骤: 声明一个属性.该属性可以是私有属性也可以是在. h 文件

懒加载 字典转模型

>>>懒加载 一.介绍 懒加载又称延时加载,即在系统调用时加载,如果系统不调用则不会加载,所谓懒加载其实就是重写其get方法. 在使用懒加载时要先判断该方法是否存在,如果不存在再进行实例化. 二.优点 不必将创建对象的方法都写在viewDidLoad里面,代码可读性更强. 每个控件的getter方法分别负责各自的实例化处理,独立性强,耦合性低. 三.使用 声明一个属性,该属性既可以是私有属性也可以是在.h中声明的属性,懒加载的对象是一个属性. 在.m文件中的viewDidLoad外面重写

cesium 加载shp格式的白模建筑

ceisum加载shp格式的建筑.有两种思路,目前推荐第二种. 方法一:将shp格式转换为geojson格式,然后采用cesium提供的接口加载到ceisum中. 严重缺陷:在面对大场景问题,即数据量较大时,非常容易卡死.崩溃 方法二:将shp转换为3dtiles,然后加载到ceiusm中. 3dtiles是ceisum解决大场景问题专门提供的一种数据格式. 关键:转换工具,我使用的是cesiumLab,比较好用,工具中需要加载dem,目测是用来与地形贴合的. 大家有别的工具可以留言,一起分享.